摘 要:信息技術的發(fā)展日新月異,現(xiàn)代雷達系統(tǒng)變得日益復雜,雷達系統(tǒng)軟件測試直接影響到裝備的可靠性和質量,使用合理的軟件測試模型可以提高測試效率。本文對典型V模型進行了分析與研究,將敏捷方法應用到雷達系統(tǒng)軟件測試V模型的研究與改進中,改進模型將軟件測試貫穿雷達系統(tǒng)軟件開發(fā)周期的各個階段,能夠盡早地發(fā)現(xiàn)軟件中的錯誤,更好地保證軟件測試的充分性、有效性和產(chǎn)品質量。
關鍵詞:軟件測試;雷達系統(tǒng);敏捷;V模型
隨著計算機技術以及現(xiàn)代雷達技術的迅速發(fā)展,雷達系統(tǒng)中軟件的比重越來越大,保證雷達系統(tǒng)質量、提高系統(tǒng)可靠性成為人們關注的焦點。軟件測試對于雷達軟件質量的保證、雷達系統(tǒng)可靠性的提高具有重要意義[1-2],是軟件質量保證的一項關鍵活動,是最有效的排除和防止軟件缺陷與故障的手段[3-4]。本文通過研究典型的雷達系統(tǒng)軟件測試V模型以及敏捷方法的觀點與原則,提出一種改進的雷達系統(tǒng)軟件測試模型,以期通過軟件測試更早發(fā)現(xiàn)問題、發(fā)現(xiàn)并解決更多的問題,保證雷達系統(tǒng)軟件質量。
1 軟件測試模型
軟件測試是貫穿于整個軟件開發(fā)生命周期中的對軟件分析、設計以及程序進行驗證(verification)和確認(validation)的活動過程。軟件測試的原則包括以下幾點:
⑴盡早地和不斷地進行軟件測試(Check early, check often);
⑵測試用例應由測試輸入數(shù)據(jù)和對應的預期輸出結果這兩部分組成;
⑶程序員應避免檢查自己的程序;
⑷在設計測試用例時,應當包括合理的輸入條件和不合理的輸入條件;
⑸充分注意測試中的群集現(xiàn)象;
⑹嚴格執(zhí)行測試計劃,排除測試的隨意性;
⑺應當對每一個測試結果做全面檢查;
⑻妥善保存測試計劃、測試用例、出錯統(tǒng)計和最終分析報告,為維護提供方便。
軟件測試發(fā)展至今,比較典型的測試模型有V模型、W模型、H模型。其中V模型是最具有代表性的測試模型[5],也被廣泛應用于雷達系統(tǒng)測試過程,意在改進軟件開發(fā)的效率和效果。如圖1所示,V模型從左到右從上至下地描述了基本的開發(fā)行為和測試過程,箭頭代表了時間方向,左邊下降的是開發(fā)過程各個階段,相對應的是右邊上升的部分,即測試過程的各個階段。以編碼為分界把開發(fā)和測試兩個過程劃開,表達了這種模型下測試與開發(fā)相分離的思想。
V模型指出,單元測試和集成測試主要作用是驗證程序設計,開發(fā)人員和測試人員應檢測程序的執(zhí)行是否滿足軟件設計的要求[6];而系統(tǒng)測試主要作用是驗證系統(tǒng)設計,檢驗系統(tǒng)功能、性能的質量是否達到系統(tǒng)設計的指標;由測試人員和用戶進行軟件的確認測試和驗收測試,以確定軟件的實現(xiàn)是否滿足用戶需求或合同的要求[7]。
然而雷達系統(tǒng)軟件測試V模型存在測試起始時間晚[8]、釆用串行的測試過程以及將測試與開發(fā)分開進行等不足。V模型僅僅把測試過程作為在需求分析、概要設計、詳細設計及編碼之后的階段,容易讓人理解為測試是軟件開發(fā)的最后一個階段,主要是針對程序進行測試來發(fā)現(xiàn)錯誤,而需求分析階段沒有發(fā)現(xiàn)的錯誤一直到后期驗證測試才被發(fā)現(xiàn)。測試的開始時間規(guī)定為編碼結束之后,這大大增加了前期錯誤的隱藏時間,不符合盡早發(fā)現(xiàn)錯誤的原則。
2 敏捷方法的觀點及原則
敏捷開發(fā)(agile development)的概念從2004年初開始流行起來,它是一種以人為本、通過迭代、循序漸進的軟件開發(fā)方法。在2001年2月,17位軟件開發(fā)領域的大師發(fā)表了敏捷宣言[9],在宣言中明確提出敏捷的價值觀:個體與交互重于過程和工具;可用的軟件重于完備的文檔;客戶協(xié)作重于合同談判;響應變化重于遵循計劃。
敏捷聯(lián)盟同時發(fā)表了敏捷的十二條原則[10],歸納這些原則,可以分析出敏捷過程具有以下幾個要點:
⑴通過頻繁迭代與客戶形成早期的良好合作,及時反饋提高產(chǎn)品質量。敏捷小組關注完成和交付具有用戶價值的功能,而不是孤立的任務。即使到了開發(fā)的后期,也歡迎改變需求,敏捷過程利用變化來為客戶創(chuàng)造競爭優(yōu)勢;
⑵客戶、需求人員、開發(fā)人員之間必須進行有意義的、頻繁的交互,這樣就可以在早期及時的發(fā)現(xiàn)并解決問題;
⑶衡量功能是否實現(xiàn)的唯一標準是該功能的開發(fā)和測試均已完成,并且測試通過;
⑷使用更好的設計模式,或者輔助工具來加強團隊敏捷能力。不斷學習新的技能,使得敏捷運行得更加順暢。
敏捷方法在幾周或者幾個月的時間內完成相對較小的功能,強調盡早的將可能小的并且可用的功能交付給用戶使用,并在整個項目周期中持續(xù)改善和增強。敏捷方法重視頻繁的功能交付、重視交流與溝通,并以迭代方式強調對變化的快速響應能力。
3 基于敏捷方法的V模型改進
通過對典型的雷達系統(tǒng)軟件測試模型的研究分析,在改進和設計新模型時,應遵循以下設計原則[11]:(1)使軟件設計中的錯誤盡可能早地暴露出來;(2)采用測試與開發(fā)并行的測試模式;(3)簡單實用原則。
針對V模型的不足,結合雷達系統(tǒng)軟件的特點,本文基于敏捷方法的觀點與原則對雷達系統(tǒng)軟件測試V模型進行改進,如圖2所示,它可以更好地滿足測試的原則,具有以下特點。
⑴在初始階段進行計劃和測試設計,驗證雷達系統(tǒng)需求與設計。雷達系統(tǒng)軟件測試需要針對軟件的不同特點,結合測試需求分析和風險分析,確定測試策略。改進模型中測試活動從可行性分析文檔、需求文檔的撰寫階段開始部署測試,從需求的可實現(xiàn)性考慮,進行需求分析和設計邏輯分析,盡早發(fā)現(xiàn)設計錯誤。
⑵將雷達系統(tǒng)軟件開發(fā)過程和測試過程并行化,測試過程與開發(fā)過程緊密結合。這使得軟件測試的各個環(huán)節(jié)不再是軟件編碼工作之后串行的后續(xù)內容,而是與其它開發(fā)環(huán)節(jié)并行的獨立流程,這樣有利于針對雷達系統(tǒng)軟件的功能和特點設計高效的測試用例。強調測試應和設計同時進行,從而可以提高雷達系統(tǒng)軟件開發(fā)和測試的效率。
⑶對每一個可交付產(chǎn)品進行測試。改進模型的測試內容不只包括程序的源代碼及基本的功能。重要的測試文檔,包括可行性分析文檔、需求分析文檔也需要進行完備而有效的測試,以保證這些文檔的正確性以及可靠性。
⑷軟件的開發(fā)過程是一個循環(huán)往復的過程,相應地軟件測試也是一個循環(huán)往復的過程,不斷修改測試設計并重新執(zhí)行測試的過程。
⑸不斷回顧、維護原有的測試用例。測試人員在編寫測試用例的同時,可以編寫測試用例跟蹤矩陣(Test Case Matrix),標注測試用例已覆蓋的功能、每個具體功能對應的測試用例編號等,明晰測試用例覆蓋率,從而及時發(fā)現(xiàn)覆蓋率不足的功能點,便于提高測試效率。
4 結束語
面對軟件高度集成的現(xiàn)代雷達系統(tǒng),軟件測試作為必不可少的環(huán)節(jié),對提高產(chǎn)品質量具有重要的意義。V模型是雷達系統(tǒng)軟件測試常用模型,但存在不足之處。在測試過程中使用基于敏捷方法改進的雷達系統(tǒng)軟件測試V模型,對雷達系統(tǒng)進行規(guī)范、系統(tǒng)的測試,能夠及早發(fā)現(xiàn)問題并解決問題,有利于提高軟件測試效率,降低發(fā)現(xiàn)問題成本,保證雷達系統(tǒng)軟件測試的充分性、有效性和產(chǎn)品質量。
[參考文獻]
[1]張玉彬.軍用軟件測試現(xiàn)狀及對策[J].裝甲兵工程學院學報.2008(05):66-70.
[2]姚有文.軍用軟件質量及其測試的探討[J].艦船電子工程.2005(4):38-41.
[3]WANG Desheng, GONG Yunzhan.On software defects[J].Application Research of Computers,2008,25(12):3531-3533(in Chinese).
[4]Paul C Jorgensen.軟件測試[M].北京:機械工業(yè)出版社.2003.
[5]戴莉萍,熊小勇.基于敏捷開發(fā)的X測試模型的研究與改進[J].計算機工程與設計.2007(9).
[6]Brain Marick.New Models for Testing Development.http://www.testing.com,Quality Week,2006.
[7]周學海,陳蓓蓓.軟件測試過程模型的改進—并行V模型.計算機工程與應用.2005,21(10):16-18.
[8]王元珍,付新,李東.基于并行工程的軟件測試模型研究.計算機工程.2002,2(5):45-47.
[9]The Agile Alliance.(2001).“The Agile Manifesto”,Available on-line:http://www.agilemanifesto.org/.
[10]A.Hunt,D.Thomas.The Pragmatic Programmer[M].北京:中國電力出版社.2003:124-157.
[11]James Bach. Good Enough Quality Beyond the Buzzword. IEEE Computer Society,2010:96-98.