2. 白盒測試
白盒測試是指在測試時能夠了解被測對象的結構,可以查閱被測代碼內容的測試工作。它需要知道程序內部的設計結構及具體的代碼實現,并以此為基礎來設計測試用例。如下例程序代碼:
HRESULT Play( char* pszFileName )
{
if ( NULL == pszFileName )
return;
if ( STATE_OPENED == currentState )
{
PlayTheFile();
}
return;
}
讀了代碼之后可以知道,先要檢查一個字符串是否為空,然后再根據播放器當前的狀態來執行相應的動作?梢赃@樣設計一些測試用例:比如字符串(文件)為空的話會出現什么情況;如果此時播放器的狀態是文件剛打開,會是什么情況;如果文件已經在播放,再調用這個函數會是什么情況。也就是說,根據播放器內部狀態的不同,可以設計很多不同的測試用例。這些是在純粹做黑盒測試時不一定能做到的事情。
白盒測試的直接好處就是知道所設計的測試用例在代碼級上哪些地方被忽略掉,它的優點是幫助軟件測試人員增大代碼的覆蓋率,提高代碼的質量,發現代碼中隱藏的問題。
白盒測試的缺點有:
1)程序運行會有很多不同的路徑,不可能測試所有的運行路徑;
2)測試基于代碼,只能測試開發人員做的對不對,而不能知道設計的正確與否,可能會漏掉一些功能需求;
3)系統龐大時,測試開銷會非常大。
3. 基于風險的測試
基于風險的測試是指評估測試的優先級,先做高優先級的測試,如果時間或精力不夠,低優先級的測試可以暫時先不做。有如下一個圖,橫軸代表影響,豎軸代表概率,根據一個軟件的特點來確定:如果一個功能出了問題,它對整個產品的影響有多大,這個功能出問題的概率有多大?如果出問題的概率很大,出了問題對整個產品的影響也很大,那么在測試時就一定要覆蓋到。對于一個用戶很少用到的功能,出問題的概率很小,就算出了問題的影響也不是很大,那么如果時間比較緊的話,就可以考慮不測試。
基于風險測試的兩個決定因素就是:該功能出問題對用戶的影響有多大,出問題的概率有多大。其它一些影響因素還有復雜性、可用性、依賴性、可修改性等。測試人員主要根據事情的輕重緩急來決定測試工作的重點。
文章來源于領測軟件測試網 http://www.kjueaiud.com/