在實踐中,軟件測試的困難常常使人望而卻步或敷衍了事,這是由于對測試仍然存在一些不正確的看法和錯誤的態度,這包括:
(1)認為測試工作不如設計和編碼那樣容易取得進展難以給測試人員某種成就感;
(2)以發現軟件錯誤為目標的測試是非建設性的,甚至是破壞性的,測試中發現錯位是對責任者工作的一種否定;
(3)測試工作枯燥無味,不能引起人們的興趣;
(4)測試工作是艱苦而細致的工作;
(5)對自己編寫的程序盲目自信,在發現錯誤后,顧慮別人對自己的開發能力的看法。
這些觀點對軟件測試工作是極為不利的,必須澄清認識、端正態度,才可能提高軟件產品的質量。
3.軟件測試的目的
如果測試的目的是為了盡可能多地找出錯誤,那么測試就應該直接針對軟件比較復雜的部分或是以前出錯比較多的位置。如果測試目的是為了給最終用戶提供具有一定可信度的質量評價,那么測試就應該直接針對在實際應用中會經常用到的商業假設。
在談到軟件測試時,許多人都引用Grenford J. Myers在《The Art of Software Testing》一書中的觀點:
(1)軟件測試是為了發現錯誤而執行程序的過程;
(2)測試是為了證明程序有錯,而不是證明程序無錯誤;
(3)一個好的測試用例是在于它能發現至今未發現的錯誤;
(4)一個成功的測試是發現了至今未發現的錯誤的測試。
這種觀點可以提醒人們測試要以查找錯誤為中心,而不是為了演示軟件的正確功能。但是僅憑字面意思理解這一觀點可能會產生誤導,認為發現錯誤是軟件測試的唯一目,查找不出錯誤的測試就是沒有價值的,事實并非如此。
首先,測試并不僅僅是為了要找出錯誤。通過分析錯誤產生的原因和錯誤的分布特征,可以幫助項目管理者發現當前所采用的軟件過程的缺陷,以便改進。同時,這種分析也能幫助我們設計出有針對性地檢測方法,改善測試的有效性。其次,沒有發現錯誤的測試也是有價值的,完整的測試是評定測試質量的一種方法。
軟件測試的組織與管理
隨著軟件開發規模的增大、復雜程度的增加,以尋找軟件中的錯誤為目的的測試工作就顯得更加困難。然而,為了盡可能多地找出程序中的錯誤,生產出高質量的軟件產品,加強對測試工作的組織和管理就顯得尤為重要。
從軟件的生存周期看,測試往往指對程序的測試,這樣做的優點是被測對像明確,測試的可操作性相對較強。但是,由于測試的依據是規格說明書、設計文檔和使用說明書,如果設計有錯誤,測試的質量就難以保證。即使測試后發現是設計的錯誤,這時,修改的代價是相當昂貴的。因此,較理想的做法應該是對軟件的開發過程,按軟件工程各階段形成的結果,分別進行嚴格的審查。
文章來源于領測軟件測試網 http://www.kjueaiud.com/