白盒測試例項 單元測試的步驟

2021-05-24 02:26:11 字數 2007 閱讀 8795

白盒測試

黑盒測試

的過程和方法是有一些區別的。

單元測試

的步驟:

1、 理解需求和設計

理解設計是很重要的,特別是要搞清楚被測試模組在整個軟體中所處的位置,這對測試的內容將會有很大的影響。需要記住的乙個原則就是:好的設計,各模組只負責完成自己的事情,層次與分工是很明確的。在單元測試的時候,可以不用測試不屬於被測試模組所負責的功能,以減少測試用例的冗餘,整合測試的時候會有機會測試到的。

舉例:1. /*

2.3. * 判斷三條邊是否能夠組成三角形

4.5. * 返回值:true-是; false-否

6.7. */

8.9. bool is********(int a, int b, int c);

測試該函式的時候,只需要測試三條邊(在合法的取值範圍內的整數)是否能夠滿足兩邊之和是否大於第三邊的功能,而不需要測試三條邊是否在合法的範圍 (0, 200)之間的整數,因為呼叫該函式之前,一定要先通過下面函式的檢查,要是檢查不通過,就不會執行is********函式。

1. /*

2.3. * 判斷三條邊是否合法(即:判斷三條邊都在合法的範圍內)

4.5. * 返回值:true-是; false-否

6.7. */

8.9. bool islegal(int a, int b, int c);

所以,單元測試主要是關注本單元的內部邏輯,而不用關注整個業務的邏輯,因為會有別的模組去完成相關的功能。

2、 概覽源**

瀏覽一下源**,主要任務:

(1)初步檢查源**的編碼風格與規範

(2)大致估算測試工作量,比如:需要多少的測試用例、需要寫多少的驅動模組和裝模組等。

(3)確定模組的複雜程度,初步制定測試的優先順序等。

3、 精讀源**

(1)理解**的業務邏輯。

(2)檢查**與設計是否相符,如果詳細設計沒有該模組的流程圖的話,先去畫出流程圖。

(3)仔細研究邏輯複雜的模組

(4)可以採用一些檢查列表來檢查程式可能會出現的問題。如果沒有檢查列表,那麼,可以根據程式的特點,有針對性地檢查容易出問題的地方(記得把經驗總結下來供下次使用)。

4、 設計測試用例

綜合運用白盒測試方法(和結合黑盒測試方法)來設計測試用例,包括功能測試效能測試等,要達到一定的測試覆蓋率。在設計測試用例的過程中,流程圖或控制流圖是分析的好幫手。

5、 搭建單元測試環境

使用xunit或自己寫的框架將有助於單元測試的實施。在這個階段主要就是寫樁模組和驅動模組,第4步所設計的測試用例是通過驅動模組傳遞給被測試模組 的,然後驅動模組想辦法獲取被測試模組對資料的處理結果,並判定返回的實際結果與測試用例的預期結果是否一致,通過測試框架來記錄執行的結果,對於出現的 錯誤,還需要統計錯誤的資訊,供執行完之後分析。

搭建單元測試環境要避免在main函式中使用printf和scanf函式來跟測試人 員互動來達到獲取測試用例資料的資訊。這樣的測試還是沒有擺脫手工測試方式,效率是低下的。同時,對於測試結果是否通過測試也不要使用printf方式打 印被測試函式的返回結果值,避免要人工去檢查結果。

6、 執行測試

執行寫好的驅動模組完成對被測試模組的測試。

7、 補充和完善測試用例

單元測試也是個循序漸進的過程,可能一開始考慮的不夠全面,或預期的覆蓋標準太低,需要在測試過程中不斷補充測試用例,直到滿足要求為止。

8、 分析結果,給出評價

根據測試的結果分析、查詢錯誤的原因,並找到解決的辦法。測試結束之後,根據測試過程的資料統計,給出被測試物件評價。

單元測試例項

from selenium import webdriver import unittest from htmltestrunner import htmltestrunner class mytest unittest.testcase def setup self none 建立操作控制代碼 s...

白盒測試筆記之 Junit 單元測試以及測試覆蓋率

單元測試 單元測試是從 層面驗證 的正確性。一般考慮介面中的資料結構是否正確,變數的臨界條件,如空字串,空集合等。junit入門 參考 junit 入門教程 通過這個案例,應能直觀了解到junit是幹嘛的,並能自己跑乙個例項了。這個案例也說清楚了做單元測試是不是一定要用junit了。junit給我們...

幾種白盒測試的例項

例項 if 條件a 條件b do 事件1 if 條件c 條件d do 事件2 語句覆蓋 程式中的可執行部分全部執行一遍即可,因此測試用例為 a true,b true,c true,d true 分支覆蓋 每個判斷的真假分支都執行過一遍即可,因此測試用例為 1 a true,b true,c tru...