宋彥博,許波強,楊 苗
(陜西凌云電器集團有限公司 設計所,陜西 寶雞 721006)
隨著航空電子系統的發展,軟件在機載航空設備產品中所占的比重越來越大,伴隨著RTCA DO-178B、CMMI V1.2 等國外先進軟件管理標準、規范的逐步引入,標志我國航空機載設備在軟件開發測試方面也開始步入規范化和常態化管理。如何對軟件測試進行更有效的管理和控制成為軟件測試執行過程中面臨的主要問題。本文通過對軟件測試過程以及軟件測試管理流程的研究,結合工程實際管理環境,對軟件測試執行過程中的管理方法、測試文檔的要求、在實踐中常出現的問題以及目前我國軟件測試現狀等方面做了簡要的分析和闡述。
軟件測試執行過程管理是一種對過程進行約束的管理活動,可以對各階段的測試計劃、測試說明,測試用例、測試流程、測試文檔等進行追蹤、管理并記錄,使其整個過程系統化、完整化、規范化,從而減少后續工作的混亂和重復,提高軟件測試效率和軟件質量的一個過程管理活動。
首先,在進行軟件測試時,測試人員在軟件源代碼及軟件相關文檔的提取方面應遵照一定的流程來進行規范化操作,使提取出的文檔是合法、受控、可管、可查,使軟件從源頭上保證其測試過程的規范化、合法化。軟件的提取可以是從受控的軟件庫、文檔庫中進行登記、審批并提取(前提是本單位已經建立了此類軟件及文檔的受控庫),避免直接從軟件開發者手中直接提取軟件代碼和軟件文檔。
其次,提取相關軟件和文檔后,然后對軟件執行相關的單元測試。單元測試中如果發現問題必須經過討論、修改、回歸測試,往復這三個過程直到單元測試的所有問題解決后,才可以對單元測試產生的文檔進行評審。評審通過后,將通過的單元測試軟件源代碼和文檔入受控庫進行管理。
最后,進行下一步的軟件配置項測試,同樣的過程再對軟件配置項測試中發現的問題進行討論、修改、回歸測試,往復這三個過程直到所有問題歸零后,便編寫出相關測試文檔和總結性文檔進行評審,在評審通過后對通過的軟件配置項測試軟件源代碼和文檔入受控庫管理,至此便完成了軟件的整個測試過程。其整個軟件測試執行過程管理如圖1 所示。

圖1 軟件測試執行過程管理流程圖Fig.1 Management flow chart of the software testing process
軟件文檔內容是產品設計思想、靈魂的具體體現,是開發者思路的展現,思路清晰、明了的文檔有助于需方、第三方或測試人員對軟件產品的透徹理解,并有利于指導具有追蹤關系文檔的編寫,例如: 由軟件需求規格說明文檔直接衍生輸出的文檔: 軟件設計說明、軟件接口設計說明、軟件數據庫設計說明、軟件配置項測試計劃等;由軟件設計說明文檔直接衍生輸出的文檔: 軟件概要、詳細設計說明、軟件單元測試計劃等。所以若頂層需求文檔不明確或功能缺失,將直接導致向下產生輸出的文檔內容丟失和后須測試計劃相關功能的缺少;若頂層文檔內容不詳細,其測試執行難度也將加大,在設計軟件測試用例時將不能完整或不能達到真正測試軟件功能的目的。所以各種測試文檔的編制應當保持前后一致、統一且內容追溯完整、詳實,同時建議按照一定的格式進行規范編制,可以參考GJB 438B-2009《軍用軟件開發文檔通用要求》中提供的類型模板來進行編寫。
對于軟件測試的執行過程,測試人員應嚴格按照文檔的要求設計測試用例,必須對需求文檔里的所有指標、性能、功能、接口等要求進行完整無遺漏的覆蓋,此處需要特別說明的是,進行軟件單元測試時應嚴格參考軟件設計說明(含概要設計說明、詳細設計說明、接口設計說明、數據庫設計說明等)來進行測試用例的設計和執行;進行軟件配置項測試則應完全嚴格參考軟件需求規格說明(含接口需求規格說明、數據庫需求規格說明等)中的條款設計測試用例和執行。所以其追溯關系主要是軟件設計說明指導軟件單元測試,軟件需求規格說明指導軟件配置項測試。軟件測試執行對應文檔及其追溯關系如圖2所示。
在軟件測試執行過程工作中,經常能遇到測試過程執行不下去,執行不徹底,或測試用例無法設計或設計不準確、功能追溯不完全等問題,經分析其大多數問題是由于文檔編寫不完善、不完整、不準確所造成。在實際工作中常出現的文檔問題有:
(1)文檔描述不清或軟件功能和系統功能描述混淆,區分和界定模糊不清。現在機載設備軟件大部分為嵌入式軟件,由硬件和內嵌式軟件相互配合完成,有些功能為硬件功能完成(如匹配/帶通濾波、差分解調、鑒頻、信號檢波等功能),應當歸屬在系統(或硬件)文檔中描述,但在軟件文檔中仍然描述,導致軟件測試用例無法設計,使軟件測試和系統測試含混不清,不利于軟件測試的執行和操作。

