天天看點

【軟體測試基礎】軟體測試階段

1.軟體測試的分類

按測試階段分類:單元測試、內建測試、系統測試、驗收測試

2.單元測試

  • 定義:對軟體中的最小可測試單元進行檢查和驗證。
  • 單元:人為規定的可測試的最小子產品。比如C語言中,可看作各個函數;Java這種面向對象語言中,可看做每一個類;針對有界面的功能軟體,單元可看做具體的功能項,比如菜單項,一個子視窗的具體的功能。

單元測試的原則:

  • 盡可能保證各個測試用例是互相獨立的。
  • 一般由代碼的開發人員來實施,用以檢驗所開發的代碼功能符合自己的設計要求。

單元測試的益處:

  • 能盡早發現缺陷。單元測試處于前期,可以發現更多的缺陷。
  • 有利于重構。有了完善的單元測試,可以在重構時,就可以快速地識别出重構時出現問題的點。
  • 簡化內建。隻有充分的單元測試,內建測試才能更加聚焦在子產品之間的關系上,而不用再花精力到單元内部的邏輯上。
  • 減少文檔。現在的靈活研發,提倡代碼級文檔,即盡可能地減少文檔。如果單元測試比較規範,通過對單元測試代碼的閱讀,就可以基本地了解子產品的特性。很大程度上可以減少文檔的工作。
  • 用于設計。通過編寫單元測試,是可以把設計思路展現在單元測試的組織上。設計的本身可以用來驗證設計。

注:

TDD:測試驅動開發,先編寫單元測試,再編寫功能的代碼,并保證這些代碼能使單元測試通過。

單元測試的限制:

  • 不可能覆寫所有的執行路徑,是以不可能保證捕捉到所有路徑的錯誤。
  • 每一行代碼,一般需要3~5行測試代碼才能完成單元測試。是以存在投入和産出的一個平衡。

單元測試架構:

  • Xunit
  • JUnit: 針對java
  • nunit:針對.net
  • PHPUnit:針對PHP
  • CppUnit:針對C++

3.內建測試:

定義:是在單元測試的基礎上,測試在将所有的軟體單元按照概要設計規格說明的要求組裝成子產品、子系統或系統的過程中各部分工作是否達到或實作相應技術名額及要求的活動。

內建測試的主要實施方案:

  • Big Bang:一次性內建,把大部分的開發子產品都耦合起來,形成一個完整的軟體系統或系統的主要的組成部分,然後再來做內建測試。
  • 自頂向下:從主程式開始,沿控制層逐層向下地測試,以覆寫到所有的子產品。
  • 自底向上:從程式子產品的最底層的子產品開始,逐層地向上組裝,逐層地測試。針對已經內建的或已經組裝過的,可以不需要對上一層組裝子產品。它是最常用的內建方法。
  • 核心系統內建:先把核心的軟體部分挑選出來,并對這些部件進行內建測試。在測試通過的基礎上,再逐漸地擴充到外圍的部件,直到最後形成穩定的軟體産品。
  • 高頻內建:高頻次地、不斷地進行內建。

核心系統內建和高頻內建是很常用的內建方式,自頂向下和自底向上在傳統的瀑布軟體研發模型中比較常用。

內建測試&單元測試的差別:

  • 測試的對象不同:單元測試針對的是最小的單元,內建測試則是以子產品和子系統為單元,它主要測試的是子產品和子產品之間的關系。
  • 測試的依據不同:單元測試主要針對的是軟體的詳細設計,內建測試則主要針對軟體的概要設計來測試的。
  • 測試的方法不同:內建測試關注的是接口之間的內建,單元測試隻關心單元的内部。

4.系統測試:

定義:是将經過內建測試的軟體,作為計算機系統的一個部分,與系統中其他部分結合起來,在實際運作環境下對計算機系統進行的一系列嚴格有效地測試,以發現軟體潛在的問題,保證系統的正常運作。

系統測試的關注點:

  • 關注系統本身的使用
  • 關注系統與其他系統間的連通
  • 關注系統在不同使用壓力下的表現
  • 關注系統在真實使用環境下的表現

系統測試&內建測試的不同:

測試對象:

  • 內建測試:由通過了單元測試的各個子產品所內建起來的構件
  • 系統測試:除了軟體以外,還包括計算機硬體及相關的外圍裝置、資料采集和傳輸機構、支援軟體、系統操作人員等整個系統。

測試時間:

  • 內建測試介于單元測試和系統測試之間測試
  • 系統測試是在內建測試之後

測試内容:

  • 內建測試: 各個單元子產品之間的接口
  • 系統測試:整個系統的功能和性能

測試角度:

  • 內建測試:偏于技術角度的驗證
  • 系統測試:偏于業務角度的驗證

5.驗收測試:

定義:也稱傳遞測試。針對使用者需求、業務流程的正式的測試,确定系統是否滿足驗收标準,由使用者、客戶或其他授權機構決定是否接受系統。

細分:

  • 使用者驗收測試
  • 運作驗收測試
  • 合同和規範驗收測試
  • alpha測試:開發者所提供的的環境中,由使用者完成。
  • Beta測試:完全脫離了開發者環境,在使用者環境下測試。

轉載自:https://www.cnblogs.com/sophia194910/p/6424960.html

繼續閱讀