【轉摘】軟件測試方法大彙總

軟件測試方法種類繁多,記憶起來混亂, 若是把軟件測試方法進行分類, 就會清晰不少。 我參考一些書籍和網上的資料, 把經常使用的軟件測試方法列出來, 讓你們對軟件測試行業有個整體的見解。編程

從測試設計方法分類

測試名稱安全

測試內容架構

Black box黑盒測試函數

把軟件系統看成一個「黑箱」,沒法瞭解或使用系統的內部結構及知識。從軟件的行爲,而不是內部結構出發來設計測試.工具

White box白盒測試性能

設計者能夠看到軟件系統的內部結構,而且使用軟件的內部知識來指導測試數據及方法的選擇。單元測試

Gray box. 灰盒測試學習

介於黑盒和白盒之間測試

總結: 實際工做中,對系統的瞭解越多越好。目前大多數的測試人員都是作黑盒測試,不多有作白盒測試的。 由於白盒測試對軟件測試人員的要求很是高,須要有不少編程經驗。作.NET程序的白盒測試你要能看得懂.NET代碼。作JAVA程序的測試,須要你能看懂JAVA的代碼。 若是你都能看懂了,你還會作測試麼ui

從測試是手動仍是自動上分類

測試名稱

測試內容

Manual Test 手動測試

測試人員用鼠標去手動測試 (測試GUI)

Automation 自動化測試

用程序測試程序 (測試API)

對於項目來講, 手動測試和自動化測試同等重要,都是保障軟件質量的方法。 目前大部分的項目組都是手動測試和自動化測試相結合。由於不少測試沒法作成自動化,不少複雜的業務邏輯也很難自動化, 因此自動化測試沒法取代手動測試。

對於軟件測試人員我的發展來講, 作自動化測試是個挑戰,也是測試人員發展的一個方向, 須要測試人員學習大量的開發知識(開發的知識真是學無止境啊)。 從長遠角度來看,自動化測試確定是愈來愈吃香的。

而手動測試比較適合剛工做不久的人。

總的來講,手工測試勝在測試業務邏輯,而自動化測試勝在測試底層架構。

若是被測試的程序可測試性比較好, 頗有必要作成自動化測試。 能作自動化的儘可能作成自動化, 下面這些情形是能夠作自動化的

1. 測試存儲過程。 例如用C#去測試存儲過程

2. 測試Web servies. 例如: 用SoupUI工具,或者C#,Java 去測試Web servies。

3. 界面和業務邏輯分離的系統,好比,MVC,MVP架構, 或者WPF 程序。 能夠用測試腳本去測試這些程序的API。

從測試的目的分類

功能測試

測試的範圍從小到大,從內到外, 從程序開發人員(單元測試)到測試人員,到通常用戶Alpha/Beta測試

測試名稱

測試內容

Unit Test 單元測試

在最低的功能/參數上驗證程序的準確性,好比測試一個函數的正確性(開發人員作的)

Functional Test 功能測試

驗證模塊的功能 (測試人員作的)

Integration Test 集成測試

驗證幾個互相有依賴關係的模塊的功能 (測試人員作的)

Scenario Test 場景測試

驗證幾個模塊是否能完成一個用戶場景 (測試人員作的)

System Test 系統測試

對於整個系統功能的測試 (測試人員作的)

Alpha 測試

軟件測試人員在真實用戶環境中對軟件進行全面的測試 (測試人員作的)

Beta 測試

真實的用戶在真實的用戶環境中進行的測試, 也叫公測 (最終用戶作的)

非功能測試

一個軟件除了基本功能以外,還有不少功能以外的特性,這些叫「Quality of Service requirement」服務質量需求。沒有軟件的功能,這些特性都無從表現出來,所以,咱們要在軟件開發的適當階段-基本功能完成後作這些測試。

測試名稱

測試內容

Stress test 壓力測試

驗證軟件在超過負載設計的狀況下仍能返回正確的結果,沒有崩潰

Load test 負載測試

測試軟件在負載狀況下可否正常工做

Performance test性能測試

測試軟件的效能,是否提供滿意的服務質量

Accessibility test

軟件輔助功能測試-測試軟件是否向殘疾用戶提供足夠的輔助功能

Localization/Globalization

本地化/全球化測試

Compatibility Test

兼容性測試

Configuration Test

配置測試-測試軟件在各類配置下可否正常工做

Usability Test

可用性測試 –測試軟件是否好用

Security Test

軟件安全性測試

性能測試

性能測試要求測試人員熟練性能測試工具,好比QTP, LoadRunner, Jmeter。 Visual Studio也提供了不少性能測試的工具. 要求測試人員對低層協議很是理解和編寫腳本

性能測試很是有技術含量, 頗有發展前途, 是軟件測試人員的一個職業發展方向。

安全性測試

安全性測試的內容很廣, 很是有難度啊。 我只接觸過XSS(跨站腳本攻擊)和SQL注入攻擊。

安全性測試很是有技術含量, 我認爲也是軟件測試人員的一個職業發展方向

按測試的時機和做用分類

在開發軟件的過程當中,很多測試起着「烽火臺」的做用,它們告訴咱們軟件開發的流程是否暢通。

測試名稱

測試內容

Smoke Test

「冒煙」–若是測試不經過,則不能進行下一步工做

Build Verification Test(BVT)

驗證構建是否經過基本測試。

Acceptance Test

驗收測試,爲了全面考覈某功能/特性而作的測試

BVT測試是一種Smoke Test, 指Build生成好以後,自動運行的自動化測試腳原本檢查這個Build的基本功能。 若是BVT測試失敗了,須要開發人員立刻修改,從新生成Build

按測試測策略分類。

測試名稱

測試內容

Regression Test 迴歸測試

對一個新的版本,從新運行以往的測試用例,看看新版本和已知的版本相比是否有退化 (regression)

Ad hoc Test 探索性測試

隨機進行的,探索性的測試。

Santiy Test

粗略的測試, 只須要執行部分的測試用例

Regression Test 迴歸測試:  

對軟件測試人員來講就是重複測試,因此迴歸測試最好是自動化的, 不然測試人員就要一遍又一遍地重複測試, 

1. 開發人員作些小改動,就須要測試人員作迴歸測試。確保現有的功能沒有被破壞

2. Bug Fix 也須要回歸測試,確保新的代碼修復了Fix, 也確保現有的功能沒有被破壞

3. 項目後期,須要作一個完整迴歸測試, 確保全部的功能都是好的

Ad hoc Test 探索性測試:

日常我最喜歡作隨機測試了, 拋開test case. 本身按照本身的思路,隨便點點。 若是測試GUI,Ad hoc能發現大量的bug.

相關文章
相關標籤/搜索