(承上篇)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開發模式。
形成作不了的主要緣由是代碼的耦合關係造成的內部輸入問題,咱們用底層模擬來解決內部輸入,真正能夠作到「不管別人怎麼樣,我老是對的」。
在覆蓋方面,咱們利用工具不只統計覆蓋率,清晰標示未覆蓋單位,並且,用例設計器能夠幫助咱們快速找出遺漏用例,實現高覆蓋,解決作很差的問題。
---------------------------------------------------------------------------
(全文完。感謝廣大網友的關注和支持!!)