宋彥博,許波強,楊 苗
(陜西凌云電器集團有限公司 設計所,陜西 寶雞 721006)
隨著航空電子系統(tǒng)的發(fā)展,軟件在機載航空設備產(chǎn)品中所占的比重越來越大,伴隨著RTCA DO-178B、CMMI V1.2 等國外先進軟件管理標準、規(guī)范的逐步引入,標志我國航空機載設備在軟件開發(fā)測試方面也開始步入規(guī)范化和常態(tài)化管理。如何對軟件測試進行更有效的管理和控制成為軟件測試執(zhí)行過程中面臨的主要問題。本文通過對軟件測試過程以及軟件測試管理流程的研究,結(jié)合工程實際管理環(huán)境,對軟件測試執(zhí)行過程中的管理方法、測試文檔的要求、在實踐中常出現(xiàn)的問題以及目前我國軟件測試現(xiàn)狀等方面做了簡要的分析和闡述。
軟件測試執(zhí)行過程管理是一種對過程進行約束的管理活動,可以對各階段的測試計劃、測試說明,測試用例、測試流程、測試文檔等進行追蹤、管理并記錄,使其整個過程系統(tǒng)化、完整化、規(guī)范化,從而減少后續(xù)工作的混亂和重復,提高軟件測試效率和軟件質(zhì)量的一個過程管理活動。
首先,在進行軟件測試時,測試人員在軟件源代碼及軟件相關(guān)文檔的提取方面應遵照一定的流程來進行規(guī)范化操作,使提取出的文檔是合法、受控、可管、可查,使軟件從源頭上保證其測試過程的規(guī)范化、合法化。軟件的提取可以是從受控的軟件庫、文檔庫中進行登記、審批并提?。ㄇ疤崾潜締挝灰呀?jīng)建立了此類軟件及文檔的受控庫),避免直接從軟件開發(fā)者手中直接提取軟件代碼和軟件文檔。
其次,提取相關(guān)軟件和文檔后,然后對軟件執(zhí)行相關(guān)的單元測試。單元測試中如果發(fā)現(xiàn)問題必須經(jīng)過討論、修改、回歸測試,往復這三個過程直到單元測試的所有問題解決后,才可以對單元測試產(chǎn)生的文檔進行評審。評審通過后,將通過的單元測試軟件源代碼和文檔入受控庫進行管理。
最后,進行下一步的軟件配置項測試,同樣的過程再對軟件配置項測試中發(fā)現(xiàn)的問題進行討論、修改、回歸測試,往復這三個過程直到所有問題歸零后,便編寫出相關(guān)測試文檔和總結(jié)性文檔進行評審,在評審通過后對通過的軟件配置項測試軟件源代碼和文檔入受控庫管理,至此便完成了軟件的整個測試過程。其整個軟件測試執(zhí)行過程管理如圖1 所示。
圖1 軟件測試執(zhí)行過程管理流程圖Fig.1 Management flow chart of the software testing process
軟件文檔內(nèi)容是產(chǎn)品設計思想、靈魂的具體體現(xiàn),是開發(fā)者思路的展現(xiàn),思路清晰、明了的文檔有助于需方、第三方或測試人員對軟件產(chǎn)品的透徹理解,并有利于指導具有追蹤關(guān)系文檔的編寫,例如: 由軟件需求規(guī)格說明文檔直接衍生輸出的文檔: 軟件設計說明、軟件接口設計說明、軟件數(shù)據(jù)庫設計說明、軟件配置項測試計劃等;由軟件設計說明文檔直接衍生輸出的文檔: 軟件概要、詳細設計說明、軟件單元測試計劃等。所以若頂層需求文檔不明確或功能缺失,將直接導致向下產(chǎn)生輸出的文檔內(nèi)容丟失和后須測試計劃相關(guān)功能的缺少;若頂層文檔內(nèi)容不詳細,其測試執(zhí)行難度也將加大,在設計軟件測試用例時將不能完整或不能達到真正測試軟件功能的目的。所以各種測試文檔的編制應當保持前后一致、統(tǒng)一且內(nèi)容追溯完整、詳實,同時建議按照一定的格式進行規(guī)范編制,可以參考GJB 438B-2009《軍用軟件開發(fā)文檔通用要求》中提供的類型模板來進行編寫。
對于軟件測試的執(zhí)行過程,測試人員應嚴格按照文檔的要求設計測試用例,必須對需求文檔里的所有指標、性能、功能、接口等要求進行完整無遺漏的覆蓋,此處需要特別說明的是,進行軟件單元測試時應嚴格參考軟件設計說明(含概要設計說明、詳細設計說明、接口設計說明、數(shù)據(jù)庫設計說明等)來進行測試用例的設計和執(zhí)行;進行軟件配置項測試則應完全嚴格參考軟件需求規(guī)格說明(含接口需求規(guī)格說明、數(shù)據(jù)庫需求規(guī)格說明等)中的條款設計測試用例和執(zhí)行。所以其追溯關(guān)系主要是軟件設計說明指導軟件單元測試,軟件需求規(guī)格說明指導軟件配置項測試。軟件測試執(zhí)行對應文檔及其追溯關(guān)系如圖2所示。
在軟件測試執(zhí)行過程工作中,經(jīng)常能遇到測試過程執(zhí)行不下去,執(zhí)行不徹底,或測試用例無法設計或設計不準確、功能追溯不完全等問題,經(jīng)分析其大多數(shù)問題是由于文檔編寫不完善、不完整、不準確所造成。在實際工作中常出現(xiàn)的文檔問題有:
(1)文檔描述不清或軟件功能和系統(tǒng)功能描述混淆,區(qū)分和界定模糊不清。現(xiàn)在機載設備軟件大部分為嵌入式軟件,由硬件和內(nèi)嵌式軟件相互配合完成,有些功能為硬件功能完成(如匹配/帶通濾波、差分解調(diào)、鑒頻、信號檢波等功能),應當歸屬在系統(tǒng)(或硬件)文檔中描述,但在軟件文檔中仍然描述,導致軟件測試用例無法設計,使軟件測試和系統(tǒng)測試含混不清,不利于軟件測試的執(zhí)行和操作。
圖2 軟件測試文檔關(guān)系圖Fig.2 The relation diagram of the software testing documentation
(2)文檔描述功能不完善或丟失,前后追蹤關(guān)系丟失。從系統(tǒng)文檔中提取出軟件功能不完善或丟失,軟件文檔從系統(tǒng)需求中提取出的軟件功能部分丟失或不完善,導致在后續(xù)進行文檔追溯測試時,功能缺失或功能驗證不徹底、不完整。如在軟件需求規(guī)格說明中描述的功能,在進行下一階段的軟件設計說明文檔中則沒有相應的體現(xiàn),將致使文檔追蹤關(guān)系丟失,測試也將不能完整執(zhí)行。
(3)文檔性能指標定義描述不嚴謹。如進行邊界測試時,某一指標在通用國軍標中有要求: 邊界精度可放寬范圍要求,但在編寫的軟件文檔中沒有明確描述,導致在邊界測試時出現(xiàn)指標超范圍的假不合理現(xiàn)象發(fā)生。其次,在進行性能指標描述時不能用大約、大概、約等于3s、10s 等概數(shù)來描述指標,此類概數(shù)將會對軟件的測試造成定性困難。如: 實時響應速度約500ms 將在軟件測試時造成時間界定模糊。
(4)文檔描述軟件功能前后不一致。有時一個大型軟件可能由有多個開發(fā)者共同編寫,文檔的形成也由多人合力完成,某開發(fā)者在文檔功能改進或內(nèi)容添加時,沒有及時通知軟件主管對總體文檔進行調(diào)整,以致在軟件測試文檔審查時能夠發(fā)現(xiàn)明顯前后不一致等低級錯誤的重復出現(xiàn)。
對于以上問題,有的是由于對頂層文件內(nèi)容認識不到位所致,有的是由于對軟件文檔編寫標準理解偏差所致,有的是由于工作疏忽所致。為此,需要開發(fā)、測試人員增強對頂層文檔的學習,加強對軟件相關(guān)標準方面的深入理解,提高思想認識,重視軟件文檔在軟件開發(fā)中所起到的積極重要作用,用科學嚴謹?shù)乃季S編寫出高質(zhì)量的軟件文檔,使其能夠更好的指導軟件設計和開發(fā),提高軟件的設計質(zhì)量,使得軟件在產(chǎn)品的應用中更加可靠和安全。
首先,專業(yè)的軟件測試工具主要依賴于國外引進,國內(nèi)還沒有自己獨立的專業(yè)軟件測試工具。航空機載軟件應用領(lǐng)域有著一定的特殊性和獨特性,它對軟件一般具有: 高實時性、高安全性、高可靠性等的要求,且其程序一般規(guī)模大、結(jié)構(gòu)復雜、應用面廣及嵌入式等特點,其應用環(huán)境較特殊,在測試中需要解決的技術(shù)難點很多,為提高測試效率,常需要借助一些專業(yè)的軟件測試工具,而目前國際市場上先進的軟件測試工具均已被美國和歐洲所占領(lǐng),先進軟件測試工具引進會受到一定的限制。例如: 現(xiàn)國內(nèi)引進的測試工具僅有對C、C++語言編制的軟件有單元及代碼測試工具,而對于硬件描述語言如VHDL、匯編、able 語言產(chǎn)生的軟件沒有相應測試工具的引進。目前,對于此類軟件國內(nèi)僅局限于從代碼走讀、邏輯測試、語句覆蓋等,白盒靜態(tài)分析方面進行人工測試,在軟件規(guī)模較大時,軟件測試效率將受到極大制約。
其次,我國軟件測試起步較晚,測試技術(shù)落后,測試人員匱乏,測試管理不完善等還存在很多問題。軟件測試在軟件業(yè)中的比重和質(zhì)量與歐、美、日、印度等有著較大的差距。目前,國內(nèi)的軟件測試總體設計欠缺,缺乏系統(tǒng)的分析和整體設計,過程管理隨意性較大,所有的審查和評審活動都是在設計文檔、規(guī)格說明和設計說明的基礎(chǔ)上,針對成型軟件產(chǎn)品而開展,如果對需求理解不充分或設計文檔中有缺陷錯誤等,測試對總體軟件質(zhì)量就難以保證。總體上,國內(nèi)軟件項目過程不規(guī)范,導致重視編碼和輕視測試的現(xiàn)象,對于測試過程的管理重要性、管理方法等方面還存在很多錯誤的認識,國內(nèi)軟件測試現(xiàn)狀在軟件業(yè)中尚處于弱勢地位。
雖說我國無論是在軟件測試理論還是測試管理實踐上都和國外發(fā)達國家存在不小的差距,但隨著我國軟件產(chǎn)業(yè)的蓬勃發(fā)展以及對軟件質(zhì)量的重視,軟件測試過程管理也將日趨完善,將更加深入、細致的貫標和規(guī)范化,軟件測試過程管理正在逐步成為一個新興的產(chǎn)業(yè)。
隨著開發(fā)的軟件越來越復雜,軟件測試的規(guī)范化管理也將顯得越來越重要,只有對測試進行科學的管理,才能促進軟件開發(fā)效率和軟件質(zhì)量得到提高。我們通過對軟件測試過程管理的研究,以及在測試過程中的實踐,從中發(fā)現(xiàn)了不少問題,至此需要我們在以后的實踐中對其進一步完善,來使我們的軟件測試管理工作更加有效和完善。
[1] 中華人民共和國國家質(zhì)量監(jiān)督檢驗檢疫總局;中國國家標準化管理委員會.GB-T 15532-2008[S].2008,9.
[2] 美國航空無線電技術(shù)委員會(RTCA)第167 號特別委員會制訂.《RTCA DO-178B 機載系統(tǒng)和設備合格審定中的軟件考慮》[S].1992,12.
[3] 《CMMI for Development Version 1.2》[S] by CMMI Product Team August,2006.
[4] 總裝電子信息基礎(chǔ)部等12 單位聯(lián)合起草;閆宇華,等.GJB5000A-2008《軍用軟件研制能力成熟度模型》[S].2008.
[5] 宋彥博.Q/WQ.B36.201.-2012《軟件基本開發(fā)過程》[S].陜西凌云電器集團有限公司企標文件,2012,4.
[6] 楊寶明,等.GJB 438B-2009《軍用軟件開發(fā)文檔通用要求》[S].2009,8.