文/李丹荔
探索性軟件測試方法及其在嵌入式系統中的應用
文/李丹荔
伴隨近年來嵌入式系統的廣泛應用,對系統中的軟件質量要求逐漸提高。然而從以往嵌入式系統交付情況看,在軟件測試上取得成效并不理想,其直接導致嵌入式系統投入使用出現軟件運行問題。這就要求強化軟件測試質量,引入相應的軟件測試方法。本文將對探索性軟件測試方法與工具、優勢與弊病以及嵌入式系統中探索性軟件測試方法的具體應用進行探析。
嵌入式系統 探索性軟件測試 應用
嵌入式系統作為當前各生產領域常用的系統之一,其對系統軟件要求質量極高。盡管以往嵌入式系統交付前也做相關的測試工作,但有明顯的軟件測試周期短、軟件文檔缺乏、軟件需求變化快等問題。而解決該問題的關鍵在于探索性測試方法的應用,但如何使該方法具體落實到嵌入式系統軟件測試中,又要求做好相關應用模型的構建。因此,本文對嵌入式系統中探索性軟件測試方法的應用分析,具有十分重要的意義。
所謂探索性測試,其強調在測試設計、執行同時開展,亦可稱之為探索式測試。從探索性軟件測試的內涵看,集中表現為:
(1)對測試任務高度關注,如測試中需解決的軟件問題。
(2)測試活動同時性,測試執行同時,要求學習被測軟件,且注意測試設計。
(3)演繹推理的運用以及人的優勢發揮,其中演繹推理主要指以測試結果為依據為后續測試做指導,而人的優勢表現在應變、分析與判斷能力。對于該種測試方法,更注重測試同時性,對于軟件的持續優化可發揮重要作用。
根據既往研究總結,當前探索性軟件測試方法應用下,具體表現為:
1.2.1 探索方法
實踐中,要求測試人員掌握相應的領域知識、測試經驗,其中領域知識涉及軟件工程基礎知識、操作場景以及領域規則等。同時鼓勵測試人員通過啟發式方法對軟件可能存在的缺陷進行分析,一般常用的技巧涉及Whittaker漫游方法、Hendrickson檢查單等。這些方法應用下,會對測試人員有一定提醒,提醒內容包括軟件功能、軟件關鍵運行數據等。
1.2.2 管理模型
常見的模型以SBTM模型為主,其又被稱之為會話測試管理模型,主要通過多輪會話,做相關的軟件需求分析、測試計劃制定以及資源分配等。
探索性軟件測試方法應用,需借助相應的工具實現,如Wink、,Rapid Reporter、Session Tester、Microsoft Test Manager等。這些工具的運用主要采用文字信息、截屏以及錄制回放等方法,使測試人員順利完成測試執行過程。如在SBTM模型方面,Rapid Reporter、Session Tester可用于設計與優化會話機制。
從探索性軟件測試方法的實際應用現狀看,最早實踐應用的為微軟企業,其在Window Media Player、Visual Studio等方面,都將探索性測試引入,特別在漫游探索法應用方面取得一定的成功。再如敏捷軟件研發方面,也有較多探索性測試方法成功應用案例,如Scrum敏捷軟件、XP開發結合等。值得注意的是,探索性測試方法應用下,其優勢與弊病都較為突出。首先,從其應用優勢看,集中表現為對于傳統測試中測試時間緊張、軟件文檔缺失情況可彌補,且基于用戶角度出發測試,測試結果能夠迅速反饋給測試以及開發人員,同時人員經驗被用于其中。其次,從其弊病看,主要體現在缺少足夠的測試統計數據,為決策帶來難題,且要求測試人員有足夠的經驗,一旦存在測試人員缺乏經驗問題,對測試質量將產生影響。另外,探索性軟件測試應用下,缺少合適的工具,在整個測試流程無法被有效控制下,影響測試效果。
IT技術快速發展背景下,嵌入式軟件產品如雨后春筍般快速出現,這為軟件測試工作帶來極大難題。若仍沿用傳統軟件測試方法,可能面臨測試時間不充裕、開發文檔不完備等問題。此時,將探索性測試方法引入,將使測試對設計規約、軟件需求過于依賴的問題解決,加之嵌入式系統測試人員在經驗上有明顯優勢,所以探索性測試方法的應用有一定的適應性。但從當前嵌入式系統軟件測試中該方法應用實際看,測試通用方法并未具體落實,其原因歸結于:
(1)文檔問題,嵌入式系統使用相關標準中,強調軟件測試有完備的文檔,但探索性測試方法應用中有明顯的隨意記錄測試結果情況,文檔不完備。
(2)度量問題,如測試覆蓋率的度量較為困難,更無從談及進行測試質量的評價。
(3)軟件測試管理,整個測試過程并未進行系統管理,可能導致測試出現失控局面。這些問題的存在,成為制約嵌入式系統中探索性軟件測試方法應用的因素。
針對當前嵌入式系統探索性軟件測試方法應用問題,實際應用中可考慮進行相關模型的構建。整個模型將結合傳統腳本測試、探索性測試兩種方法,測試過程中可將腳本測試中的過程管理控制、測試文檔完備等優勢體現出來,而探索性測試高效、靈活方法也可被引入,使測試質量得到提高。具體應用流程;
(1)策劃、設計,通過數據復用庫的應用,使測試用例、測試項明確,解決設計文檔不足、對軟件需求依賴過大問題。
(2)測試執行,采用會話方式,以測試計劃為依據,對各會話涉及的用例、主旨進行明確,每次會話都要求測試人員探索每個測試項,可借助啟發式或漫游策略,達到測試目的。
(3)測試總結,對測試執行結果做總結分析,指出軟件的缺陷,并提出改進意見。
探索性測試方法的應用是當前嵌入式系統開發與設計中需考慮的主要問題。設計引入該測試方法中,應正確認識其功能與特征,立足于其在嵌入式系統中的應用優勢與弊病,考慮在探索性測試的同時,將腳本模型、會話模型等優勢引入,以此使軟件測試結果更為準確。這樣才能使探索性軟件測試方法的應用優勢達到最佳,推動嵌入式系統的發展。
[1]陶瑋.嵌入式控制系統的軟件測試及其應用[J].電子技術與軟件工程,2016(21):72-73.
[2]何與舟.軟件測試方法在嵌入式系統中的應用[J].電子技術與軟件工程,2016(08):73.
[3]柳溪.探索性軟件測試方法及其在嵌入式系統中的應用[J].現代電子技術,2014(20):74-79.
作者單位中興通訊股份有限公司天津分公司 天津市300300