一、軟件測試的目的
1)軟件測試是為了發現錯誤而執行程序的過程。
2)測試是為了證明程序有錯,而不是證明程序無錯。(發現錯誤不是唯一目的)
3)一個好的測試用例在於它發現至今未發現的錯誤。
4)一個成功的測試是發現了至今未發現的錯誤的測試。
注意:
1、測試並不僅僅是為了要找出錯誤。通過分析錯誤產生的原因和錯誤的分布特征。可以幫助項目管理者發現當前所采用的軟件過程的缺陷,以便改進。同時,通過分析也能幫助我們設計出有針對性的檢測方法,改善測試的有效性。
2、沒有發現錯誤的測試也是有價值的,完整的測試是評定測試質量的一種方法。詳細而嚴謹的可靠性增長模型可以證明這一點。例如Bev Littlewood發現一個經過測試而正常運行了n個小時的系統有繼續正常運行n個小時的概率。
二、軟件測試的原則
1)應當把“盡早地不斷地進行軟件測試“作為軟件開發者的座右銘。
2)測試用例應由測試數據和與之對應的預期輸出結果這兩部分組成。
3)程序員應避免檢查自己的程序。
4)在設計測試用例時,應當包括合理的輸入條件和不合理的輸入條件。
5)充分注意測試中的群集現象。
6)嚴格執行測試計划,排除測試的隨意性。
7)應當對每一個測試結果做全面的檢查。
8)妥善保存測試計划、測試用例、出錯統計和最終分析報告,為維護提供方便。
三、軟件測試的流程
立項階段-需求階段----設計階段----編碼和單元測試階段----集成測試階段----系統測試階段-----驗收測試階段-----結項總結階段
補充:
根據不同的測試階段,測試可以分為單元測試、集成測試、系統測試和驗收測試。
體現了測試由小到大、又內至外、循序漸進的測試過程和分而治之的思想。
單元測試的粒度最小,一般由開發小組采用白盒方式來測試,主要測試單元是否符合“設計”。
集成測試界於單元測試和系統測試之間,起到“橋梁作用”,一般由開發小組采用白盒加黑盒的方式來測試,既驗證“設計”,又驗證“需求”。
系統測試的粒度最大,一般由獨立測試小組采用黑盒方式來測試,主要測試系統是否符合“需求規格說明書”。
驗收測試與系統測試相似,主要區別是測試人員不同,驗收測試由用戶執行。
黑盒測試不考慮程序內部結構和邏輯結構,主要是用來測試系統的功能是否滿足需求規格說明書。一般會有一個輸入值,一個輸入值,和期望值做比較。
白盒測試主要應用在單元測試階段,主要是對代碼級的測試,針對程序內部邏輯結構,測試手段有:語句覆蓋、判定覆蓋、條件覆蓋、路徑覆蓋、條件組合覆蓋
集成測試主要用來測試模塊與模塊之間的接口,同時還要測試一些主要業務功能。
系統測試是在經過以上各階段測試確認之后,把系統完整地模擬客戶環境來進行的測試。
--------------