高效的測試確保可跟蹤性和驗證要求(上)
集成汽車電子硬件和軟件測試的需求,可以是開發(fā)更為流暢,成本更為低廉。對要求可跟蹤性和驗證的需要像一個契約要求給汽車電子供應商施加著影響。隨著頻率的提高,廠商逐漸意識到以要求為基礎的測試通常是軟件開發(fā)工程成功的重要要素。
本文引用地址:http://butianyuan.cn/article/197041.htm作為一種可交付使用的合同,或更一般地說,作為一種勞動產(chǎn)品,要求可跟蹤性的任務生成了一個測試驗證矩陣(TVM),TVM是一個很難制成的產(chǎn)品,這個過程消耗著從其他生產(chǎn)率更高的活動中轉移過來的有價值的資源。
在人們試圖通過項目的測試、集成和展開階段去維護TVM之時,TVM的真實重要性才會顯現(xiàn)出來。當缺陷出現(xiàn)時,TVM的固有不足和它代表的人工處理就會以缺陷的形式暴露出來。確切的說,大部份這類缺點都歸因于對要求管理,包括要求確認、分配和正確的實現(xiàn)。事實上,記錄顯示高達70% 的此類缺陷被歸類為與要求管理相關!
下個挑戰(zhàn)是生成一個專門面向開發(fā)和測試團隊的、工作在現(xiàn)有工具和程序環(huán)境中的要求可跟蹤性方案。目前,大多數(shù)的客戶LDRA擁有要求數(shù)據(jù)庫或扁平的文檔處理能力,在此,他們定義并且維護系統(tǒng)或高級別的需求。
延遲映射
一些客戶把這些高級別的要求映射到頂層的設計;甚至較少把這些要求映射為實際建造設計和源代碼。大體上,客戶至少要把要求映射到驗證這些要求的測試用例。然而,當用戶等待測試以執(zhí)行要求可跟蹤性之前,錯誤映射出現(xiàn)的可能性非常大,尤其在系統(tǒng)測試中。
出現(xiàn)這么晚的要求映射的原因在于,項目經(jīng)理的辦公室和開發(fā)工程師工作站的測試環(huán)境或在實驗室目標系統(tǒng)上的要求數(shù)據(jù)庫對操作約束施加了影響?;蛘咴谶h端,轉包商正在執(zhí)行測試。在最小程度上,這些操作約束規(guī)定,要在要求數(shù)據(jù)庫和該測試環(huán)境之間進行某種級別的集成,以引入一種自動的解決方案。。
一種更有效的方法是至少把要求映射到(或詳細的)實際建造設計和嵌入式源代碼。映射已構建的系統(tǒng)是測試資格或測試預備過程的組成部分,測試預備程序決定要求和代碼之間的合適關系;這種檢查得到的一個推論就是,要消除源代碼中的廢棄代碼(用不上的代碼)。此外,可能引起爭議的是,行不通的代碼或在任何測試數(shù)據(jù)組合之下不能運行的代碼,也應該在測試準備就緒之前校正或清除。
要求可跟蹤性的最佳解決方法包括:第一步,把系統(tǒng)要求映射為最高層設計,在使用一個設計建模工具時適當?shù)貓?zhí)行(該選項在 LDRA 白皮書“LDRA Tool Suite/ Telelogic I-logix Rhapsody Integration ”)。
原型設計
現(xiàn)有的低級和引伸要求迫使對實際建造設計做進一步的要求可跟蹤性,開發(fā)團隊要在詳細制定系統(tǒng)要求(或原型設計)的過程中定義這些要求,并定義可工作和可測試的系統(tǒng)構造。該產(chǎn)品進化的模式在嵌入式軟件任務的開發(fā)過程中最為顯著,其中,也必須考慮目標約束和硬件需求。
低級要求的流行和上下文環(huán)境對要求可跟蹤性來說是另外一個重大挑戰(zhàn)。這些要求不考慮系統(tǒng)或客戶需求;它們解決軟件系統(tǒng)“如何”工作的問題,而客戶需求定義的是系統(tǒng)應該“做什么”的問題。結果,低級和引伸要求常常與系統(tǒng)要求脫節(jié)。這就提出了另一個數(shù)據(jù)管理需求。
低級要求管理、跟蹤和驗證的一個關鍵方面,就是怎樣把這些要求劃分給開發(fā)工程師和測試工程師。開發(fā)工程師要完全掌握他們將實現(xiàn)的代碼的接口規(guī)范以及該代碼將要調(diào)用的程序。這些規(guī)范必須明確連接到相關的高級要求,以便開發(fā)工程師正確地理解實現(xiàn)的上下文環(huán)境。獲得了合適的信息,開發(fā)工程師就可以針對可測性開展設計,并考慮必須在多個測試級使用的功能。
關鍵軟件在汽車工業(yè)以及全球其他的商業(yè)和政府部門方面都有許多應用,例如安全關鍵、任務關鍵和商業(yè)關鍵的應用。下面列舉了一組常用的此類應用程序。
如果人們考慮“消費者關鍵”的應用,那么,這些軟件的應用領域更寬,包括ATM和游戲機(特別是花自己錢的時候)。大多數(shù)這些應用都是為工業(yè)和政府組織開發(fā)的,他們定義和出版自己的軟件開發(fā)和測試標準。下列為此類標準的代表:
MISRA: 車載軟件開發(fā)指南,3.6, “測試”
IEEE 1012: 軟件驗證和確認標準
IEEE 829: 軟件測試文檔編制標準
IEC 61508: 電氣/電子/可編程安全性相關系統(tǒng)的功能安全性
FDA: 軟件驗證的通用原則, 5.2.5, “由軟件開發(fā)工程師進行的測試”
EN 50128: 鐵路應用, “鐵路控制和保護系統(tǒng)的軟件”
RTCA DO-178B: 航彈系統(tǒng)和設備認證要求中的軟件考慮, 6.x, “軟件驗證過程”
Def Stan 00-55:國防設備(第2部分)中安全性相關軟件的要求,第五節(jié),“測試和集成”
這些標準的共同之處是運行以要求為基礎的測試。在這些標準之中最顯著的是航彈系統(tǒng)標準,DO-178B。這個標準主要定義了兩個基于測試的要求活動作為功能測試或黑盒測試(下圖),以及結構覆蓋或白盒測試。
功能測試需要開發(fā)工程師或測試工程師掌握確定被測代碼行為的軟件要求。更確切的說,開發(fā)工程師(或測試工程師)必須根據(jù)輸出和預期的結果來定義輸入和條件,以便制定出測試規(guī)范。該測試規(guī)范可能會以一或多個測試用例的形式給出,以便完全遍歷測試規(guī)范的要求。
結構覆蓋或白盒測試有助于驗證黑盒測試的完整性。結構測試也有助于確定實際建造設計的正確性;例如,如果所必的軟件功能已經(jīng)全部運行過,但仍然有未覆蓋的代碼,那么,這段多余的代碼的作用就是問題所在,代碼運行時間的可預測性也一樣。
本文第2部分將討論能力成熟度模型(CMMI)標準在改善軟件開發(fā)過程中的作用,從中引出把測試信息映射為要求的工具。
評論