要想回答這個(gè)問(wèn)題,首先要搞明白另外一個(gè)問(wèn)題。那是自動(dòng)化是什么?
   
    首先回答自動(dòng)化是什么?常見(jiàn)的答案:自動(dòng)化是寫代碼。如果是寫代碼,那與軟件開(kāi)發(fā)有什么區(qū)別。要想回答這個(gè)問(wèn)題前提是代碼是什么。代碼是人的知識(shí)與邏輯思維的一種固化方式。軟件本身是人們?yōu)榻鉀Q某一問(wèn)題所需要知識(shí)與做事的處理流程的固化。 而測(cè)試腳本是人們測(cè)試邏輯思維的固化。一旦把知識(shí)與邏輯思維固化下來(lái)后,相當(dāng)于建立一種制度。
   
    自動(dòng)化能提高效率嗎,是不可以換一種方式問(wèn),制度能不能不效率?這樣一問(wèn),大家自然也明白了,制度不一定能提高效率。只有一個(gè)好的制度才能效率。因?yàn)橛辛酥贫戎,人們的?huì)受制于制度,缺乏了靈活度。像上一篇文章的自動(dòng)化測(cè)試三個(gè)發(fā)展階段:依賴工具階段,依賴人的階段,依賴架構(gòu)階段。過(guò)第一階段之后,這種感覺(jué)越明顯。嚴(yán)重的話,會(huì)出現(xiàn)測(cè)試綁架開(kāi)發(fā)的情況。例如軟件想進(jìn)行重構(gòu),但會(huì)引起接口的變化,而接口的改變,測(cè)試腳本要跟著改了并且改動(dòng)一般都不會(huì)是一比一關(guān)系,而是一比N(這個(gè)N有多大,看測(cè)試case設(shè)計(jì)的合理性而定了)。如果測(cè)試改動(dòng)量特別大,可能會(huì)迫使軟件放棄重構(gòu)。違背了做自動(dòng)化的初衷了。
   
    現(xiàn)在流行的敏捷開(kāi)發(fā)模式,代碼重構(gòu)會(huì)貫穿于整個(gè)開(kāi)發(fā)流程,同樣自動(dòng)測(cè)試是保證敏捷順利進(jìn)行一個(gè)不可或缺的基石。沒(méi)有自動(dòng)化,不可能快速持續(xù)集成。
   
    所以,成也自動(dòng)化測(cè)試,敗也自動(dòng)化測(cè)試。是成是敗要看自動(dòng)化框架的設(shè)計(jì)。