單元測試實踐的主要問題與解決(8)

(承上篇)ide

3.3  如何解決「作很差」工具

    如今來看作很差的問題。作很差的主要緣由,是高標準的測試覆蓋難以實現。測試

    爲何要關注測試覆蓋呢?由於未覆蓋的單位,一般對應未測試的數據分類,也就是說,能夠用覆蓋率來檢查測試的完整性,衡量測試效果。設計

    應該在完成功能測試的基礎上,統計覆蓋率,找出遺漏用例來完成白盒覆蓋,而不是功能測試作一遍,白盒覆蓋又作一遍。開發

    下面,我用一個案例來演示講解覆蓋。it

    首先是覆蓋率統計,工具能夠支持六種覆蓋:語句、條件、分支、C/DC(斷定條件覆蓋)、路徑覆蓋、MC/DC(修正斷定條件覆蓋)。

   

    哪些單位沒覆蓋呢?這個紅色且帶淡紅色背景的,是未覆蓋語句;這個T是未覆蓋的條件真值;這個F是未覆蓋的條件假值;這個M是未覆蓋的MC/DC。自動化

   

    淡紅色背景的分支是未覆蓋分支,淡綠色背景的是已覆蓋分支。路徑是從入口到出口的路線,這條用綠色畫出的是已覆蓋的路徑。class

   

    這條用紅色畫出的是未覆蓋路徑。基礎

   

    如何完成覆蓋呢?點擊未覆蓋的單位,好比這個T,右鍵菜單選擇「用例設計」。可視化

   

    工具會自動計算出一個近似用例,所謂近似用例,就是通過最小修改就能夠覆蓋選中單位的用例。

    如何修改呢?工具提供了修改提示,按這個藍色粗體的提示修改就能夠了。這裏的提示是A >1,把它改成大於1的數,如2。在實際工做中,輸出也要根據功能進行修改,這裏忽略。

   

    執行測試後,能夠看到剛纔那個T已經覆蓋了。點擊F,打開用例設計器。

   

    這裏的提示是B不等於0,把B改成不等於0,好比1。

   

    如今來覆蓋這個T。

   

    把X改成大於1的數,如2。

   

    如今,代碼這邊已經完成所有覆蓋了,看一下覆蓋率,還有一條路徑未覆蓋。

   

    在這裏選擇未覆蓋的路徑,打開用列設計器。

   

     提示是:A不等於2,X小於等於1,X原本就小於1,不用改它,把A改成不等於2的數就好了,如3。

   

    如今,完成了所有覆蓋。

   


總結

    咱們用可視化來解決「不肯作」,用自動化來解決「沒時間」,這二者結合起來,就是ETDD開發模式。

    形成作不了的主要緣由是代碼的耦合關係造成的內部輸入問題,咱們用底層模擬來解決內部輸入,真正能夠作到「不管別人怎麼樣,我老是對的」。

    在覆蓋方面,咱們利用工具不只統計覆蓋率,清晰標示未覆蓋單位,並且,用例設計器能夠幫助咱們快速找出遺漏用例,實現高覆蓋,解決作很差的問題。

   


---------------------------------------------------------------------------

(全文完。感謝廣大網友的關注和支持!!)

相關文章
相關標籤/搜索