根據(jù)客戶的要求,最近項目要用Agitar來生成單元測試用例。
Agitar是基于CS的架構(gòu)。客戶端是基于Eclipse的插件,Dev編寫好要測試的代碼,并編譯后將代碼發(fā)送到服務(wù)端。服務(wù)端分析Class文件,生成Unit test case文件發(fā)送給客戶端,也就是Dev。Dev就可以通過Junit做單元測試了,聽起來是不是很神奇,確實如此,我試了試,對于簡單的代碼而言,測試代碼的覆蓋率基本都能達到100%。它的另一個重要功能是Agitaration,它會分析你的代碼,在服務(wù)器端測試代碼的質(zhì)量。比如它會對于邊界值等進行測試。
而對于Dev之上的TL或者PM,通過服務(wù)端每天產(chǎn)生的DashBoard可以查看整個項目代碼質(zhì)量,比如有多少TestCase沒有通過。它會分析每一個類及方法的復(fù)雜度,便于管理確保項目質(zhì)量。
整體而言,這個軟件還是很不錯的,它是根據(jù)分析你的Class文件,生成“Characters test case ”,而不是根據(jù)業(yè)務(wù)邏輯的TestCase。
對于我們Dev而言,通過它的Agitaration功能,可以看到我們代碼的具體行為,查看那些不是我們真正希望的行為,也就是Bug。同時由于不用編寫那些character test case,可以大大減少我們編寫乏味的TestCase的時間,是我們的重點放在真正的業(yè)務(wù)邏輯。
但是通過這幾天的實踐,由于我們要重構(gòu)的方法比較大,行數(shù)基本都在2K以上,代碼生成的效果還是很差。還是需要我們具體的編碼啊!!!!
另外這個軟件是商業(yè)軟件,它的Trial Version也只是讓你下載客戶端,然后你要把你的代碼發(fā)送到服務(wù)端,但公司在USA,我反正在家里連插件都沒有下載下來,太慢了。如果代碼發(fā)過去,然后再把他們生成的代碼發(fā)過來,不知道到猴年馬月了!!