天天看點

軟體測試技術_1part01 緒論

part01 緒論

1 什麼是軟體測試

軟體=程式+文檔,軟體測試!=程式測試。

軟體測試以是否滿足需求為目标。

定義:使用人工或自動手段,來運作或測試某個系統的過程。其目的在于檢驗它是否滿足規定的需求或弄清預期結果與實際結果之間的差别。

Bug:缺陷、失效、錯誤

程式員犯了一個錯誤(mistake)

=》錯誤在軟體中表現為缺陷(fault)

=》運作帶有缺陷的軟體對會出現故障(error)

=》運作有缺陷的軟體能觀察到失效(fail)

(啥狗屁玩意兒)

2 軟體測試與軟體品質保證(SQA)

軟體品質保證(Software Quality Assurance,SQA)活動是通過對軟體産品有計劃的進行評審和審計來驗證軟體是否合乎标準的系統工程,通過協調、審查和跟蹤以擷取有用資訊,形成分析結果以指導軟體過程。

兩者之間的幹系

理論上,測試作為軟體生命周期的一部分,其過程也受到SQA監督;

實際上,許多名義上的SQA做着測試的工作,許多測試人員做着部分SQA的工作。

充分的測試不能保障軟體産品品質,軟體測試是軟體産品高品質的必要非充分條件。

品質評估模型

産品品質:McCall 模型, Boehm 模型, ISO 9126 模型

過程品質: 軟體能力成熟度模型 CMM ( Capability Maturity Model),國際标準過程模型 ISO 9000,軟體過程改進和能力決斷 SPICE ( Software Process Improvement and Capability Etermination)

3 軟體測試的基本原則

軟體測試工程的目标:盡可能早地找出軟體缺陷,確定其得以修複。

  1. Zero bug 與Good Enough
  2. 不可能執行窮盡測試
  3. 測試應該盡早啟動,盡早介入
  4. 軟體測試應該追溯需求
  5. 缺陷存在群集現象
  6. 缺陷具有免疫性(殺蟲劑悖論)
  7. 不存在缺陷的理論、測試無法顯示潛伏的軟體缺陷

4 軟體測試的分類

從方法角度看:黑盒測試、白盒測試;靜态測試、動态測試

• 黑盒測試可能是動态的(運作程式,隻看輸入和輸出),也可能是靜态的(不運作程式,隻檢視界面)

• 白盒測試可能是動态的(運作程式,分析代碼結構),也可能是靜态的(不運作程式,靜态檢視代碼)

從目标角度看:功能測試、強壯性測試、性能測試、适用性測試、安全性測試、可靠性測試

從階段角度看:單元測試、內建測試、系統測試、驗收測試

  • 單元測試《詳細設計》:一般和編碼同步進行,主要采用白盒測試方法,設計測試用例(語句覆寫率達到100%,分支覆寫率達到85%),通常要編寫驅動子產品和樁子產品。
  • 內建測試《概要設計》:主要目标是發現與接口有關的子產品之間問題,兩種內建方式:一次性內建方式和漸增式內建方式。
  • 系統測試《系統需求規格說明書》:主要由黑盒測試工程師進行,前期主測系統功能是否滿足需求,後期主測系統運作性能是否滿足需求,以及系統在不同的軟硬體環境中的相容性。
  • 驗收測試:驗收測試的目的是向未來的使用者表明系統能夠像預定要求那樣工作,驗證軟體的功能和性能如同使用者所合理期待的那樣。
    軟體測試技術_1part01 緒論
  • 回歸測試:軟體進行版本疊代時,重新執行上個版本的測試用例,可以在任何階段進行。
  • 冒煙測試:對西南本進行系統大規模的測試之前,先驗證一下軟體的基本功能是否實作。
  • 随機測試:所有的測試資料都是随機生成的。

5 軟體測試的過程模型

V模型

需求分析= =》驗收測試

規格說明= =》系統測試

概要設計= =》內建測試

詳細設計= =》單元測試

軟體測試技術_1part01 緒論

局限性:測試是設計及編碼之後的一個階段,需求分析階段隐藏的問題一直到後期的驗收測試才被發現。

W模型

軟體測試技術_1part01 緒論

局限性:與V模型一樣,軟體開發和測試之間保持一種線性的前後關系,需要嚴格的品質,無法支援疊代、自發性以及變更調整。對于很多文檔事後補充、或者根本沒有文檔的做法下,令人困惑。

H模型

軟體測試是一個獨立地流程,貫穿于整個生命周期,隻要條件按成熟了就可以進行測試。

軟體測試技術_1part01 緒論

X模型

在自底向上的開發中,對于單獨的程式片段要盡心分離的編碼和測試,随後将代碼單元組合內建,在內建的過程中啟動探索性測試(未計劃的特殊測試),最後将成品傳遞。

軟體測試技術_1part01 緒論