|
以下是自動(dòng)化測(cè)試框 架的建議,需要在以后的實(shí)踐中改進(jìn)。自動(dòng)化測(cè)試框架一般可以分為上下兩個(gè)層次,上層是管理整個(gè)自動(dòng)化測(cè)試的開(kāi)發(fā),執(zhí)行以及維護(hù),在比較龐大的項(xiàng)目中,它體 現(xiàn)重要的作用,它可以管理整個(gè)自動(dòng)測(cè)試,包括自動(dòng)化測(cè)試用例執(zhí)行的次序、測(cè)試腳本的維護(hù)、以及集中管理測(cè)試用例、測(cè)試報(bào)告和測(cè)試任務(wù)等。下層主要是測(cè)試腳 本的開(kāi)發(fā),充分的使用相關(guān)的測(cè)試工具,構(gòu)建測(cè)試驅(qū)動(dòng),并完成測(cè)試業(yè)務(wù)邏輯。 一、自動(dòng)化測(cè)試管理 自動(dòng)化測(cè)試用例的執(zhí)行機(jī)制一般包括管理端和執(zhí)行端,由管理端發(fā)出信號(hào)通知執(zhí)行端開(kāi)始執(zhí)行相應(yīng)的測(cè)試任務(wù),從而執(zhí)行相應(yīng)的腳本進(jìn)行測(cè)試,并將測(cè)試結(jié)果報(bào)告管理端。 1.管理端 管理端主要完成以下任務(wù):運(yùn)行控制的決策系統(tǒng),負(fù)責(zé)建立并維護(hù)運(yùn)行隊(duì)列,控制運(yùn)行策略和信號(hào)燈;在管理端還必須維護(hù)一個(gè)測(cè)試任務(wù)的隊(duì)列,每個(gè)測(cè)試任務(wù)的開(kāi)始執(zhí)行的時(shí)間可能不同,狀態(tài)也不一樣,管理端根據(jù)這些標(biāo)志對(duì)其進(jìn)行控制。 2.執(zhí)行端 執(zhí)行端根據(jù)管理端的決策系統(tǒng),來(lái)執(zhí)行運(yùn)行隊(duì)列中的測(cè)試腳本,其中運(yùn)行控制的執(zhí)行系統(tǒng),負(fù)責(zé)分配測(cè)試腳本,并按照指定策略啟動(dòng)腳本等也是執(zhí)行端的功能。
二、自動(dòng)化測(cè)試腳本開(kāi)發(fā) 1.測(cè)試驅(qū)動(dòng) 測(cè)試驅(qū)動(dòng)是一個(gè)自動(dòng)化測(cè)試框架的核心,其決定整個(gè)自動(dòng)化腳本設(shè)計(jì)。當(dāng)前比較流行的測(cè)試驅(qū)動(dòng)有數(shù)據(jù)驅(qū)動(dòng)和關(guān)鍵字驅(qū)動(dòng),使用不同的測(cè)試驅(qū)動(dòng),關(guān)系到腳本重用率,以及后期的可維護(hù)性。 (1)數(shù)據(jù)驅(qū)動(dòng) 基于數(shù)據(jù)驅(qū)動(dòng)的自動(dòng)化測(cè)試框架是指測(cè)試驅(qū)動(dòng)引擎從數(shù)據(jù)源獲取測(cè)試數(shù)據(jù),然后將將數(shù)據(jù)以參數(shù)的形式傳遞給測(cè)試腳本,最后通過(guò)執(zhí)行測(cè)試腳本,驗(yàn)證測(cè)試結(jié)果,并將測(cè)試結(jié)果輸出。一般數(shù)據(jù)源與測(cè)試結(jié)果存儲(chǔ)在、 Excel文件、Csv文件等。數(shù)據(jù)驅(qū)動(dòng)主要優(yōu)點(diǎn)是:測(cè)試腳本與測(cè)試數(shù)據(jù)的分離,當(dāng)應(yīng)用功能變更時(shí),只需要修改該功能部分的腳本;執(zhí)行測(cè)試用例的人員不需 要了解測(cè)試腳本的實(shí)現(xiàn),只關(guān)注測(cè)試數(shù)據(jù)表與測(cè)試報(bào)告表。而且測(cè)試腳本的執(zhí)行是離散的,即非線性的,測(cè)試人員可以有選擇的執(zhí)行測(cè)試用例。數(shù)據(jù)庫(kù) (2)關(guān)鍵字驅(qū)動(dòng) 關(guān)鍵字驅(qū)動(dòng)的自動(dòng)化測(cè)試框架是在數(shù)據(jù)驅(qū)動(dòng)的基礎(chǔ)上進(jìn)行改進(jìn),數(shù)據(jù)源里包含的不只是數(shù)據(jù),還有關(guān)鍵字,一個(gè)測(cè)試用例由一個(gè)或若干個(gè)關(guān)鍵字組成。每個(gè)關(guān)鍵字對(duì)應(yīng)個(gè)不同的業(yè)務(wù)邏輯,例如,登錄、注銷等。數(shù)據(jù)表通過(guò)關(guān)鍵字,查找映射表,執(zhí)行相關(guān)的腳本。 (3)驅(qū)動(dòng)引擎 驅(qū)動(dòng)引擎是對(duì)數(shù)據(jù)表的數(shù)據(jù)進(jìn)行分析,根據(jù)不同的測(cè)試數(shù)據(jù)或關(guān)鍵字調(diào)用相應(yīng)測(cè)試腳本。驅(qū)動(dòng)引擎還需完成一些測(cè)試環(huán)境初始化、全局參數(shù)設(shè)置、測(cè)試用例是否執(zhí)行的判斷,以及測(cè)試報(bào)告的處理等。
2.測(cè)試腳本開(kāi)發(fā) 測(cè)試腳本開(kāi)發(fā)必須通過(guò)詳細(xì)、合理的設(shè)計(jì),要對(duì)腳本代碼進(jìn)行劃分,腳本文件或數(shù)據(jù)文件分層管理。這樣有利于自動(dòng)化腳本的開(kāi)發(fā)與維護(hù),從而節(jié)省自動(dòng)化測(cè)試的投入成本,也使得不同測(cè)試人員或開(kāi)發(fā)人員可以協(xié)調(diào)開(kāi)發(fā)腳本。 (1)腳本規(guī)范 測(cè)試腳本的開(kāi)發(fā)也要遵循編程的規(guī)則與標(biāo)準(zhǔn),應(yīng)該統(tǒng)一規(guī)劃,所有開(kāi)發(fā)腳本的人員按照統(tǒng)一的 規(guī)定進(jìn)行編碼。除了編程本身規(guī)范,還考慮測(cè)試用例與庫(kù)函數(shù)名的命名,測(cè)試用例需要加上項(xiàng)目名稱,但公共的庫(kù)函數(shù)卻不需要,因?yàn)楣驳膸?kù)函數(shù)是獨(dú)立于項(xiàng)目 的。例如,項(xiàng)目M4.1客戶端登錄測(cè)試用例可命名為:TC_M4.1_client_login;讀取excel表的函數(shù)可命名 為:read_excel。
(2)腳本劃分 測(cè)試腳本的劃分,如何定義公共的腳本庫(kù),不同模塊特有的腳本庫(kù),以及直接構(gòu)建測(cè)試用例的腳本。為了方便以后腳本的維護(hù)問(wèn)題,必須對(duì)腳本進(jìn)行有效的分層,同時(shí),提高了腳本的復(fù)用率。 ① 公共類庫(kù) 公共類庫(kù)包括所有模塊都可能用戶的操作方法,其抽象了不同模塊同性,比如操作excel表的方法、讀寫測(cè)試報(bào)告、驅(qū)動(dòng)引擎等。 ② 模塊特定類庫(kù) 在模塊內(nèi)部將可以為該模塊共享使用的方法抽象出來(lái),作為一個(gè)公共類。它可以是一個(gè)單的邏輯操作,也比較獨(dú)立。比如客戶端登錄操作、控制臺(tái)登錄操作、控制臺(tái)更新操作等。 ③ 測(cè)試用例腳本 測(cè)試用例腳在最上層,它根據(jù)測(cè)試點(diǎn)進(jìn)行設(shè)計(jì),面向具體的應(yīng)用。它可直接調(diào)用公共類庫(kù)或模塊特定類庫(kù)的方法,即調(diào)單個(gè)邏輯操作。它是單個(gè)或多個(gè)邏輯操作的集合,即一個(gè)測(cè)試用戶腳本。比如,在客戶端訪問(wèn)資源的測(cè)試用例,它調(diào)用了客戶端登錄方法和訪問(wèn)資源方法。
(3)測(cè)試用例 ① 測(cè)試用例粒度 測(cè)試用例的粒度決定了用例模型級(jí)的復(fù)雜度,也決定了每一個(gè)用例內(nèi)部的復(fù)雜度。應(yīng)該根據(jù)每個(gè)系 統(tǒng)的具體情況來(lái)把握各個(gè)層次的復(fù)雜度,在盡可能保證整個(gè)用例模型的易理解性前提下決定用例的大小和數(shù)目。用例不能太大,這樣一旦出執(zhí)行測(cè)試用例出錯(cuò),不利 于定位問(wèn)題;但也不能太細(xì)化,太小則不方便執(zhí)行。
② 測(cè)試用例與測(cè)試套件 一個(gè)大型的項(xiàng)目有許功能模塊,必然會(huì)產(chǎn)生大量的測(cè)試用例,怎樣才能有效的管理這些測(cè)試用例呢?這就需要?jiǎng)?chuàng)建測(cè)試套件,通過(guò)測(cè)試套件將測(cè)試某一個(gè)模塊或功能點(diǎn)的測(cè)試用例集合起來(lái),方便運(yùn)行與管理。例如,只驗(yàn)證“用戶管理”模塊功能,則只需要執(zhí)行“用戶管理”模塊套件即可。
(4)腳本與html標(biāo)記分離 腳本與html標(biāo)記分離使得在一定程度上腳本獨(dú)立于WEB頁(yè)面,腳本沒(méi)有直接的處理html 標(biāo)記,腳本代碼通過(guò)html映射表獲取賦有WEB頁(yè)面標(biāo)記值的變量。WEB頁(yè)面標(biāo)記包括html標(biāo)記和頁(yè)面內(nèi)容(文本或圖片等,這些都可能是判斷用例是否 成功能的檢查點(diǎn)),當(dāng)WEB頁(yè)面標(biāo)記變更后,不需要在范圍的修改腳本。
(5)選擇適合自動(dòng)化測(cè)試的用例 在編寫自動(dòng)化測(cè)試腳本前,首先要確定哪些用例適合做自動(dòng)化測(cè)試,因?yàn)樽曰瘻y(cè)試不像手工測(cè)試,它不能那么智能,也沒(méi)有發(fā)發(fā)散思維。 通常適合自動(dòng)化測(cè)試的用例有: 產(chǎn)品型項(xiàng)目。產(chǎn)品型的項(xiàng)目,新版本是在舊版本的基礎(chǔ)上進(jìn)行改進(jìn),功能變不大的項(xiàng)目,但項(xiàng)目的新老功能都必須重復(fù)的測(cè)試。 回歸測(cè)試?;貧w測(cè)試是自動(dòng)化測(cè)試的強(qiáng)項(xiàng),它能夠很好的驗(yàn)證你是否引入了新的缺陷,老的缺陷是否修改過(guò)來(lái)了。在某種程度上可以把自動(dòng)化測(cè)試工具叫做回歸測(cè)試工具。 機(jī)械并頻繁的測(cè)試。每次需要輸入相同、大量的一些數(shù)據(jù),并且在一個(gè)項(xiàng)目中運(yùn)行的周期比較長(zhǎng)。 有一些交互性比較強(qiáng),需要人工干預(yù)的操作,就不要指望通過(guò)自動(dòng)化測(cè)試來(lái)完成了。例如,用戶使用DKEY登錄 |
|
|