軟件測試項目的啟動、規劃與需求[2] 軟件測試
軟件需求項是測試需求分析的起點,這一點在工程實踐中并不絕對。對于不同階段的測試(這里主要指單元測試、集成測試、系統測試和驗收測試,暫不考慮驗證技術和需求設計確認),測試需求開發所涉及的工作內容和方法都會略有差異。例如,如果是一個驗收測試,那么,除了個別的需求需要做進一步明確外,幾乎可以將測試需求等同于用戶需求和業務需求(由于該類測試是以客戶為主體,因此并不需要向下追溯到軟件需求);又如,如果是系統測試,除了需要對不具備可測試性的軟件需求項進一步開發外,幾乎可以對軟件需求和測試需求不做區分。再如,如果是集成測試,測試需求應該從概要設計規格說明中導出。如果尚不存在概要設計規格說明,就需要從軟件需求規格說明出發,與軟件設計人員協同工作,具體定出構成系統的各個模塊、子系統、分系統的功能、性能、約束性條件以及相互接口關系。根據協同工作的結果,開發出對應的測試需求。最后,如果是單元測試,測試需求應該從詳細設計規格說明中導出。如果項目不存在概要設計規格說明,就需要從概要設計規格說明出發,與軟件設計人員明確每個模塊內部的對象屬性與方法以及對象與對象間的通信關系。根據此結果,進一步開發相應的測試需求。相應地,上一節所說的對軟件需求項進行優先關系排序在實踐中要變通地理解為對測試需求項進行優先關系排序。
讀者朋友可能會問,對于整周期的開發項目,以上論述是否意味著測試需求開發的依據文檔是否要根據測試所處的階段而不斷調整呢?是的,筆者認為這也是完全必要的。我們不能指望軟件需求項能夠描述清楚集成或單元測試階段的測試需求。測試需求的開發總是有賴于相應層次的軟件規格說明書(只有在開發團隊不能提供的情況下才確有必要循著“詳細設計規格說明->概要設計規格說明->軟件需求規格說明->用戶需求規格說明->項目章程、合同、項目建議書、工作說明書等”的順序往前追溯)。通常相關依據文檔的可測試性越好,測試需求開發所需要的工作量越少。
除了對軟件需求項、測試需求項做優先關系排序、對不具備可測試性或不確定的需求進一步細化、明確化之外,測試需求開發階段的工作還包括分析各測試需求項之間可能的時間關系排序。哪些測試需求項應該先測,哪些可以延后,那些是可以并行等等,都需要在測試需求開發階段一并分析清楚。
文章來源于領測軟件測試網 http://www.kjueaiud.com/