}
return;
}
讀了代碼之后可以知道,先要檢查一個字符串是否為空,然后再根據播放器當前的狀態來執行相應的動作?梢赃@樣設計一些測試用例:比如字符串(文件)為空的話會出現什么情況;如果此時播放器的狀態是文件剛打開,會是什么情況;如果文件已經在播放,再調用這個函數會是什么情況。也就是說,根據播放器內部狀態的不同,可以設計很多不同的測試用例。這些是在純粹做黑盒測試時不一定能做到的事情。
白盒測試的直接好處就是知道所設計的測試用例在代碼級上哪些地方被忽略掉,它的優點是幫助軟件測試人員增大代碼的覆蓋率,提高代碼的質量,發現代碼中隱藏的問題。
白盒測試的缺點有:
1)程序運行會有很多不同的路徑,不可能測試所有的運行路徑;
2)測試基于代碼,只能測試開發人員做的對不對,而不能知道設計的正確與否,可能會漏掉一些功能需求;
3)系統龐大時,測試開銷會非常大。
3.基于風險的測試
基于風險的測試是指評估測試的優先級,先做高優先級的測試,如果時間或精力不夠,低優先級的測試可以暫時先不做。有如下一個圖,橫軸代表影響,豎軸代表概率,根據一個軟件的特點來確定:如果一個功能出了問題,它對整個產品的影響有多大,這個功能出問題的概率有多大?如果出問題的概率很大,出了問題對整個產品的影響也很大,那么在測試時就一定要覆蓋到。對于一個用戶很少用到的功能,出問題的概率很小,就算出了問題的影響也不是很大,那么如果時間比較緊的話,就可以考慮不測試。
基于風險測試的兩個決定因素就是:該功能出問題對用戶的影響有多大,出問題的概率有多大。其它一些影響因素還有復雜性、可用性、依賴性、可修改性等。測試人員主要根據事情的輕重緩急來決定測試工作的重點。
4.基于模型的測試
模型實際上就是用語言把一個系統的行為描述出來,定義出它可能的各種狀態,以及它們之間的轉換關系,即狀態轉換圖。模型是系統的抽象;谀P偷臏y試是利用模型來生成相應的測試用例,然后根據實際結果和原先預想的結果的差異來測試系統,過程如下圖所示。
三、軟件測試的類型
常見的軟件測試類型有:
BVT (Build Verification Test)
BVT是在所有開發工程師都已經檢入自己的代碼,項目組編譯生成當天的版本之后進行,主要目的是驗證最新生成的軟件版本在功能上是否完整,主要的軟件特性是否正確。如無大的問題,就可以進行相應的功能測試。BVT優點是時間短,驗證了軟件的基本功能。缺點是該種測試的覆蓋率很低。因為運行時間短,不可能把所有的情況都測試到。
Scenario Tests(基于用戶實際應用場景的測試)
在做BVT、功能測試的時候,可能測試主要集中在某個模塊,或比較分離的功能上。當用戶來使用這個應用程序的時候,各個模塊是作為一個整體來使用的,那么在做測試的時候,就需要模仿用戶這樣一個真實的使用環境,即用戶會有哪些用法,會用這個應用程序做哪些事情,操作會是一個怎樣的流程。加了這些測試用例后,再與BVT、功能測試配合,就能使軟件整體都能符合用戶使用的要求。Scenario Tests優點是關注了用戶的需求,缺點是有時候難以真正模仿用戶真實的使用情況。
Smoke Test
在測試中發現問題,找到了一個Bug,然后開發人員會來修復這個Bug。這時想知道這次修復是否真的解決了程序的Bug,或者是否會對其它模塊造成影響,就需要針對此問題進行專門測試,這個過程就被稱為Smoke Test。在很多情況下,做Smoke Test是開發人員在試圖解決一個問題的時候,造成了其它功能模塊一系列的連鎖反應,原因可能是只集中考慮了一開始的那個問題,而忽略其它的問題,這就可能引起了新的Bug。Smoke Test優點是節省測試時間,防止build失敗。缺點是覆蓋率還是比較低。
此外,Application Compatibility Test(兼容性測試),主要目的是為了兼容第三方軟件,確保第三方軟件能正常運行,用戶不受影響。Accessibility Test(軟件適用性測試),是確保軟件對于某些有殘疾的人士也能正常的使用,但優先級比較低。其它的測試還有Functional Test(功能測試)、Security Test(安全性測試)、Stress Test(壓力測試)、Performance Test(性能測試)、Regression Test(回歸測試)、Setup/Upgrade Test(安裝升級測試)等。
文章來源于領測軟件測試網 http://www.kjueaiud.com/