測試方法
從測試設計方法分類
測試名稱 | 測試內容 |
黑盒測試 | 把軟件系統當作一個黑箱,無法瞭解或使用系統內部結構及知識 |
白盒測試 | 設計者可以看到軟件系統的內部結構,並且使用軟件的內部知識來指導測試數據及方法的選擇 |
灰盒測試 | 介於白盒和黑盒之間 |
總結:在實際工作中,對系統的瞭解越多越好,目前大多數的測試人員都是做黑盒測試,很少做白盒測試。因爲白盒測試對程序員的要求很高,需要有編程能力,例如python程序,你要會python程序
從測試是手動還是自動上分類
測試名稱 | 測試內容 |
手動測試 | 測試員用鼠標去手動測試 |
自動化測試 | 用程序測程序 |
對於項目來說,手動測試和自動化測試同等重要,都是保障軟件質量的方法。目前大多數的項目組都是採用手動加自動化測試相結合。因爲很多測試無法自動化,很多複雜的業務邏輯也很難自動化,所以自動化測試無法替代手動測試。
對於軟件測試個人發展來說,做自動化是一個很好的發展方向,需要測試人員學習大量的開發知識。
手工測試勝在測試業務邏輯,自動化測試勝在測試底層架夠
如果測試的程序可測性好,很有必要做成自動化測試的
1 測試存儲過程 例如用C去測試存儲過程
2 測試web service 例如用soupui工具 或者C java去測試web service
3 界面和業務邏輯分離的系統,比如 mvc 可以用測試腳本去測試這些程序的API
從測試的目的分類
功能測試 非功能測試 性能測試 安全性測試
功能測試:範圍從小到大,從內到外,從程序開發人員到測試人員
測試名稱 | 測試內容 |
單元測試(開發人員做) | 在最低的功能上驗證程序的正確性,比如測試一個函數的正確性 |
功能測試 | 驗證模塊的功能 |
集成測試 | 驗證幾個互相有依賴關係的功能 |
場景測試 | 驗證幾個模塊是否能完成一個用戶場景 |
系統測試 | 對於整個系統功能的測試 |
Alpha測試 | 測試人員在真實的環境中對軟件進行全面的測試 |
Beta | 公測 真實的用戶在真實的用戶環境中進行的測試(用戶做的) |
非功能測試
一個軟件除了基本功能之外,還有很多功能之外的特性。沒有軟件的功能,這些都無從表現出來,因此我們要在軟件開發-基本功能完成後做這些功能
測試名稱 | 測試內容 |
壓力測試 | 驗證軟件在超過負載的情況下能否返回正常結果,沒有崩潰 |
負載測試 | 測試軟件在負載的情況下能否正常工作 |
性能測試 | 測試軟件的效能,是否提供滿意的服務質量 |
Accessibility test | 軟件功能輔助測試-測試軟件是否向殘疾用戶提供足夠的輔助功能 |
Localization/Globalization | 本地化/全球化測試 |
Compatibility Test | 兼容性測試 |
Configuration Test | 配置測試-測試軟件在各種配置下能否正常工作 |
Usability Test | 可用性測試-測試軟件是否好用 |
Security Test | 軟件安全性測試 |
性能測試
性能測試要求測試人員熟練性能測試工具,比如QTP LoadRunner Jmeter
性能測試非常有技術含量,也是軟件測試的一個職業方向
按測試時機和作用分類
在開發軟件的過程中,測試起着“烽火臺”的作用,他告訴我們軟件開發的流程是否暢通
按測試策略分類
測試名稱 | 測試內容 |
迴歸測試 | 對一個新的版本,重新運行以前的測試用例,看看新版本和以前的版本是否有退化 |
探索性測試 | 隨機進行的,探索性測試 |
sanity test | 粗略的測試,只需要執行部分的測試用例 |
迴歸測試
對軟件測試人員來說就是重複測試,所以迴歸測試最好用自動化的,否則測試人員就要一遍一遍地重複測試
1 開發人員做些小改動,就需要測試人員做迴歸測試,確保現有的功能沒有被破壞
2 Bug Fix也要做迴歸測試,確保新的代碼恢復了,也確保現有功能沒有被破壞
3 項目後期,需要做一個完整的迴歸測試,確保所有的功能都是好的
探索性測試
平時要喜歡做隨機測試,拋開測試用例,自己按照自己的思路隨便點點。