最近使用JTest,總結一下經驗,和大家交流
我認為JTest生成的Case過于簡單,它自己做的那個例子看起來很美,但是卻沒有太多的實用價值,原因是實際的情形都會比它那個例子復雜得多。 1.JTest生成的 自動測試 Case都是嘗試各種不同的參數,如null,0,""之類的特殊值,但是實際上往往某個方法本來就不
我認為JTest生成的Case過于簡單,它自己做的那個例子看起來很美,但是卻沒有太多的實用價值,原因是實際的情形都會比它那個例子復雜得多。
1. JTest生成的
自動測試Case都是嘗試各種不同的參數,如null,0,""之類的特殊值,但是實際上往往某個方法本來就不應該輸入這些值。至于一個方法是不是需要處理所有的異常情況,這個是一個需要討論的問題。
2. 有些對象的構造方法比較特別,而JTest生成的Case只是簡單地用null或者""之類的值作為構造函數的參數,這樣的對象往往根本就是處在一個不正常的狀態,后面的
測試失敗了也很正常,在
Jtest中經常會加入一些不可能或者沒有價值的參數,這在程序中是永遠不可能出現的。
3. 例子中有一個對于int add(int, int)函數的測試,這個例子恰恰說明了所謂自動生成測試case的局限性。它通過在注釋中加入標記來決定生成的測試case,但是現實中的大部分方法都不會只是兩個數相加而已。如果要表達復雜的邏輯,勢必要在注釋中加入更多的控制,這樣的話,和直接寫測試代碼相比,就沒有任何優勢可言了,Jtest很難檢查出程序的邏輯錯誤,這需要自己檢查。
4. 對于復雜一點的方法,JTest生成的Case往往不夠用,一般只生成一兩個case,至少要生成幾十個才有用,這顯然不可能測出問題。需要自己修改生成的測試代碼,說穿了,JTest只是做出了一個測試代碼框架而已,正真的測試代碼,最終還是要用戶自己來實現。
5.JTest最大的優勢在于靜態代碼分析,至于自動生成測試代碼,當然生成測試代碼框架也是不錯的,但要做好
單元測試用戶還要做大量的工作。
歡迎各位高人提出見解,我們會把
Java的測試工作做的更好;
可以探討一下
Java測試方面的內容,大家可以相互交流一下。
謝謝!
原文轉自:http://www.anti-gravitydesign.com
国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97
|