您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
不僅僅只有JUnit
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2013/3/25 15:00:32 ] 推薦標(biāo)簽:

        今年忙乎了大半年的自動化測試,寫了一個測試框架,一直想寫點(diǎn)東西總結(jié)一下,由于懶,總是沒有心性來寫些東西,無聊,乘機(jī)寫點(diǎn),不然又不知猴年馬月才能動筆了^_^
        本文不想討論自動化測試的利弊;Web測試和性能測試也不是本文的討論范疇,本文只討論單元測試以及集成測試階段的問題;只談了JUnit的一些缺陷以及我們是否有更好的選擇,以及開發(fā)者的測試是否能讓測試人員也能玩得動呢。如果你沒興趣,不防此別過,以免你后悔。
        言歸正傳,說到用JUnit進(jìn)行單元測試,對于Java開發(fā)人員來說再熟悉不過了,即使
        沒有用過,也一定聽過吧。
        在項目的過程中,如果你是開發(fā)人員,你也許有這樣的想法:偶們知道用JUnit來寫單元測試的好處,可偶們沒時間寫;功能夠用了,可還是繁瑣;一開始還用的,可后來忙于改代碼,接口改動又大,也沒時間堅持用下去了。
        如果你是測試人員,你或許會這樣想:偶覺得開發(fā)人員寫的單元測試可能過于粗略,很可能有些邊界沒檢查到,但我對Java不太熟悉,無法通過修改他們的測試代碼來進(jìn)行更完善的測試,只能”通過現(xiàn)象猜本質(zhì)“了--在功能測試階段,多點(diǎn)幾下鼠標(biāo)也可能出錯了。
        哦,也許我猜錯了,我怎么能懂得測試人員的心思呢,實際上我都不是一個稱職的測試人員。
        我們來看看JUnit都有哪些令人不爽的地方:
        1、繁瑣,維護(hù)的成本不低。XP提倡為每個方法都加一個測試方法,不少XP的追隨者也是真能做到的。但當(dāng)項目的代碼行達(dá)到50萬以上時,為每個方法增加一個測試方法,令人不爽的是:需要幾乎跟源碼一樣多的測試代碼,甚至更多。唉,老大,不是我不想做,我是做不完啊。
        2、測試代碼的質(zhì)量不好檢查。如果你是一個敬業(yè)的人,相信不會有這樣的問題,但是人都有惰性,尤其是日復(fù)一日地重復(fù)寫代碼的你,當(dāng)面臨加班寫測試代碼和回家看球賽的選擇時,我想還是選看球賽的人大有人在--反正簡單得很,不會出錯的。關(guān)鍵的是:頭兒不會知道的。
        3、在單元測試階段的效果比較明顯,在其它測試階段幾乎難于勝任了。也難怪,望文生意:JUnit本來是Java Unit測試嘛,你XXX要求還真高。
        關(guān)鍵不是我要求高,是我們這些coding的”共同敵人“要求高啊,所以,問題不能不解決。于是,有一些”先驅(qū)們“做了一些嘗試:
一、Software Agitator
        什么是Software Agitator?當(dāng)年JUnit的Kent Beck的又一力作,它是一個自動的運(yùn)行軟件代碼并提供軟件代碼行為觀察報告的一種方法,它幫助開發(fā)人員單元測試他們的代碼,而不用手動編寫測試代碼,使用該方法,開發(fā)人員將創(chuàng)造出更好、更容易維護(hù)和健康的軟件,產(chǎn)生很少的bug,具有更高的生產(chǎn)效率,因為他們花了很少的時間去分析失敗和改寫他們的代碼。
Software Agitator的主要特性有:
1、自動生成測試數(shù)據(jù)、自動創(chuàng)建智能的Mock 對象,提供盡可能多的代碼覆蓋。
2、全面的報告:代碼覆蓋率、報告方法、輸出、語句行和條件覆蓋率。
3、超過200個Factory庫,也可以通過簡單的Java API 延伸factory控制輸入數(shù)據(jù)和
轉(zhuǎn)化數(shù)據(jù)格式。
4、支持TDD(測試驅(qū)動開發(fā))
5、支持JUnit等。
6、支持Regression測試(也老外這么多名詞,說白了是測試用例在不同的項目中
重復(fù)利用)。
7、存儲信息在XML文件里(包括用例、報告),不需要數(shù)據(jù)庫。
8、自動檢測代碼標(biāo)準(zhǔn)違規(guī)。
9、完全集成Eclipse開發(fā)環(huán)境。

        顯然,Agitator的功能非常強(qiáng)大,陣對性強(qiáng),個人覺得起碼有如下好處:
1、基于XML來描述用例信息比robot和Quest Test都易于使用,這使測試人員都能參與其中。題外話:我一直想不通robot和Quest Test為何要自己發(fā)明一套自己的腳本?除了自我封閉、排除異己之外,實在沒有其它有說服力的道理可言。
2、它能大大減輕了開發(fā)人員的重復(fù)勞動,這是開發(fā)人員不能堅持用JUnit進(jìn)行測試的罪魁啊,基本上彌補(bǔ)了JUnit的缺陷,真不愧為JUnit的始俑者。一句話:懶人只需要一個理由。
3、測試報告全面,而且是xml形式的。通過測試報告也能比較可靠地檢查質(zhì)量。
Agitator的缺陷也明顯:
1、不適合于Web測試和GUI測試。
2、它不是免費(fèi)的,這是大的缺點(diǎn)了吧,如果能象JUnit那樣免費(fèi)。。。。。。我想得也太 美了:(

        可惜拿不到Agitator的試用版,不然,能做些例子,但能給我們不少啟發(fā):
1、測試框架需要進(jìn)一步減輕開發(fā)人員的工作量
2、測試用例的開放性(XML格式)。別只顧自己玩代碼,讓開發(fā)經(jīng)驗欠缺的測試人員也玩玩 如何?自動化測試有必要學(xué)習(xí)其他腳本語言嗎?除了商業(yè)利益的因素外,沒有任何令人信服的理由。
3、測試的智能化:全面的報告,支持Regression測試,自動定時執(zhí)行等等。

        是啊,真的是個好東東啊。難道沒有其它免費(fèi)的嗎?我還真沒發(fā)現(xiàn),如果你知道,請告訴我,謝謝。

        不過,如果你能讀到這,為了報答你的拜讀之情,介紹一款免費(fèi)的測試框架,以致不會令你太失望。

上一頁12下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd