有關(guān)什么構(gòu)成了一個(gè)對(duì)測(cè)試自動(dòng)化的"合適執(zhí)行"的討論常常聚焦于應(yīng)當(dāng)使用什么工具,但是那只是等式的一部分。巴斯德基科斯特拉詳列了四件應(yīng)當(dāng)考慮的事情,以及他們?cè)鯓佑幸嬗跍y(cè)試自動(dòng)化的成功,和沒(méi)有對(duì)這四件事的其中一件進(jìn)行合適的關(guān)注所帶來(lái)的風(fēng)險(xiǎn)。
對(duì)于期望快速發(fā)布質(zhì)量的機(jī)構(gòu)來(lái)說(shuō),運(yùn)行自動(dòng)化測(cè)試是軟件開(kāi)發(fā)生命周期的一個(gè)重要部分。然而,測(cè)試自動(dòng)化只有在合理恰當(dāng)執(zhí)行的情況下才能成功。對(duì)于什么構(gòu)成了測(cè)試自動(dòng)化的恰當(dāng)執(zhí)行的討論常常聚焦在應(yīng)當(dāng)使用什么工具來(lái)做這項(xiàng)工作,或者使用最 好的(即使已經(jīng)有了這件東西)或者最有效的方式來(lái)使用特定的工具來(lái)完成給定的任務(wù)。
在我看來(lái),盡管使用的工具是整個(gè)測(cè)試自動(dòng)化方程的一部分。任何成功的測(cè)試自動(dòng)化指向都是基于五個(gè)不同的部分建立的。
在本文中,我們會(huì)來(lái)看一下這些部分的每個(gè)部分,他們?cè)鯓又嬗谀愕臏y(cè)試自動(dòng)化執(zhí)行使之成功,以及沒(méi)有好好關(guān)注他們的任何一項(xiàng)所會(huì)帶來(lái)的風(fēng)險(xiǎn)。
1、測(cè)試自動(dòng)化工具
測(cè)試自動(dòng)化工具雖然不是測(cè)試自動(dòng)化執(zhí)行得以成功的唯 一因素,工具顯然對(duì)你自動(dòng)化工作的整體結(jié)果有著重要的影響。選擇一個(gè)與你要測(cè)試的程序不夠兼容的工具,或者不符合你們自動(dòng)化團(tuán)隊(duì)所需要的技能集將很可能會(huì)導(dǎo)致不理想的結(jié)果。
然而,比工具的選擇更重要的是,問(wèn)自己你到底想用什么來(lái)完成你的自動(dòng)化測(cè)試,然后決定一個(gè)最有效的達(dá)成結(jié)果的方式。一個(gè)首要的問(wèn)題需要問(wèn)的是一個(gè)特定的功能片或商業(yè)邏輯需要在什么層面上進(jìn)行驗(yàn)證。
你想確保你的顧客可以打開(kāi)你們的線(xiàn)上商店,搜索一個(gè)具體的產(chǎn)品,然后進(jìn)行下單付款的操作嗎?你很可能想要使用端對(duì)端的用戶(hù)接口驅(qū)動(dòng)的測(cè)試來(lái)檢驗(yàn)這一點(diǎn)。如果你在驗(yàn)證一個(gè)決定顧客是否被允許來(lái)購(gòu)買(mǎi)給定的無(wú)品(比如,由于國(guó)家層面的規(guī)制)的邏輯片的正確性,那么你很可能需要能夠編寫(xiě)潛入進(jìn)較低級(jí)別的待測(cè)程序的測(cè)試腳本,例如一個(gè)接口甚至一個(gè)單獨(dú)的代碼類(lèi)。這構(gòu)成了一個(gè)針對(duì)該測(cè)試的不一樣的范圍和方法,因此,需要一個(gè)不同的工具。
簡(jiǎn)而言之,確保首先你知道要做自動(dòng)化測(cè)試的程序需要驗(yàn)證什么,然后再花費(fèi)時(shí)間去研究怎樣取得想要的結(jié)果。記住迫使工具去做不是它被設(shè)計(jì)來(lái)做的事情會(huì)有很大的風(fēng)險(xiǎn)。
2、測(cè)試數(shù)據(jù)
對(duì)于任何嚴(yán)肅的測(cè)試自動(dòng)化方案的另外一個(gè)重要因素是采用的管理測(cè)試數(shù)據(jù)的方法。測(cè)試的范圍越廣,測(cè)試數(shù)據(jù)管理就相應(yīng)地變得越重要和要求高。
在單元測(cè)試?yán)?,你可以通過(guò)模擬所有你的測(cè)試依靠的數(shù)據(jù)來(lái)過(guò)活,而當(dāng)你開(kāi)始啟動(dòng)集成或端對(duì)端的測(cè)試時(shí),你會(huì)需要有特定的數(shù)據(jù)來(lái)做測(cè)試。而且,為了讓事情更復(fù)雜化,你常會(huì)需要其他與你的相互連接的程序進(jìn)行交互的數(shù)據(jù)處于一個(gè)特定的狀態(tài)。
對(duì)于這些類(lèi)型的測(cè)試需要以下幾種方式來(lái)處理測(cè)試數(shù)據(jù)
在測(cè)試建立階段創(chuàng)建需要的測(cè)試數(shù)據(jù)
開(kāi)始測(cè)試之前詢(xún)問(wèn)系統(tǒng)里已存在的測(cè)試數(shù)據(jù)
測(cè)試執(zhí)行之前初始化待測(cè)程序的數(shù)據(jù)庫(kù)
這里的每個(gè)方法都有其潛在的陷阱:
在測(cè)試建立階段創(chuàng)建測(cè)試數(shù)據(jù)增加了測(cè)試執(zhí)行時(shí)間,增加了在測(cè)試執(zhí)行開(kāi)始之前的失敗風(fēng)險(xiǎn),還會(huì)導(dǎo)致很多無(wú)用的測(cè)試數(shù)據(jù)如果沒(méi)有合理的數(shù)據(jù)清理程序的話(huà)。
當(dāng)你在測(cè)試開(kāi)始之前查詢(xún)系統(tǒng)里已存在的測(cè)試數(shù)據(jù)時(shí),因?yàn)橐馔獾厥褂昧藷o(wú)效的測(cè)試數(shù)據(jù)或系統(tǒng)里的測(cè)試數(shù)據(jù)屬性不對(duì)而導(dǎo)致了風(fēng)險(xiǎn)。
在測(cè)試執(zhí)行前初始化數(shù)據(jù)庫(kù)給你留下了數(shù)據(jù)庫(kù)的截圖來(lái)管理和保持?jǐn)?shù)據(jù)最 新-也就是說(shuō),你甚至需要首先被允許執(zhí)行數(shù)據(jù)庫(kù)復(fù)原程序。
助益沒(méi)有正確的處理集成和斷對(duì)端測(cè)試的測(cè)試數(shù)據(jù)的方法。然而,選擇錯(cuò)的程序,或者根本沒(méi)提出測(cè)試數(shù)據(jù)的問(wèn)題,將很可能會(huì)導(dǎo)致產(chǎn)出的測(cè)試自動(dòng)化方案不可重用,不可維護(hù)或擴(kuò)展性不好。