1. 程式人生 > >【軟體測試基礎】軟體測試概要

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

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

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

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

 

2.什麼是測試?

IEEE定義(ISO/IEC/IEEE 29119)

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

 

3.軟體測試的測試物件

軟體測試不等同於程式測試,覆蓋面包括軟體需求、軟體概要設計、軟體詳細設計、軟體執行環境、軟體原始碼、可執行程式。

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

 

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

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

兩個目標:提升測試覆蓋率、提升測試效率

 

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

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

缺陷更多的是在軟體研發的前期引起的,而修復缺陷的成本則隨著研發的推移不斷地攀升,越到軟體研發的後期,缺陷修復的成本越高。因此,最經濟的方式是儘可能在研發的前期發現缺陷,並把缺陷修復。