摘 要:本文重點介紹了現階段軍用軟件開發過程中基本的測試技術:軟件測試常用分類、軟件測試過程模型、軟件測試常用工具;并結合我軍軟件測試現狀提出相關改進意見。
關鍵詞:軍用軟件軟件測試
中圖分類號:TP311文獻標識碼:A文章編號:1674-098X(2011)09(a)-0023-01
引言
在現代科學技術迅猛發展的今天,武器裝備系統尤其是其控制系統大量采用了各類微處理器及相應的控制軟件,而且規模越來越大、結構越來越復雜。軟件及軟件密集系統的廣泛使用,大大提高了武器裝備的性能,使其作戰效能倍增,改變了作戰模式,軟件已成為現代武器系統的靈魂。而軍用軟件又不同于普通的民用軟件,其最顯著的特點之一便是:如果出現故障或缺陷,輕則造成巨大經濟損失,重則導致人員傷亡。所以,軍用軟件在研發過程中必須根據標準實施,在交付使用之前必須經過嚴格的測試。
1 軟件測試技術基本概念及常用的軟件測試方法
1.1 軟件測試基本概念
所謂軟件測試,是通過對源程序及其實際執行所產生的結果進行檢查分析,以找出程序中可能隱藏的錯誤的過程,即為了發現程序錯誤而執行程序的過程[1]。它是軟件開發過程中一個非常關鍵的環節,在軟件的生存周期中占有重要的位置,通過測試可以確認軟件產品是否達到了指標和可靠性要求,并了解軟件的實際水平。
1.2 軟件測試常見的分類
1.2.1 黑盒測試與白盒測試[1]
軟件測試一般分為靜態測試方法和動態測試方法,其中動態測試方法根據測試用例設計方法不同,分為黑盒測試和白盒測試兩類。
軟件的黑盒測試也稱功能測試或數據驅動測試,是最常用的測試方法,主要用于軟件系統測試和確認測試。具體的測試方法有:等價類劃分、正交試驗設計法、因果圖,邊值分析、判定表驅動法、功能測試等,功能測試在進行通過測試時,實際上是確認系統能做什么,而不會去考驗其能力如何。只運用最簡單、最直觀的測試案例。
白盒測試的叫法有很多,結構測試、邏輯驅動測試、透明盒測試或玻璃盒測試都是白盒測試的同義詞,是相對于黑盒測試來說的,主要用在單元測試階段。白盒測試是在了解產品內部工作過程的基礎上進行的,是為了檢測產品內部動作是否按照編程人員編程思路正常進行而制定的,按照程序內部的結構測試程序,檢驗程序中的每條通路是否都能按預定要求正確工作,而不顧它的功能。所以在使用這一方法時,測試者必須清楚的了解系統內部的結構和工作原理,設計適合的測試用例,從檢查程序的邏輯著手,得出測試數據。白盒測試法通常使用語句覆蓋、判定覆蓋、條件覆蓋、判定條件測試、條件組合覆蓋、路徑覆蓋6中邏輯覆蓋法進行測試。
1.2.2 按測試階段分類
按測試階段分類,測試可分4個主要階段:單元測試、集成測試、系統測試和驗收測試。這是一種“從小到大”、“循序漸進”的測試過程。其中單元測試、集成測試、系統測試是以開發方為主的測試,而驗收測試是以需求方為主的測試。
2 結合我軍軟件測試現狀提出幾點改進建議
2.1 規范化軍用軟件開發,建立軍用軟件測試體系
目前,軍用軟件的開發大多由軍事院校、科研院所及相關技術部完成。這些單位中,相當部分未建立完善的軟件質量保證體系,有些則通過IS09001或CMM認證的單位,也僅是為了認證而認證,并未真正地通過認證過程,規范其研發流程,保障有序正規的測試[3]。不少軍用軟件承制方采用“手工作坊”式的開發方式,重視個人技術,對技術高手個人的依賴性很大,開發透明度差,開發者自己設汁、自己編程、自己測試、自己維護。實踐證明、采用這種方式開發軟件是無法保證軟件測試的相對獨立性和測試質量的,必然導致軟件質量的不可靠。最主要的一點是規范化,好多的軟件不合格都是沒有規范化的結果。按軟件工程要求,規范軍用軟件產品生產全過程,使軟件的生產工業化,實現軟件的需求分析、開發、測試、運行、維護整個過程的規范化。按照要求建立軍用軟件產品的開發庫、受控庫、產品庫,并嚴格出入庫審查。
許多軍用軟件承制方很重視軟件測試,但由于其開發過程不規范,往往導致測試,尤其是模塊級的黑盒測試與白盒測試難以正常開展。例如,缺少詳細的設計文檔以及對應于各模塊代碼的流程圖與接入關系,導致測試如同盲人摸象,而僅靠讀程序是看不出程序本身是否與需求、設計思想致的。要提高軟件測試質量,建立獨立的總部、軍區、地區軟件測評中心,為全軍軟件測試提供支持。各項目組在項目研制之初,按軟件工程要求建立獨立于開發組與需求組的軟件測試組,按照標準和規范實施有計劃、有組織的測試工作,通過標準和規范來約束軟件開發中各個階段單元測試、部件測試、配置項測試、系統測試等環節,做好測試記錄和測試文檔,減少軍用軟件產品的缺陷和故障。
2.2 加強相關軟件測試技術的研究與應用
軟件工程領域技術日新月異,敏捷開發、極限編程是目前的一個研究熱點,其中強調的一種敏捷方法即測試驅動開發(Test-Driver Development),其基本思想就是通過測試來推動整個開發過程進行,即在開發功能代碼之前,先編寫測試代碼,其目的也是為應對不斷變化的需求,降低軟件缺陷和減少Bug,保證軟件質量與可靠性。軍用軟件承制單位跟蹤和掌握軟件測試相關技術的最新研究與進展,并將其結合實際應用,將有效提高軍用軟件測試水平與能力。
2.3 建立專業的軍用軟件測試檢測隊伍
由于軟件測試在軟件的開發中占有重要的地位,因此對軟件的測試人員提出了很高的要求,一般來說軟件測試檢驗人員的水平不能比設計人員的水平低。目前相當一部分軟件測試檢驗人員,由于知識結構等原因,在軟件的研制、開發中常常感到“心有余而力不足”,因此必須及早培養和提高軟件檢測人員的能力和水平,建立高水平的軟件測試檢驗隊伍,才能對裝備的軟件質量進行有效的監督和控制。目前,按專業化的水平培養高層次的軍用軟件測試人才,是搞好軍用軟件測試工作,提高軍用軟件質量的重要舉措。軍用軟件測試人員必須具備較強的專業知識、計算機知識及軟件檢測經驗和能力。應依托各種渠道培養和造就大批合格的軟件檢測人員,組建軟件專檢隊伍和機構。
3 結語
加強軍用軟件測試的正規化和科學性,是提高軍用軟件系統質量的根本保證。必須正視目前影響軍用軟件測試有效實施的主要因素,深人研究軍用軟件測試的特點與規律,建立和完善軍用軟件測試的手段和方法,提高軍用軟件產品的質量和可靠性,以保障我軍軍事裝備系統作戰效能的充分發揮。
參考文獻
[1]周予濱,姚靜,譯.Ron Piton軟件測試[M].北京:機械工業出版社.2002.
[2]孫義婷.軟件測試模型的應用研究及改進[J].電腦知識與技術,2008.
[3]姚有文.軍用軟件質量及其測試的探討,艦船電子工程,2005.
[4]鄭人杰等.實用軟件工程[M].清華大學山版社,2005.