摘 要:信息技術的發展日新月異,現代雷達系統變得日益復雜,雷達系統軟件測試直接影響到裝備的可靠性和質量,使用合理的軟件測試模型可以提高測試效率。本文對典型V模型進行了分析與研究,將敏捷方法應用到雷達系統軟件測試V模型的研究與改進中,改進模型將軟件測試貫穿雷達系統軟件開發周期的各個階段,能夠盡早地發現軟件中的錯誤,更好地保證軟件測試的充分性、有效性和產品質量。
關鍵詞:軟件測試;雷達系統;敏捷;V模型
隨著計算機技術以及現代雷達技術的迅速發展,雷達系統中軟件的比重越來越大,保證雷達系統質量、提高系統可靠性成為人們關注的焦點。軟件測試對于雷達軟件質量的保證、雷達系統可靠性的提高具有重要意義[1-2],是軟件質量保證的一項關鍵活動,是最有效的排除和防止軟件缺陷與故障的手段[3-4]。本文通過研究典型的雷達系統軟件測試V模型以及敏捷方法的觀點與原則,提出一種改進的雷達系統軟件測試模型,以期通過軟件測試更早發現問題、發現并解決更多的問題,保證雷達系統軟件質量。
1 軟件測試模型
軟件測試是貫穿于整個軟件開發生命周期中的對軟件分析、設計以及程序進行驗證(verification)和確認(validation)的活動過程。軟件測試的原則包括以下幾點:
⑴盡早地和不斷地進行軟件測試(Check early, check often);
⑵測試用例應由測試輸入數據和對應的預期輸出結果這兩部分組成;
⑶程序員應避免檢查自己的程序;
⑷在設計測試用例時,應當包括合理的輸入條件和不合理的輸入條件;
⑸充分注意測試中的群集現象;
⑹嚴格執行測試計劃,排除測試的隨意性;
⑺應當對每一個測試結果做全面檢查;
⑻妥善保存測試計劃、測試用例、出錯統計和最終分析報告,為維護提供方便。
軟件測試發展至今,比較典型的測試模型有V模型、W模型、H模型。其中V模型是最具有代表性的測試模型[5],也被廣泛應用于雷達系統測試過程,意在改進軟件開發的效率和效果。如圖1所示,V模型從左到右從上至下地描述了基本的開發行為和測試過程,箭頭代表了時間方向,左邊下降的是開發過程各個階段,相對應的是右邊上升的部分,即測試過程的各個階段。以編碼為分界把開發和測試兩個過程劃開,表達了這種模型下測試與開發相分離的思想。
V模型指出,單元測試和集成測試主要作用是驗證程序設計,開發人員和測試人員應檢測程序的執行是否滿足軟件設計的要求[6];而系統測試主要作用是驗證系統設計,檢驗系統功能、性能的質量是否達到系統設計的指標;由測試人員和用戶進行軟件的確認測試和驗收測試,以確定軟件的實現是否滿足用戶需求或合同的要求[7]。
然而雷達系統軟件測試V模型存在測試起始時間晚[8]、釆用串行的測試過程以及將測試與開發分開進行等不足。V模型僅僅把測試過程作為在需求分析、概要設計、詳細設計及編碼之后的階段,容易讓人理解為測試是軟件開發的最后一個階段,主要是針對程序進行測試來發現錯誤,而需求分析階段沒有發現的錯誤一直到后期驗證測試才被發現。測試的開始時間規定為編碼結束之后,這大大增加了前期錯誤的隱藏時間,不符合盡早發現錯誤的原則。
2 敏捷方法的觀點及原則
敏捷開發(agile development)的概念從2004年初開始流行起來,它是一種以人為本、通過迭代、循序漸進的軟件開發方法。在2001年2月,17位軟件開發領域的大師發表了敏捷宣言[9],在宣言中明確提出敏捷的價值觀:個體與交互重于過程和工具;可用的軟件重于完備的文檔;客戶協作重于合同談判;響應變化重于遵循計劃。
敏捷聯盟同時發表了敏捷的十二條原則[10],歸納這些原則,可以分析出敏捷過程具有以下幾個要點:
⑴通過頻繁迭代與客戶形成早期的良好合作,及時反饋提高產品質量。敏捷小組關注完成和交付具有用戶價值的功能,而不是孤立的任務。即使到了開發的后期,也歡迎改變需求,敏捷過程利用變化來為客戶創造競爭優勢;
⑵客戶、需求人員、開發人員之間必須進行有意義的、頻繁的交互,這樣就可以在早期及時的發現并解決問題;
⑶衡量功能是否實現的唯一標準是該功能的開發和測試均已完成,并且測試通過;
⑷使用更好的設計模式,或者輔助工具來加強團隊敏捷能力。不斷學習新的技能,使得敏捷運行得更加順暢。
敏捷方法在幾周或者幾個月的時間內完成相對較小的功能,強調盡早的將可能小的并且可用的功能交付給用戶使用,并在整個項目周期中持續改善和增強。敏捷方法重視頻繁的功能交付、重視交流與溝通,并以迭代方式強調對變化的快速響應能力。
3 基于敏捷方法的V模型改進
通過對典型的雷達系統軟件測試模型的研究分析,在改進和設計新模型時,應遵循以下設計原則[11]:(1)使軟件設計中的錯誤盡可能早地暴露出來;(2)采用測試與開發并行的測試模式;(3)簡單實用原則。
針對V模型的不足,結合雷達系統軟件的特點,本文基于敏捷方法的觀點與原則對雷達系統軟件測試V模型進行改進,如圖2所示,它可以更好地滿足測試的原則,具有以下特點。
⑴在初始階段進行計劃和測試設計,驗證雷達系統需求與設計。雷達系統軟件測試需要針對軟件的不同特點,結合測試需求分析和風險分析,確定測試策略。改進模型中測試活動從可行性分析文檔、需求文檔的撰寫階段開始部署測試,從需求的可實現性考慮,進行需求分析和設計邏輯分析,盡早發現設計錯誤。
⑵將雷達系統軟件開發過程和測試過程并行化,測試過程與開發過程緊密結合。這使得軟件測試的各個環節不再是軟件編碼工作之后串行的后續內容,而是與其它開發環節并行的獨立流程,這樣有利于針對雷達系統軟件的功能和特點設計高效的測試用例。強調測試應和設計同時進行,從而可以提高雷達系統軟件開發和測試的效率。
⑶對每一個可交付產品進行測試。改進模型的測試內容不只包括程序的源代碼及基本的功能。重要的測試文檔,包括可行性分析文檔、需求分析文檔也需要進行完備而有效的測試,以保證這些文檔的正確性以及可靠性。
⑷軟件的開發過程是一個循環往復的過程,相應地軟件測試也是一個循環往復的過程,不斷修改測試設計并重新執行測試的過程。
⑸不斷回顧、維護原有的測試用例。測試人員在編寫測試用例的同時,可以編寫測試用例跟蹤矩陣(Test Case Matrix),標注測試用例已覆蓋的功能、每個具體功能對應的測試用例編號等,明晰測試用例覆蓋率,從而及時發現覆蓋率不足的功能點,便于提高測試效率。
4 結束語
面對軟件高度集成的現代雷達系統,軟件測試作為必不可少的環節,對提高產品質量具有重要的意義。V模型是雷達系統軟件測試常用模型,但存在不足之處。在測試過程中使用基于敏捷方法改進的雷達系統軟件測試V模型,對雷達系統進行規范、系統的測試,能夠及早發現問題并解決問題,有利于提高軟件測試效率,降低發現問題成本,保證雷達系統軟件測試的充分性、有效性和產品質量。
[參考文獻]
[1]張玉彬.軍用軟件測試現狀及對策[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].北京:機械工業出版社.2003.
[5]戴莉萍,熊小勇.基于敏捷開發的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.