軟體測試的方法

測試人生路發表於2020-12-24

一、軟體測試的目的

發現缺陷

儘早和儘量多的發現被測物件中的缺陷,應該是測試人員測試過程中最常提起的一個測試目標,也是所謂測試價值的一個的重要體現。發現缺陷的目的是推動開發人員定位和修復問題,測試人員通過再測試和迴歸測試,確保開發人員已修復缺陷,並沒有影響原來正常的區域,從而提高產品質量。開發生命週期的每個階段,都應該有測試的參與,並儘量多的發現本階段的缺陷,從而大大提高本階段的缺陷階段遏制能力,從而提高測試效率、降低成本和提高質量。

二、軟體測試的兩大分類

1、白盒測試

白盒測試是把測試物件看作一個開啟的盒子。利用白盒測試法進行動態測試時,需要測試軟體產品的內部結構和處理過程,不需測試軟體產品的功能。

白盒測試法的覆蓋標準有邏輯覆蓋、迴圈覆蓋和基本路勁測試。其中邏輯覆蓋包括語句覆蓋、判斷覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋和路徑覆蓋。

白盒測試是知道產品內部工作過程,可通過測試來檢測產品內部動作是否按照規格說明書的規定正常進行,按照程式內部的結構測試程式,檢驗程式中的每條通路是否都有能按預定要求正確工作,而不顧它的功能,白盒測試的主要方法有邏輯驅動、基路測試等,主要用於軟體驗證。

2、黑盒測試

黑盒測試是根據軟體的規格對軟體進行的測試,這類測試不考慮軟體內部的運作原理,因此軟體對使用者來說就像一個黑盒子。

測試人員以使用者的角度,通過各種輸入和觀察軟體的各種輸出結果來發現軟體存在的缺陷,而不關心程式具體如何實現的一種軟體測試方法。

三、白盒測試具體分類

(1)單元測試(unit testing),是指對軟體中的最小可測試單元進行檢查和驗證。
樁模組(stud)是指模擬被測模組所呼叫的模組,驅動模組(driver)是指模擬被測模組的上級模組,驅動模組用來接收測試資料,啟動被測模組並輸出結果。

(2)整合測試(integration testing),是單元測試的下一階段,是指將通過測試的單元模組組裝成系統或子系統,再進行測試,重點測試不同模組的介面部門。
整合測試就是用來檢查各個單元模組結合到一起能否協同配合,正常執行。

(3)系統測試(system testing),指的是將整個軟體系統看做一個整體進行測試,包括對功能、效能,以及軟體所執行的軟硬體環境進行測試。
系統測試的主要依據是《系統需求規格說明書》文件。

(4)驗收測試(acceptance testing),指的是在系統測試的後期,以使用者測試為主,或有測試人員等質量保障人員共同參與的測試,它也是軟體正式交給使用者使用的最後一道工序。

驗收測試又分為a測試和beta測試,其中a測試指的是由使用者、 測試人員、開發人員等共同參與的內部測試,而beta測試指的是內測後的公測,即完全交給終端使用者測試。

四、黑盒測試具體分類

1)功能測試(function testing),是黑盒測試的一方面,它檢查實際軟體的功能是否符合使用者的需求。

包括邏輯功能測試(logic function testing)

介面測試(UI testing)UI=User Interface

易用性測試(usability testing):是指從軟體使用的合理性和方便性等角度對軟體系統進行檢查,來發現軟體中不方便使用者使用的地方。

相容性測試(compatibility testing):包括硬體相容性測試和軟體相容性測試

2)效能測試(performance testing)

軟體的效能主要有時間效能和空間效能兩種

時間效能:主要指軟體的一個具體事務的響應時間(respond time)。

空間效能:主要指軟體執行時所消耗的系統資源。

軟體效能測試分為:

一般效能測試:指的是讓被測系統在正常的軟硬體環境下執行,不向其施加任何壓力的效能測試。

穩定性測試也叫可靠性測試(reliability testing):是指連續執行被測系統檢查系統執行時的穩定程度。

負載測試(load testing):是指讓被測系統在其能忍受的壓力的極限範圍之內連續執行,來測試系統的穩定性。

壓力測試(stress testing):是指持續不斷的給被測系統增加壓力,直到將被測系統壓垮為止,用來測試系統所能承受的最大壓力。(Validate the system or software can allowed the biggest stress.)

3)介面測試(Interface Testing)

介面測試是測試系統元件間介面的一種測試。介面測試主要用於檢測外部系統與系統之間以及內部各個子系統之間的互動點。測試的重點是要檢查資料的交換,傳遞和控制管理過程,以及系統間的相互邏輯依賴關係等。

推薦一款介面測試和介面文件生產工具:apipost

五、其他測試型別

迴歸測試(regression testing)是指對軟體的新的版本測試時,重複執行上一個版本測試時的用例。(When a new build or release is deployed, repeat all the test cases which has executed in the last build or release.)

冒煙測試(smoke testing),是指在對一個新版本進行大規模的測試之前,先驗證一下軟體的基本功能是否實現,是否具備可測性。(validate the major function is deployed or not in software of system when a new build or release is implement.)

隨機測試(random testing),是指測試中所有的輸入資料都是隨機生成的,其目的是模擬使用者的真實操作,並發現一些邊緣性的錯誤。(means or all the test data is random, to validate the some edge bugs.)

相關文章