第一章
一、計算機軟件的發展分類
早期軟件開發的特點:
????????軟件規模小、復雜程度低、開發過程不規范
測試的情況:
????????測試等同于調試
????????目的糾正軟件的已經知道的故障
????????投入少,介入晚
????????成為一種發現軟件的活動(1957)
測試不等于調試
調試:在已知條件下,對軟件程序代碼做檢查
測試:在未知錯誤的情況下,檢查程序代碼是否有誤
軟件測試從軟件質量保證的角度檢查代碼是否有問題,調試是為了解決當前錯誤,調試無法代替測試
正向思維針對軟件功能特點,逐個驗證正確性,被稱為第一類方法
認為軟件有問題,使用逆向思維去發現問題
對軟件測試的定義
測試是為了發現錯誤而執行的一個程序或者系統的過程
1980年質量的概念融入軟件測試
測試是為了度量和提高被測試軟件的質量。
軟件測試的概念
軟件測試是對軟件形成過程的文檔,數據以及程序進行測試,而不僅僅是對程序進行的測試
軟件測試的目的
對開發:軟件測試通過找到問題缺陷幫助開發人員找到開發過程中存在的問題,包括軟件開對測試:發模式,工具,技術等方面存在的問題與不足,預防下次缺陷的產生
使用最少的人力物力時間找到軟件的隱藏缺陷,保證軟件質量1,為后面測試積累經驗
對用戶:軟件測試能夠檢驗軟件是否符合客戶需求,對軟件進行質量評估
軟件測試的分類
單元測試
又稱模塊測試,針對軟件設計的最小單位——程序模塊 進行準確性檢驗的測試工作
目的在于檢查每一個程序單元能否滿足詳細設計說明中的模塊,性能,接口和設計約束等要求,發現模塊內部中可能存在的錯誤。單元測試需要從內部結構出發設計測試用例,多個模塊可以平行的獨立進行單元測試
集成測試
也叫組裝測試,通常在單元測試的基礎上,將所有程序模塊進行有序的,遞增的測試。集成測試檢驗程序單元或部件接口的關系,使他們逐步符合概念設計要求的程序部件或整個系統。
系統測試
將測試軟件在實際環境中運行,與其他的系統成分(數據庫,硬件和操作人員)組合在一起進行測試,用于評估整個系統的行為并確保系統符合用戶需求。
驗收測試
主要對軟件產品進行驗證,逐行逐字的按照說明書的描述對軟件產品說明進行測試,確保客戶的各項需求。
按照測試環境
α測試:
是一個用戶在開發環境下進行的測試,也可以是開發機構用戶在模擬實際操作下進行的測試。
β測試:
是在軟件的一個或多個用戶的實際使用環境下進行的測試。
白盒測試
通過對程序內部結構分析、檢測來尋找問題。它將測試對象看成一個透明的盒子,即清楚了解內部結構和處理過程,以此檢查軟件內部動作是否按照設計說明的規定正常進行。
黑盒測試
通過軟件外部表現來發現其缺陷和錯誤。它把測試對象看成一個黑盒子,不考慮內部結構和處理過程。在程序界面處進行測試,它只是檢查程序是否按照規定的說明書正常運行。
灰盒測試
介于黑白之間。灰盒測試關注輸出對于輸入的正確性,同時也關注內部表現,但這種內部關注不像白盒那么完整,通過表象性的現象,事件,標志來測試。
功能測試
邏輯功能測試、界面測試、易用性測試、安裝測試、兼容性測試。
性能測試 --時間&空間
一般性能測試
穩妥性能測試
負載測試:通過測試系統資源超負荷情況下的表現,來驗證一步一步加
壓力測試:直接超負載
了解:
回歸測試
對修改后的重新測試
冒煙測試
先驗證是否具有可測性
隨機測試
基于經驗和直覺測試,模擬用戶真實操作,并發現邊緣性錯誤
測試項目:
需求測試、界面測試、功能性、安全性、可靠性、可維護性、兼容性、壓力測試、疲勞測試
軟件測試的原則
- 所有測試的標準都建立在用戶需求上
- 基于“質量第一”的思想去開展工作,時間要服從質量
- 事先定義質量標準,對產品質量進行分析評估
- 軟件項目啟動,測試就開始
- 窮舉測試不可能,不可能運行路徑的每一個組合
- 第三方測試更有效
- 軟件測試計劃是做好軟件測試工作的前提
- 測試用列是設計出來的,不是寫出來的,需要根據測試目的,采用相應的方法去設計,提高測試效率,更多的發現錯誤,提高可靠性
- 對發現錯誤多的程序段,應該更深入測試,一般來說,一段程序中錯誤數越多,軟件錯誤概率越大
- 重視文檔,妥善保存一些測試過程文檔(測試設計,測試用例,測試報告)
- 回歸測試的關聯性要注意,修改一個錯誤可能會引起過多錯誤
- 小規模->大規模
- 不能將測試用例置之度外,排除隨意性
- 必須徹底檢查每個測試結果
- 注意測試錯誤集中發生的現象
- 對測試結果要有一個確認的過程