4.2 多角度保證測試效果
對於代碼品質要求很高的項目來說,僅有白盒覆蓋是遠遠不夠的。白盒覆蓋不能發現代碼缺失,白盒覆蓋基於現有代碼,如果代碼不存在,當然不能發現。為了檢測代碼缺失,需要人工對測試資料進行檢查。白盒覆蓋也不能發現用例未反映功能。如果設計用例時,測試員不瞭解代碼的功能,通過閱讀代碼來設計用例,這叫跟著代碼走,這樣測試的話,再高的覆蓋率也沒有意義。這也從另一個角度說明了自動用例的局限性,完全由工具自動產生的用例,效果顯然還比不上跟著代碼走。
開發當中還有一個特點,也是我們要注意的,就是程式員和測試員都容易遺漏邊界和非法輸入。程式員未考慮某些輸入,就會造成代碼缺失,白盒覆蓋不能發現,如果測試員也漏掉,這種錯誤就發現不了。不過幸運的是,邊界和非法輸入容易產生的是極端錯誤,如崩潰、逾時,自動產生的邊界測試案例正好可以捕捉這類錯誤。
通過前面的分析,我們可以知道應該從哪些角度保證測試效果。黑盒、白盒、自動應該相結合。
黑盒角度,應該將測試資料分類集中起來,這樣便於人工檢查。如,每個參數或者其他輸入取了什麼值,哪些組合已經覆蓋,都會自動集中起來,這樣人工檢查就很方便了。
白盒方面,應該統計覆蓋率,並且找出遺漏用例實現高覆蓋。這在前文已經講過了,這裡不再重複。
自動方面,由工具自動產生用例來捕捉邊界和非法輸入產生的極端錯誤。根據預設值自動產生用例是簡單技術,預設值一般是可以修改的,如。不要指望主要依靠自動產生的用例來完成測試,自動用例的合理用途是作為人工用例的補充,檢測極端錯誤。
結束語
本文根據《單元測試與VU2.6應用》視頻講座的理論部分整理而成,介紹的是單元測試理論的摘要部分。本文也是《C/C++單元測試實用教程》(暫訂名)理論部分的濃縮版,該書約29章,將於近期完稿,目前正在與出版社討論出版事宜。
PPT和視頻可在以下地址下載:
PPT下載:http://download.csdn.net/source/2246006
視頻part1: http://download.csdn.net/source/2246273
視頻part2: http://download.csdn.net/source/2246345
視頻part3: http://download.csdn.net/source/2246364