要充分利用大連人力資源管理軟件二次開發(fā)來加快測(cè)試。對(duì)于加快測(cè)試,最普遍也最脆弱的方法是利用多線程來同時(shí)運(yùn)行多個(gè)測(cè)試。這個(gè)方法之所以脆弱,是因?yàn)樗鼤?huì)讓編寫測(cè)試/分析失敗測(cè)試變得異常復(fù)雜,開發(fā)者必須考慮到當(dāng)前線程在使用資源時(shí),可能有另一個(gè)線程正要銷毀同一個(gè)資源;而測(cè)試失敗時(shí),也會(huì)由于線程的不確定性,導(dǎo)致問題難于重現(xiàn)而增加了解決問題的成本。我認(rèn)為一個(gè)更好的實(shí)踐是在多臺(tái)機(jī)器上并發(fā)運(yùn)行測(cè)試,每臺(tái)機(jī)器只需要運(yùn)行“總測(cè)試數(shù)/機(jī)器數(shù)”個(gè)測(cè)試,這樣所花費(fèi)時(shí)間會(huì)大約減少為“原本測(cè)試時(shí)間/機(jī)器數(shù)”。
相對(duì)與購置機(jī)器的一次性投入,手工優(yōu)化的不斷投入成本更高,而且很多公司都會(huì)有閑置的計(jì)算資源,利用舊機(jī)器或者采用在多核的機(jī)器上安裝虛擬機(jī)的方式,可以很經(jīng)濟(jì)地增加計(jì)算資源。在項(xiàng)目開發(fā)的業(yè)余時(shí)間,我和我的同事們一起開發(fā)了開源的測(cè)試輔助工具test-load-balancer。我們?cè)陧?xiàng)目中通過它將需要90分鐘的測(cè)試自動(dòng)劃分為數(shù)個(gè)10分鐘左右的測(cè)試,在多臺(tái)虛擬機(jī)上并發(fā)運(yùn)行,很好地解決了速度問題。
致遠(yuǎn)服軟認(rèn)為:http://www.soft8.com.cn/對(duì) Mock 追本溯源,我們會(huì)發(fā)現(xiàn)它更多時(shí)候扮演的是設(shè)計(jì)工具的角色而不是汽車4S智能門店管理系統(tǒng)測(cè)試工具的角色,Mock框架在設(shè)計(jì)方面的局限性李曉在《不要把Mock當(dāng)作你的設(shè)計(jì)利器》一文中已經(jīng)談得很透徹,在此不再贅述。Mock不是測(cè)試的銀彈,世上也并無銀彈存在。測(cè)試實(shí)踐正常開展的決定性因素是團(tuán)隊(duì)成員對(duì)測(cè)試流程、測(cè)試方法的不斷改進(jìn)而不是先進(jìn)的大連人力資源管理軟件二次開發(fā)測(cè)試框架。
不要去依賴 Mock 框架,它的強(qiáng)制約定常常是我們改進(jìn)設(shè)計(jì)和添加功能的絆腳石。改善設(shè)計(jì),依賴一個(gè)簡(jiǎn)潔的代碼環(huán)境,依賴一套可靠的測(cè)試方法才是正途。從意識(shí)到 Mock 測(cè)試帶來的負(fù)面影響,到從濫用 Mock 的泥潭中掙扎出來,我們花費(fèi)了很多時(shí)間和精力,希望這些經(jīng)驗(yàn)可以對(duì)同行們有所幫助,有所啟發(fā)。
在ThoughtWorks工作的三年經(jīng)歷中,對(duì)于Mock框架的使用從無到有,從濫用到謹(jǐn)慎。三年間,和李曉、陶文、李彥輝、Chris Stevenson 等人反復(fù)討論和辯論使我對(duì)Mock 有了更多的理解。這篇文章反反復(fù)復(fù)改了許多稿,在此對(duì)陳金洲和李默的耐心幫助致謝。最后,沒有與InfoQ的編輯李劍和霍泰穩(wěn)在Twitter上的一番談話,也就沒有這篇文章,在此感謝。
《Mock Roles,not Objects》,Steve Freeman,Nat Pryce,Tim Mackinnon,Joe Walnes.
《不要把Mock當(dāng)作你的設(shè)計(jì)利器》,李曉。
胡凱,ThoughtWorks 公司的敏捷咨詢師,近兩年一直從事持續(xù)集成工具 Cruise 以及CruiseControl的設(shè)計(jì)開發(fā)工作。他創(chuàng)造和參與了大連人力資源管理軟件二次開發(fā)開源測(cè)試框架junit-ext和test-load-balancer,對(duì)于Web開發(fā)、敏捷實(shí)踐、開源軟件與社區(qū)活動(dòng)有濃厚的興趣,讀者可以訪問他的個(gè)人博客進(jìn)行更多的了解。 IV/8jm5tqYdSGLE/Co/83XBtqoYdZKm29bEIbEJlLga40sXW90tEl6dWUE7PIbg6pTz5EzjGTSQRrMlG8Q0hdw==