天天看點

【軟體測試基礎】軟體測試概要

1.曆史上由軟體bug引發的重大事故:

  • 1990年,美國電信公司AT&T因為交換機故障,損失超過7500萬美金。
  • 2000年,日本證券公司由軟體故障引起超過400億日元的損失。(史上最貴bug)
  • 上世紀90年代,千年蟲bug,全球損失超5000億。

是以,軟體品質是非常重要的,而軟體測試作為軟體品質保證重要的組成部分,在軟體研發中有着重要的地位,是不可或缺的一環。

2.什麼是測試?

IEEE定義(ISO/IEC/IEEE 29119)

使用人工或自動的手段來運作或測量軟體系統的過程,以檢驗軟體系統是否滿足規定的要求,并找出與預期結果之間的差異。

3.軟體測試的測試對象

軟體測試不等同于程式測試,覆寫面包括軟體需求、軟體概要設計、軟體詳細設計、軟體運作環境、軟體源代碼、可運作程式。

軟體測試應該覆寫到軟體研發生命周期的方方面面。

4.軟體測試的五大要素和兩個目标

五大要素:品質、人員、資源、流程、技術

兩個目标:提升測試覆寫率、提升測試效率

5.軟體測試所遵循的原則

  • 測試顯示缺陷的存在,但不能證明系統不存在缺陷。
  • 窮盡測試是不可能的,應設定及時終止的條件。
  • 測試應該盡早進行。
  • 缺陷具備群集特性。
  • 測試的殺蟲劑悖論。(在測試中,如果采用同樣的測試用例,同樣的測試方法,多次重複地測試同一個子產品,那麼很容易導緻不能發現新的缺陷,是以測試用例和測試方法需要不定期評審和修改,并且增加不同的測試方法或測試用例來測試軟體的不同部分,進而發現更多的軟體缺陷。)
  • 測試的二八原則。(80%的時間或資源用在20%的重點子產品上,來達到測試效率和資源配置最佳的一個比例。)
  • 測試活動依賴于測試背景。(針對不同的測試背景進行的測試活動應該是不同的,比如說電信級的軟體,對性能、大并發量的通路會有更高的要求,而金融方面,對安全性的要求更高一些。)

缺陷更多的是在軟體研發的前期引起的,而修複缺陷的成本則随着研發的推移不斷地攀升,越到軟體研發的後期,缺陷修複的成本越高。是以,最經濟的方式是盡可能在研發的前期發現缺陷,并把缺陷修複。

繼續閱讀