Rudolf de Schipper在項(xiàng)目管理、咨詢、QA及軟件開(kāi)發(fā)上有豐富的經(jīng)驗(yàn)。他有管理大型跨國(guó)項(xiàng)目的經(jīng)驗(yàn),喜歡團(tuán)隊(duì)合作。Rudolf 很擅長(zhǎng)分析,對(duì)公共部門、金融、電子商務(wù)領(lǐng)域很感興趣。他曾在國(guó)際型設(shè)計(jì)和開(kāi)發(fā)中使用過(guò)面對(duì)對(duì)象的技術(shù)。除了IT相關(guān)項(xiàng)目的管理方面,他的興趣還覆蓋程序管理、質(zhì)量管理、業(yè)務(wù)咨詢以及架構(gòu)和開(kāi)發(fā)。堅(jiān)持跟進(jìn)技術(shù)工作,Rudolf 曾與StratEx團(tuán)隊(duì)合作開(kāi)發(fā)過(guò)StratEx應(yīng)用程序(www.stratexapp.com),其架構(gòu)以及所用到的代碼生成工具。在此過(guò)程中,他學(xué)會(huì)并體驗(yàn)了許多嚴(yán)峻的軟件設(shè)計(jì)和開(kāi)發(fā)相關(guān)的困難,包括測(cè)試的挑戰(zhàn)。
在StratEx中,除了開(kāi)發(fā)StratEx應(yīng)用程序,明顯我們還很重視質(zhì)量和測(cè)試應(yīng)用程序。畢竟我們一心要為用戶提供高質(zhì)量。StratEx使用代碼生成的概念來(lái)縮短開(kāi)發(fā)周期,能夠快速實(shí)現(xiàn)新特性和功能。同時(shí)還提供一個(gè)好看統(tǒng)一的用戶界面,因?yàn)槲覀円恢北3执a生成的簡(jiǎn)單性。所以創(chuàng)建一個(gè)看起來(lái)與眾不同的(生成的)屏幕并不容易。代碼生成概念給了我們可靠的代碼,也減少了測(cè)試時(shí)間。不過(guò),除了有效地編碼外,我們還想找到有效測(cè)試的方法。(至少?gòu)奈覀兊慕嵌瓤矗╋@著的解決方案是自動(dòng)化和生成我們的測(cè)試。但這聽(tīng)起來(lái)簡(jiǎn)單,實(shí)際上卻并非如此。我們要花不少時(shí)間思考佳測(cè)試策略該是什么樣的以及該如何實(shí)現(xiàn)它(使用測(cè)試自動(dòng)化)。首先我們解決用戶UI測(cè)試,使用Selenium。我們手動(dòng)記錄一些測(cè)試場(chǎng)景并將它們包含到我們的持續(xù)集成建立流程中去(關(guān)于這點(diǎn)我后面會(huì)講到)。它幫助部署經(jīng)過(guò)煙霧測(cè)試的構(gòu)建,但是當(dāng)我們對(duì)屏幕做出改變時(shí),它完全起不到幫助。這是我們一直以來(lái)在做的事,因?yàn)橛辛宋覀兊纳纱a,它變得很簡(jiǎn)單,我們需要為用戶提供這種靈活性!當(dāng)然,這一點(diǎn)上我們決不妥協(xié),甚至不能確保我們的代碼被自動(dòng)測(cè)試。是的,你沒(méi)看錯(cuò)——我們是敢于部署沒(méi)有完全經(jīng)過(guò)端到端測(cè)試的代碼!我們更愿意經(jīng)常且快速地部署,盡管要冒著可能有用戶會(huì)找到bug的風(fēng)險(xiǎn)。
我們對(duì)此仍不滿意,因此我們堅(jiān)持尋找更好的解決方案。接下來(lái)要進(jìn)行長(zhǎng)期的調(diào)查活動(dòng),以便能夠:找到更好的(更快的)測(cè)試,生成測(cè)試,改進(jìn)我們手寫(xiě)代碼的方法,閱讀大量關(guān)于測(cè)試的書(shū)籍文章。即使到了現(xiàn)在,該調(diào)查還沒(méi)結(jié)束,我們?nèi)晕茨艹晒Γㄍ耆┥晌覀兊臏y(cè)試。然而這些日子部署一個(gè)新構(gòu)建前我們一直在運(yùn)行自動(dòng)化測(cè)試。同時(shí),我們很樂(lè)意分享我們遇到的一些關(guān)于各種測(cè)試/開(kāi)發(fā)方法的發(fā)現(xiàn)。
TDD(測(cè)試驅(qū)動(dòng)設(shè)計(jì)/開(kāi)發(fā))
TDD方法的基本前提是:你的開(kāi)發(fā)基本是由若干(單元)測(cè)試驅(qū)動(dòng)的。你第一次編寫(xiě)測(cè)試,然后運(yùn)行它們。很明顯,測(cè)試失敗了,那你下一步要編寫(xiě)代碼使測(cè)試通過(guò)。依我們之見(jiàn),TDD及其對(duì)單元測(cè)試的重點(diǎn)關(guān)注是:一個(gè)被高估的概念。這很容易理解,因此很快吸引了熱情的追隨者。其方法的重大差距也是代碼。且這代碼必須得寫(xiě),得維護(hù),它還會(huì)含有bug。所以如果我們的整個(gè)項(xiàng)目中開(kāi)發(fā)員花x%的時(shí)間寫(xiě)新的(測(cè)試)代碼而不重視寫(xiě)產(chǎn)品代碼,那我們必須問(wèn)問(wèn)其中的意義何在了。在我們看來(lái),你們只是在制造更多行的代碼及更多的bug。