從軟件設計師試題看軟件測試七條原則 軟件測試工程師
從軟件設計師試題看軟件測試七條原則 這里借2006年5月軟件設計師上午考試試題30來說明問題。
[試題]
下面有關測試的說法正確的是 。
A.測試人員應該在軟件開發結束后開始介入
B.測試主要是軟件開發人員的工作
C.要根據軟件詳細設計中設計的各種合理數據設計測試用例
D.嚴格按照測試計劃進行,避免測試的隨意性
[分析]
首先要明晰,根據軟件的定義“軟件包括源程序、數據和文檔”,因此,軟件測試不是僅對源程序進行測試,開發各階段得到的文檔包括需求規格說明書、概要設計說明書、詳細設計說明書等都是軟件測試的對象。
軟件測試應力求遵循以下七條原則:
1) 所有的測試都應追溯到用戶需求。這是因為軟件的目的是使用戶完成預定的任務,滿足其需求,而軟件測試揭示軟件的缺陷和錯誤,一旦修正這些錯誤就能更好地滿足用戶需求。
2) 應盡早地和不斷地進行軟件測試。由于軟件的復雜性和抽象性,在軟件生命周期各階段都可能產生錯誤,所以不應把軟件測試僅僅看作是軟件開發的一個獨立階段,而應當把它貫穿到軟件開發的各個階段中去。在需求分析和設計階段就應開始進行測試工作,編寫相應的測試計劃及測試設計文檔,同時堅持在開發各階段進行技術評審和驗證,這樣才能盡早發現和預防錯誤,杜絕某些缺陷和錯誤,提高軟件質量。測試工作進行得越早,越有利于提高軟件的質量,這是預防性測試的基本原則。
3) 在有限的時間和資源下進行完全測試找出軟件所有的錯誤和缺陷是不可能的,軟件測試不能無限進行下去,應適時終止。因為,測試輸入量大、輸出結果多、路徑組合太多,用有限的資源來達到完全測試是不現實的。
4) 測試只能證明軟件存在錯誤而不能證明軟件沒有錯誤,測試無法顯示潛在的錯誤和缺陷,繼續進一步測試可能還會找到其它錯誤和缺陷。
5) 充分關注測試中的集群現象。在測試的程序段中,若發現的錯誤數目多,則殘存在其中的錯誤數目也比較多,因此應當花較多的時間和代價測試那些具有更多錯誤數目的程序模塊。
6) 程序員應避免檢查自己的程序??紤]到人們的心理因素,自己揭露自己程序中的錯誤是件不愉快的事,自己不愿意否認自己的工作;另一方面,由于思維定勢,自己難以發現自己的錯誤。因此,測試一般由獨立的測試部門或第三方機構進行。
7) 盡量避免測試的隨意性。軟件測試是有組織、有計劃、有步驟的活動,要嚴格按照測試計劃進行,要避免測試的隨意性。
為了發現更多的錯誤讓系統更完善,設計測試用例時不但要選擇合理的輸入數據作為測試用例,而且要選擇不合理的輸入數據作為測試用例,使得系統能應付各種情況。
測試過程不但要求軟件開發人員參與,而且一般要求有專門的測試人員進行測試,并且還要求用戶參與,特別是驗收測試階段,用戶是主要的參與者。
綜上所述,答案顯而易見。