英文dtad什么意思(老媽穿了印有deadinside衣服)

摘要: 敏捷開發(fā)的蓬勃發(fā)展、遍地開花,TDD(Test Drive Development測(cè)試驅(qū)動(dòng)開發(fā))的概念已經(jīng)深入軟件研發(fā)從業(yè)者的心中。TDD講究的是:“測(cè)試在先、編碼在后”。有別于以...

敏捷開發(fā)的蓬勃發(fā)展、遍地開花,TDD(Test Drive Development測(cè)試驅(qū)動(dòng)開發(fā))的概念已經(jīng)深入軟件研發(fā)從業(yè)者的心中。

TDD講究的是:“測(cè)試在先、編碼在后”。有別于以往的“先編碼、后測(cè)試”的開發(fā)過程,而是在編程之前,先寫測(cè)試腳本或設(shè)計(jì)測(cè)試用例。

“測(cè)試先行”,使得開發(fā)人員對(duì)所做的設(shè)計(jì)或所寫的代碼有足夠的信心,同時(shí)也有勇氣進(jìn)行設(shè)計(jì)或代碼的快速重構(gòu),有利于快速迭代、持續(xù)交付。

嚴(yán)格來說,TDD是一種開發(fā)實(shí)踐。

從軟件開發(fā)角度來看,TDD是很棒的!

然而,把需求分析整理,軟件開發(fā),到產(chǎn)品化,再到用戶使用,這樣整個(gè)流程來看,單純的TDD還是有一定瑕疵的。

TDD只涉及到Developer(開發(fā)者),只能算是開發(fā)工程師個(gè)人工作方式的改變。而現(xiàn)代軟件開發(fā),往往都是“產(chǎn)品經(jīng)理(或業(yè)務(wù))、測(cè)試人員(QA)、開發(fā)人員”三者合作的成果,如果開發(fā)人員對(duì)業(yè)務(wù)需求理解的不正確,那么寫出的測(cè)試用例也是錯(cuò)的,這個(gè)問題是TDD解決不了的。

在不脫離敏捷開發(fā)的大前提下:業(yè)務(wù)層次,也可以采用類似TDD方法論。

換言之,需求分析時(shí)就確定需求(如:用戶故事)的驗(yàn)收標(biāo)準(zhǔn)。畢竟軟件最終是要給用戶使用的,要滿足用戶需求,解決用戶的痛點(diǎn)。否則就會(huì)變成程序員的自high!

上面的業(yè)務(wù)層次的敏捷測(cè)試,升華到方法論的高度,就是驗(yàn)收測(cè)試驅(qū)動(dòng)開發(fā)(Acceptance Test Driven Development,ATDD)。

ATDD的執(zhí)行邏輯,如下圖所示:

TDD明白了,ATDD測(cè)試到底是什么?


ATDD是一種在編碼開始之前將客戶帶入測(cè)試設(shè)計(jì)過程的技術(shù)實(shí)踐。

同時(shí),ATDD也是一個(gè)協(xié)作實(shí)踐:用戶,測(cè)試人員和開發(fā)人員,共同定義了自動(dòng)驗(yàn)收標(biāo)準(zhǔn)。

ATDD有助于確保所有項(xiàng)目成員準(zhǔn)確理解需要完成和實(shí)施的內(nèi)容。

如果系統(tǒng)未通過測(cè)試可提供快速反饋,說明未滿足要求。

驗(yàn)收測(cè)試以業(yè)務(wù)領(lǐng)域術(shù)語進(jìn)行指定。每個(gè)功能都必須提供真實(shí)且可衡量的業(yè)務(wù)價(jià)值,事實(shí)上。

ATDD這樣的做法,其實(shí)對(duì)應(yīng)著《成功人士的“七個(gè)習(xí)慣”》之一的“以終為始”。

產(chǎn)品經(jīng)理、研發(fā)人員、測(cè)試人員,三個(gè)角色的人首先坐到一起,澄清細(xì)化最終客戶的目標(biāo),并把自始至終都基于這個(gè)目標(biāo)工作,這不就是以終為始嗎?

ATDD帶來的好處也顯而易見

? 大家對(duì)業(yè)務(wù)需求的統(tǒng)一理解

? 通過自然語言來描述需求

? 是可以運(yùn)行的需求或?qū)嵗?/p>

? 是活著的文檔

說了這么多,相信大家已經(jīng)可以明白ATDD絕對(duì)不是TDD多了一個(gè)“A”。

還沒懂?一句話對(duì)比法來說明區(qū)別:

TDD的目的是:Do the right development;

ATDD的目的是:Do the development right!

具體到測(cè)試人員的工作實(shí)踐中,筆者推薦Python和JAVA的兩個(gè)框架,基本可以滿足工作需求了。

Python背景的測(cè)試人員,推薦使用Robot Framework。

官網(wǎng):
https://robotframework.org/

RF的 “keyword-driven” 方式,用來編寫測(cè)試案例,是一個(gè)非常適合用來實(shí)踐ATDD的工具。

JAVA背景的測(cè)試人員,推薦使用FitNess框架。

官網(wǎng):www.fitnesse.org

TDD,最終還是程序員自己的事情;ATDD,讓測(cè)試人員更多地參與到產(chǎn)品、研發(fā)、交付中。

是時(shí)候擁抱ATDD了!

作 者:Testfan Arthur

出 處:微信公眾號(hào):自動(dòng)化軟件測(cè)試平臺(tái)

版權(quán)說明:歡迎轉(zhuǎn)載,但必須注明出處,并在文章頁面明顯位置給出文章鏈接