在規定的條件下對程序進行操作,以發現程序錯誤,衡量軟件質量,並對其是否能滿足設計要求進行評估的過程。
測試計划編寫6要素(5W1H):
why——為什么要進行這些測試;
- what—測試哪些方面,不同階段的工作內容;
- when—測試不同階段的起止時間;
- where—相應文檔,缺陷的存放位置,測試環境等;
- who—項目有關人員組成,安排哪些測試人員進行測試;
- how—如何去做,使用哪些測試工具以及測試方法進行測試
軟件測試的目的:
- 測試是程序的執行過程,目的在於發現錯誤
- 一個成功的測試用例在於發現至今未發現的錯誤
- 一個成功的測試是發現了至今未發現的錯誤的測試
- 確保產品完成了它所承諾或公布的功能,並且用戶可以訪問到的功能都有明確的書面說明。
- 確保產品滿足性能和效率的要求
- 確保產品是健壯的和適應用戶環境的
軟件測試的原則:
- 測試用例中一個必須部分是對預期輸出或接過進行定義
- 程序員應避免測試自己編寫的程序
- 編寫軟件的組織不應當測試自己編寫的軟件
- 應當徹底檢查每個測試的執行結果
- 測試用例的編寫不僅應當根據有效和預料到的輸入情況,而且也應當根據無效和未預料到的輸入情況
- 檢擦程序是否“未做其應該做的”僅是測試的一半,測試的另一半是檢查程序是否“做了其不應該做的”
- 應避免測試用例用后即棄,除非軟件本身就是個一次性的軟件
- 計划測試工作時不應默許假定不會發現錯誤
- 程序某部分存在更多錯誤的可能性,與該部分已經發現錯誤的數量成正比
- 軟件測試是一項極富創造性,極具智力的挑戰性的工作
黑盒測試一般用來確認軟件功能的正確性和可操作性,目的是檢測軟件的各個功能是否能得以實現,把被測試的程序當作一個黑盒,不考慮其內部結構,在知道該程序的輸入和輸出之間的關系或程序功能的情況下,依靠軟件規格說明書來確定測試用例和推斷測試結果的正確性。
靜態測試是不運行程序本身而尋找程序代碼中可能存在的錯誤或評估程序代碼的過程。
動態測試是實際運行被測程序,輸入相應的測試實例,檢查運行結果與預期結果的差異,判定執行結果是否符合要求,從而檢驗程序的正確性、可靠性和有效性,並分析系統運行效率和健壯性等性能。
白盒測試根據軟件內部的邏輯結構分析來進行測試,是基於代碼的測試,測試人員通過閱讀程序代碼或者通過使用開發工具中的單步調試來判斷軟件的質量,一般黑盒測試由項目經理在程序員開發中來實現。
α測試是由一個用戶在開發環境下進行的測試,也可以是公司內部的用戶在模擬實際操作環境下進行的受控測試,Alpha測試不能由程序員或測試員完成。
β測試是軟件的多個用戶在一個或多個用戶的實際使用環境下進行的測試。開發者通常不在測試現場,Beta測試不能由程序員或測試員完成。
回歸測試: (regression testing): 回歸測試有兩類:用例回歸和錯誤回歸;用例回歸是過一段時間以后再回頭對以前使用過的用例在重新進行測試,看看會重新發現問題。錯誤回歸,就是在新版本中,對以前版本中出現並修復的缺陷進行再次驗證,並以缺陷為核心,對相關修改的部分進行測試的方法。
