首先談談軟件測試。這可以說是一個非常令人捉摸不定的領域!皯撛鯓訉ξ覀兊漠a品進行測試?”和“怎樣才算對產品進行了足夠的測試?”等問題,對于不同企業的不同類產品、同一企業的不同類產品、或不同企業的同一類產品,實際操作上都會有很大的不同。
SEI的SW-CMM在它的成熟度第三級的“軟件產品工程”關鍵過程域中,把軟件開發周期中不同階段的測試作為實施活動中的關鍵實踐。(在SW-CMM版本2.0 的討論過程中,曾經有過提議,在成熟度第二級設立一個關鍵過程域“軟件測試管理”。但在版本2.0 的討論稿C 中,并沒有這樣做。從這里我們也可以看出,SW-CMM本身也是一個人為地制定的“軟件”。)
一般地,基于開發周期中不同階段對不同對象所進行的測試,可劃分為:
單元測試(unit test ):
由編程的開發人員自行計劃與完成的,針對單個或相關聯的一組程序單元的測試。
組裝測試(inegration test ):
計劃于設計階段,由開發人員與測試人員合作完成的,針對結合起來的不同單元以及它們的接口的測試。
系統測試(system test ):(可認為包括“可用性與圖形用戶界面測試”)
測試整個系統,以證實它滿足要求所規定的功能、質量和性能等方面的特性。
回歸測試(regression test ):
用于驗證改變了的系統或其組件仍然保持應有的特性。
驗收測試(acceptance test ):
測試整個系統,以保證其達到可以交付使用的狀態。
關于上述各階段的測試的具體內容及實現的方法,讀者可參考SW-CMM及有關軟件工程和軟件測試的書籍。千萬不要停留在只參考SW-CMM,因為該文件只講述要做些什么,而沒有介紹怎樣做。同時,所有的資料中談及的內容及方法,都是一般化的。對于一個特定軟件的測試,必須經過使用者對通用的測試方法的改變及改進,才能有效和達到高效率。
下面,談談軟件測試的其他方面的一些問題。
一個被人忽略的軟件測試目的
在談到測試時,許多作者都引用了Grenford J. Myers 就軟件測試目的提出的以下觀點:
1.測試是程序的執行過程,目的在于發現錯誤;
2.一個好的測試用例在于能發現至今未發現的錯誤;
3.一個成功的測試是發現了至今未發現的錯誤的測試。
這是一種比較狹窄的觀點。作為一個清醒的、縱觀全局的軟件開發人員或管理者,我們應當從軟件過程的角度來看測試。
文章來源于領測軟件測試網 http://www.kjueaiud.com/