Laurent PY博士是Smartesting®的行政總裁。20世紀(jì)90年代Laurent PY開始從事先進(jìn)測試技術(shù)方面的工作,他在軟件測試方面擁有豐富的經(jīng)驗(yàn)。他熱衷于#leanstartup和Agility:關(guān)鍵是盡快測試并驗(yàn)證假設(shè)以及提供早期反饋!他曾在好幾個(gè)會(huì)議上發(fā)過言。 |
正在縮小的世界中的測試軟件
當(dāng)“上市時(shí)間”從幾個(gè)月縮短到幾天(甚至幾個(gè)小時(shí))的時(shí)候,提供軟件的整個(gè)方式會(huì)受到影響,測試也同樣會(huì)受影響。在采用了敏捷方法的項(xiàng)目中,傳統(tǒng)功能測試鏈正被打亂。這對(duì)正在做持續(xù)部署的團(tuán)隊(duì)更具挑戰(zhàn)。
在敏捷項(xiàng)目中,迭代很短(通常介于1和4周間),帶有小改進(jìn)和持續(xù)集成。因此,每次迭代,我們都需要確保這些改進(jìn)按照他們預(yù)期的方式進(jìn)行,并執(zhí)行一些回歸測試。要達(dá)到敏捷性測試這個(gè)水平需要大量的自動(dòng)化。項(xiàng)目將其測試100 %自動(dòng)化并不罕見。谷歌每分鐘做20+個(gè)代碼變化,每天運(yùn)行約50百萬次測試!
但測試執(zhí)行只是硬幣的一面,F(xiàn)在的問題是,如何以相同的速度和規(guī)模去設(shè)計(jì)和維護(hù)這些測試?換句話說,一個(gè)有許多小幅增長的迭代的項(xiàng)目如何能夠在整個(gè)測試過程保持精簡?
早期測試設(shè)計(jì)
如果一個(gè)項(xiàng)目團(tuán)隊(duì)必須非?焖俚氐,很難維護(hù)和同步三個(gè)傳統(tǒng)存儲(chǔ)庫:需求,代碼和測試。我們過去用來管理他們的需求消失了!測試變得更加重要,流程(迭代或計(jì)劃會(huì)議期間)中,很早開始了測試設(shè)計(jì)。測試是“完成”的定義,同時(shí)確定需求及驗(yàn)收標(biāo)準(zhǔn)的方式。因此,所有利益相關(guān)者關(guān)于一個(gè)成功實(shí)施意味著什么達(dá)成了共識(shí)。這些驗(yàn)收測試也被用來驅(qū)動(dòng)和聚焦代碼編寫 - 我應(yīng)該先執(zhí)行哪個(gè)測試?這些原則是驗(yàn)收測試驅(qū)動(dòng)開發(fā)實(shí)踐的基礎(chǔ)。
所以驗(yàn)收測試在生產(chǎn)前不再是開發(fā)過程的后一步。反之 - 驗(yàn)收試驗(yàn)設(shè)計(jì)在項(xiàng)目早期開始了。而且,到目前為止,它已被證明能夠給質(zhì)量和生產(chǎn)力帶來巨大的好處。
業(yè)務(wù)領(lǐng)域語言設(shè)計(jì)驗(yàn)收測試的需要
為了按需求規(guī)定的速度和規(guī)模給早期測試設(shè)計(jì)提供有效支持并同時(shí)增強(qiáng)項(xiàng)目利益相關(guān)者之間的溝通,測試人員應(yīng)該可以構(gòu)建能被開發(fā)人員和業(yè)務(wù)專家理解的資產(chǎn)。自動(dòng)化,甚至手工測試用例,通常過于復(fù)雜或過于詳細(xì)而被錯(cuò)誤理解。
還有是要保持與測試用例相關(guān)的文件,并且毫無疑問,這將引起矛盾。因此,要定義測試場景,測試人員應(yīng)該使用一種業(yè)務(wù)領(lǐng)域語言,它:
▪可以被(定義業(yè)務(wù)術(shù)語的)業(yè)務(wù)專家理解
▪便于測試編寫和維護(hù)(基于語義而不僅僅是文字)
▪可被自動(dòng)轉(zhuǎn)化用于測試執(zhí)行
這樣一個(gè)業(yè)務(wù)領(lǐng)域的語言一點(diǎn)好處是:它使開發(fā)人員所謂的“重構(gòu)”成為可能。測試不再是純文本,它有了語義,只用一個(gè)動(dòng)作可以管理和修改大量測試。這意味著使用利于團(tuán)隊(duì)內(nèi)部交流的業(yè)務(wù)語言時(shí)升級(jí)了一百或更多的測試步驟。因此,使用早期測試設(shè)計(jì)并通過創(chuàng)建一種業(yè)務(wù)領(lǐng)域語言所寫的測試,你可以將整個(gè)項(xiàng)目組和驗(yàn)收標(biāo)準(zhǔn)的定義對(duì)其,并高速度、大規(guī)模地進(jìn)行迭代。
測試的執(zhí)行也是要么用手動(dòng)執(zhí)行要么用自動(dòng)化被簡化了。因?yàn)轵?yàn)收測試基于一種業(yè)務(wù)領(lǐng)域語言,所以測試步驟是同類的且更容易理解和執(zhí)行。對(duì)于那些想要做自動(dòng)化的人,將業(yè)務(wù)領(lǐng)域語言轉(zhuǎn)化為將被實(shí)現(xiàn)的關(guān)鍵字也很簡單。有一些工具支持TADD且為設(shè)計(jì)測試提供一個(gè)特定領(lǐng)域語言(DSL)。