自動(dòng)化測(cè)試較為官方的解釋是把人為驅(qū)動(dòng)的測(cè)試行為轉(zhuǎn)化為機(jī)器執(zhí)行的一種過(guò)程。在這個(gè)過(guò)程里,時(shí)間、人力和硬件資源成本都得到了節(jié)省,通過(guò)評(píng)審之后的測(cè)試用例,測(cè)試人員分步驟執(zhí)行用例中的規(guī)程,再將實(shí)際運(yùn)行結(jié)果和預(yù)期結(jié)果進(jìn)行對(duì)比。
自動(dòng)化測(cè)試的技術(shù)非常多,今天筆者重點(diǎn)介紹3種常見(jiàn)的技術(shù)。
1.錄制與回放測(cè)試
錄制是指使用自動(dòng)化測(cè)試工具對(duì)桌面應(yīng)用程序或者是Web頁(yè)面的某一項(xiàng)功能進(jìn)行測(cè)試并記錄操作過(guò)程。錄制過(guò)程中程序數(shù)據(jù)和腳本混合,每一個(gè)測(cè)試過(guò)程都會(huì)生成單獨(dú)的測(cè)試腳本。無(wú)論是簡(jiǎn)單的界面還是復(fù)雜的界面,進(jìn)行多次測(cè)試就需要多次錄制。
錄制過(guò)程會(huì)生成對(duì)應(yīng)的腳本?;胤趴梢圆榭翠浿七^(guò)程中存在的錯(cuò)誤和不足,如圖片刷新緩慢、URL地址無(wú)法打開(kāi)等。
2.腳本測(cè)試
測(cè)試腳本是測(cè)試計(jì)算機(jī)程序執(zhí)行的指令集合。腳本可以使用錄制過(guò)程中生成的腳本,這些腳本一般是由JavaScript、Python、Perl等語(yǔ)言生成。測(cè)試腳本主要有以下幾種。
(1)線性腳本
線性腳本是指通過(guò)手動(dòng)執(zhí)行測(cè)試用例得到的腳本,包括基本的鼠標(biāo)事件、頁(yè)面選擇、數(shù)據(jù)輸入等操作。線性腳本可以完整地進(jìn)行回放。
(2)結(jié)構(gòu)化腳本
結(jié)構(gòu)化腳本在測(cè)試過(guò)程中具有邏輯順序以及函數(shù)調(diào)用功能,如順序執(zhí)行、分支語(yǔ)句執(zhí)行、循環(huán)等。結(jié)構(gòu)化腳本可以靈活地測(cè)試各種復(fù)雜功能。
(3)共享腳本
在測(cè)試中,一個(gè)腳本可以調(diào)用其他腳本進(jìn)行測(cè)試,這些被調(diào)用的腳本就是共享腳本。共享腳本可以使腳本被多個(gè)測(cè)試用例共享。
3.數(shù)據(jù)驅(qū)動(dòng)測(cè)試
數(shù)據(jù)驅(qū)動(dòng)指的是從數(shù)據(jù)文件中讀取輸入數(shù)據(jù)并將數(shù)據(jù)以參數(shù)的形式輸入腳本測(cè)試,不同的測(cè)試用例使用不同類型的數(shù)據(jù)文件。數(shù)據(jù)驅(qū)動(dòng)模式實(shí)現(xiàn)了數(shù)據(jù)和腳本分離,相對(duì)于錄制與回放測(cè)試技術(shù),數(shù)據(jù)驅(qū)動(dòng)測(cè)試極大地提高了腳本利用率和可維護(hù)性,但是對(duì)于界面變化較大的情景不適合數(shù)據(jù)驅(qū)動(dòng)測(cè)試。數(shù)據(jù)驅(qū)動(dòng)測(cè)試主要包括以下幾種。
(1)關(guān)鍵字驅(qū)動(dòng)測(cè)試
關(guān)鍵字驅(qū)動(dòng)是對(duì)數(shù)據(jù)驅(qū)動(dòng)的改進(jìn),它將數(shù)據(jù)域與腳本分離、界面元素與內(nèi)部對(duì)象分離、測(cè)試過(guò)程與實(shí)現(xiàn)細(xì)節(jié)分離。關(guān)鍵字驅(qū)動(dòng)的測(cè)試邏輯為按照關(guān)鍵字進(jìn)行分解得到數(shù)據(jù)文件,常用的關(guān)鍵字主要包括被操作對(duì)象、操作和值。
(2)行為驅(qū)動(dòng)測(cè)試
行為驅(qū)動(dòng)測(cè)試指的是根據(jù)不同的測(cè)試場(chǎng)景設(shè)計(jì)不同的測(cè)試用例,需要開(kāi)發(fā)人員、測(cè)試人員、產(chǎn)品業(yè)務(wù)分析人員等協(xié)作完成。行為驅(qū)動(dòng)測(cè)試是基于當(dāng)前項(xiàng)目的業(yè)務(wù)需求、數(shù)據(jù)處理、中間層進(jìn)行的協(xié)作測(cè)試,它注重的是測(cè)試軟件的內(nèi)部運(yùn)作變化,從而解決單元測(cè)試中實(shí)現(xiàn)的細(xì)節(jié)問(wèn)題。