圖2 軟件測試文檔關系圖Fig.2 The relation diagram of the software testing documentation
(2)文檔描述功能不完善或丟失,前后追蹤關系丟失。從系統文檔中提取出軟件功能不完善或丟失,軟件文檔從系統需求中提取出的軟件功能部分丟失或不完善,導致在后續進行文檔追溯測試時,功能缺失或功能驗證不徹底、不完整。如在軟件需求規格說明中描述的功能,在進行下一階段的軟件設計說明文檔中則沒有相應的體現,將致使文檔追蹤關系丟失,測試也將不能完整執行。
(3)文檔性能指標定義描述不嚴謹。如進行邊界測試時,某一指標在通用國軍標中有要求: 邊界精度可放寬范圍要求,但在編寫的軟件文檔中沒有明確描述,導致在邊界測試時出現指標超范圍的假不合理現象發生。其次,在進行性能指標描述時不能用大約、大概、約等于3s、10s 等概數來描述指標,此類概數將會對軟件的測試造成定性困難。如: 實時響應速度約500ms 將在軟件測試時造成時間界定模糊。
(4)文檔描述軟件功能前后不一致。有時一個大型軟件可能由有多個開發者共同編寫,文檔的形成也由多人合力完成,某開發者在文檔功能改進或內容添加時,沒有及時通知軟件主管對總體文檔進行調整,以致在軟件測試文檔審查時能夠發現明顯前后不一致等低級錯誤的重復出現。
對于以上問題,有的是由于對頂層文件內容認識不到位所致,有的是由于對軟件文檔編寫標準理解偏差所致,有的是由于工作疏忽所致。為此,需要開發、測試人員增強對頂層文檔的學習,加強對軟件相關標準方面的深入理解,提高思想認識,重視軟件文檔在軟件開發中所起到的積極重要作用,用科學嚴謹的思維編寫出高質量的軟件文檔,使其能夠更好的指導軟件設計和開發,提高軟件的設計質量,使得軟件在產品的應用中更加可靠和安全。
首先,專業的軟件測試工具主要依賴于國外引進,國內還沒有自己獨立的專業軟件測試工具。航空機載軟件應用領域有著一定的特殊性和獨特性,它對軟件一般具有: 高實時性、高安全性、高可靠性等的要求,且其程序一般規模大、結構復雜、應用面廣及嵌入式等特點,其應用環境較特殊,在測試中需要解決的技術難點很多,為提高測試效率,常需要借助一些專業的軟件測試工具,而目前國際市場上先進的軟件測試工具均已被美國和歐洲所占領,先進軟件測試工具引進會受到一定的限制。例如: 現國內引進的測試工具僅有對C、C++語言編制的軟件有單元及代碼測試工具,而對于硬件描述語言如VHDL、匯編、able 語言產生的軟件沒有相應測試工具的引進。目前,對于此類軟件國內僅局限于從代碼走讀、邏輯測試、語句覆蓋等,白盒靜態分析方面進行人工測試,在軟件規模較大時,軟件測試效率將受到極大制約。
其次,我國軟件測試起步較晚,測試技術落后,測試人員匱乏,測試管理不完善等還存在很多問題。軟件測試在軟件業中的比重和質量與歐、美、日、印度等有著較大的差距。目前,國內的軟件測試總體設計欠缺,缺乏系統的分析和整體設計,過程管理隨意性較大,所有的審查和評審活動都是在設計文檔、規格說明和設計說明的基礎上,針對成型軟件產品而開展,如果對需求理解不充分或設計文檔中有缺陷錯誤等,測試對總體軟件質量就難以保證。總體上,國內軟件項目過程不規范,導致重視編碼和輕視測試的現象,對于測試過程的管理重要性、管理方法等方面還存在很多錯誤的認識,國內軟件測試現狀在軟件業中尚處于弱勢地位。
雖說我國無論是在軟件測試理論還是測試管理實踐上都和國外發達國家存在不小的差距,但隨著我國軟件產業的蓬勃發展以及對軟件質量的重視,軟件測試過程管理也將日趨完善,將更加深入、細致的貫標和規范化,軟件測試過程管理正在逐步成為一個新興的產業。
隨著開發的軟件越來越復雜,軟件測試的規范化管理也將顯得越來越重要,只有對測試進行科學的管理,才能促進軟件開發效率和軟件質量得到提高。我們通過對軟件測試過程管理的研究,以及在測試過程中的實踐,從中發現了不少問題,至此需要我們在以后的實踐中對其進一步完善,來使我們的軟件測試管理工作更加有效和完善。
[1] 中華人民共和國國家質量監督檢驗檢疫總局;中國國家標準化管理委員會.GB-T 15532-2008[S].2008,9.
[2] 美國航空無線電技術委員會(RTCA)第167 號特別委員會制訂.《RTCA DO-178B 機載系統和設備合格審定中的軟件考慮》[S].1992,12.
[3] 《CMMI for Development Version 1.2》[S] by CMMI Product Team August,2006.
[4] 總裝電子信息基礎部等12 單位聯合起草;閆宇華,等.GJB5000A-2008《軍用軟件研制能力成熟度模型》[S].2008.
[5] 宋彥博.Q/WQ.B36.201.-2012《軟件基本開發過程》[S].陜西凌云電器集團有限公司企標文件,2012,4.
[6] 楊寶明,等.GJB 438B-2009《軍用軟件開發文檔通用要求》[S].2009,8.