A8 用戶的參與
若在測試某一單元時需與用戶交互進行(如菜單顯示),則應請用戶參與確定需求的元素的工作,這樣效果會更好。在作測試計劃時向用戶詢問其他使用情況會發現非常有價值的信息。例如,通過詢問可能明確相對重要的單元功能,從而確定出測試的重點。
A9 更強的代碼覆蓋需求
針對單元的重要性或單元說明與設計信息的不足(如在維護舊的軟件時發生的情況),可以加強4.1.2條的b中描述的基于代碼的覆蓋需求。其中一種方式便是將指令覆蓋的要求增強到分支覆蓋的要求(即要求遍歷單元中每一個分支)。
A10 代碼覆蓋工具
這里大力推薦一種在測試單元執行時記錄源代碼覆蓋量的自動化方式。之所以使用自動化方式就是因為手工覆蓋分析不可靠且不經濟。使用代碼探測及報告工具就是一種自動化方式的工具,該工具將軟件探測器放置于源代碼中,以后在運行測試用例時便可提供一份總結了數據及控制流信息的報告。該報告會指出未運行過的指令。有些工具還能指出未運行的分支。有些編譯器也具備這種特點。
A11 測試過程的補充
為了評價并增強單元測試的有效性,建議在單元測試之后的步驟如組裝測試、系統測試、產品使用等活動中收集失效數據。然后分析這些數據以便確定那些本應被單元測試檢查出卻未被查出的錯誤。
A12 本標準的使用
實現一個新技術的過程,其本身就是一個需要計劃,實現及評價效果的過程。為了成功地實現基于本標準的測試,測試人員必須開發一份實現策略并將本標準作適當裁剪。這兩個活動必須反映出組織內部的文化背景及權威性。若要成功地完成一個長期項目,還需要專門的管理以及支持的政策、工具、培訓和起動協議。
A13 標準的可實施性
本標準同許多好的軟件工程實踐有一致的定義。某些組織采用與此相似的實踐活動而另外一些卻完全不同。無論如何,對許多選擇本標準并適應本標準的組織而言,它都會有某些變化。這些變化涉及到新的政策及規程、新的工具以及新的培訓程序。若標準與實際相差太大,則有必要對標準進行某種改變。解決實用性問題的答案從根本上講是滿足需要的問題。
附錄B
概念及假定
(參考件)
B1軟件工程概念
本標準中描述的標準化單元測試過程是建立在軟件工作一些基本概念之上的,B1-B1.8條描述了這些概念。
B1.1 測試與驗證、確認的關系
測試只是一系列包含驗證、確認等活動中的一個。其他活動有技術評審(如代碼審查),靜態分析及正確性證明。綜合性驗證及確認過程的規范不屬于本標準的范圍。
B1.2 像產品開發般的測試
測試是一個開發產品的過程,其結果是產生一個測試集、包括使用的數據、測試支持軟件及規程。該產品以文件形式記錄于測試規范說明及報告中,同其他產品開發過程一樣,開發測試集要求有計劃、需求(測試目標)、設計、實現以及評價等階段。
B1.3 排錯過程的組成
排錯過程由兩個主要的活動組成。第一步活動即失效分析的目標是確定導致一次失效的所有錯誤的地點。第二步活動即改正錯誤的目標是去除所有查出的錯誤并避免產生新的錯誤。關于失效分析及錯誤改正的過程的規范說明不屬于本標準的范圍。
B1.4 測試與排錯的關系
測試是為了檢查錯誤而力圖引出失效,而排錯既要進行失效分析并判定有關錯誤的地址,又要改正錯誤。測試可能需要來自排錯過程的失效分析的結果來決定終止測試、請示改變需求或進行錯誤改正等這樣的活動。
B1.5 單元類型之間的關系
沒有必要在設計單元、實現單元與測試單元之間建立一一對應的關系。幾個設計單元可能組成一個實現單元(如一段程序),而幾個實現單元可能組成一個測試單元。
B1.6 對設計與實踐信息的需求
一般來時,盡管測試的本質是將實際執行情況與所需求情況進行對照衡量,但并不能認為需求信息已足以幫助進行有效的測試。這是由于通常不可能測試所有可能的情況,而需求說明并不對失效率高的情況提供足夠的指南。由于這些失效率高的情況是設計和實現選擇時造成的結果,所以測試時通常需要設計和實現信息。
B1.7 測試中所考慮的元素說明的補充
在編制單元需求文件,單元設計文件以及在最后實現過程中,會漸漸發現更詳細的關于測試單元的信息。其結果是,測試所考慮的元素可能會在不同的測試活動期間得到補充。
對過程性編程語言的實現而言(CONLO),元素說明出現三次補充。第一組是在確定特性這一活動階段確定的,它基于單元需求文件;第二組是在設計測試集這一活動階段確定的,它基于單元代碼。
對非過程性編程語言的實現而言(如報告生成器或分類的規格化語言),元素說明出現兩次補充。第一次是在確定特性活動階段,基于需求說明;第二次是在設計測試集活動階段,基于非過程的規格說明書。
有一種補充方法,它允許在獲得需求文件之時便開始測試,并最大限度地減少單元設計與單元代碼的詳細知識之間的差別。
B1.8 對創建測試設計說明的補充
測試設計說明中記錄的信息是確定特性,細化計劃和設計測試集階段收集的。隨著每個測試活動階段的進行,有關說明的相應章條記錄了信息。所有的文件必須在設計測試集活動的最后重復的末尾完成。
文章來源于領測軟件測試網 http://www.kjueaiud.com/