一種數(shù)據(jù)驅(qū)動(dòng)的分層自動(dòng)化測(cè)試系統(tǒng)和方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于軟件自動(dòng)化測(cè)試技術(shù)領(lǐng)域,具體涉及一種數(shù)據(jù)驅(qū)動(dòng)的分層自動(dòng)化測(cè)試 系統(tǒng)和方法。
【背景技術(shù)】
[0002] 作為提高測(cè)試工作效率和測(cè)試精度的有效技術(shù)手段,自動(dòng)化測(cè)試技術(shù)應(yīng)用越來越 廣泛,作為自動(dòng)化測(cè)試開展的必要條件,測(cè)試工具和框架的設(shè)計(jì)方法尤其重要。目前通常 用的自動(dòng)化測(cè)試框架一般不兼具高效、易用且通用性強(qiáng)的特征,它們通常具有如下部分缺 占 .
[0003] a、采用先對(duì)測(cè)試操作錄制,然后回放模式,此模式工作效率低,對(duì)被測(cè)系統(tǒng)的變動(dòng) 適應(yīng)性很弱,錄制的測(cè)試腳本容易失效,修改量大,且只能用于回歸測(cè)試。
[0004] b、即便不采用錄制回放模式,但仍需要進(jìn)行較多的開發(fā)工作,測(cè)試過程中需要開 發(fā)較多的測(cè)試代碼,對(duì)測(cè)試人員技能要求高,且腳本維護(hù)成本高。
[0005] c、通用性不強(qiáng),一個(gè)系統(tǒng)很難同時(shí)涵蓋Web UI、Web service、Server (后臺(tái)服務(wù))、 DB(數(shù)據(jù)庫)類型的測(cè)試需求。
[0006] d、系統(tǒng)對(duì)測(cè)試用例覆蓋率不高,不能大比例地將測(cè)試用例自動(dòng)化執(zhí)行。
[0007] e、若被測(cè)對(duì)象跟別的系統(tǒng)存在數(shù)據(jù)依賴關(guān)系,很難操控多個(gè)系統(tǒng)進(jìn)行數(shù)據(jù)交互從 而實(shí)施自動(dòng)化測(cè)試。
【發(fā)明內(nèi)容】
[0008] 本發(fā)明針對(duì)上述問題,提供一種基于數(shù)據(jù)驅(qū)動(dòng)的對(duì)被測(cè)系統(tǒng)進(jìn)行分層自動(dòng)化測(cè)試 的系統(tǒng)和方法,通過數(shù)據(jù)驅(qū)動(dòng)系統(tǒng)連續(xù)運(yùn)行,將被測(cè)系統(tǒng)分層進(jìn)行自動(dòng)化測(cè)試。
[0009] 為實(shí)現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案:
[0010] 一種數(shù)據(jù)驅(qū)動(dòng)的分層自動(dòng)化測(cè)試系統(tǒng),其特征在于,包括:
[0011] 配置文件管理模塊,用于管理配置文件,在配置文件中進(jìn)行測(cè)試相關(guān)配置;
[0012] 測(cè)試用例管理模塊,用于管理測(cè)試用例描述文件;
[0013] 測(cè)試數(shù)據(jù)管理模塊,用于管理每個(gè)測(cè)試用例對(duì)應(yīng)的數(shù)據(jù)文件路徑下的數(shù)據(jù)文件, 包括執(zhí)行索引文件和補(bǔ)充數(shù)據(jù)文件;所述執(zhí)行索引文件中包含變量定義、用例操作步驟的 描述、每步驟所需的基本輸入數(shù)據(jù)以及對(duì)需要的補(bǔ)充數(shù)據(jù)文件的索引;所述補(bǔ)充數(shù)據(jù)文件 中包含每步驟執(zhí)行所需的補(bǔ)充性輸入數(shù)據(jù);
[0014] 分層動(dòng)作關(guān)鍵字實(shí)現(xiàn)模塊,用于將被測(cè)系統(tǒng)根據(jù)其功能結(jié)構(gòu)進(jìn)行分層,根據(jù)測(cè)試 需要在每一層定義若干測(cè)試動(dòng)作關(guān)鍵字,并對(duì)每個(gè)動(dòng)作關(guān)鍵字進(jìn)行測(cè)試動(dòng)作實(shí)現(xiàn);
[0015] 控制模塊,連接上述各模塊,用于進(jìn)行測(cè)試執(zhí)行控制,首先依次讀取每個(gè)待執(zhí)行的 測(cè)試用例,獲取其數(shù)據(jù)存放路徑,在存放路徑中進(jìn)行變量替換,然后順序執(zhí)行用例執(zhí)行索引 文件的每個(gè)測(cè)試步驟,根據(jù)動(dòng)作關(guān)鍵字執(zhí)行與被測(cè)系統(tǒng)的交互,根據(jù)交互結(jié)果判定用例執(zhí) 行的正確性;執(zhí)行過程中若需要額外輸入數(shù)據(jù),則通過執(zhí)行索引文件描述可尋找到相應(yīng)輸 入文件,獲取輸入。
[0016] 進(jìn)一步地,所述分層動(dòng)作關(guān)鍵字實(shí)現(xiàn)模塊將被測(cè)系統(tǒng)分為Web UI、Web service、 Server、數(shù)據(jù)庫層中的一層或多層,并在每層定義和實(shí)現(xiàn)相應(yīng)的動(dòng)作關(guān)鍵字。
[0017] 進(jìn)一步地,所述數(shù)據(jù)驅(qū)動(dòng)的分層自動(dòng)化測(cè)試系統(tǒng)還包括如下模塊:
[0018] 測(cè)試報(bào)告生成和日志模塊,用于在用例執(zhí)行過程中記錄日志,并更新測(cè)試報(bào)告中 用例相應(yīng)的測(cè)試結(jié)果狀態(tài),全部用例執(zhí)行完畢后完成測(cè)試報(bào)告;
[0019] 測(cè)試報(bào)告發(fā)送模塊,用于根據(jù)系統(tǒng)配置選擇是否發(fā)送測(cè)試報(bào)告和測(cè)試日志等文件 到相關(guān)郵箱。
[0020] 進(jìn)一步地,所述在配置文件進(jìn)行的測(cè)試相關(guān)配置,根據(jù)被測(cè)對(duì)象不同,可能包括: 測(cè)試用例文件名稱和目錄,被測(cè)系統(tǒng)名稱、IP地址、端口,服務(wù)URL,數(shù)據(jù)庫描述URL,測(cè)試報(bào) 告接收者郵箱。
[0021] 進(jìn)一步地,所述測(cè)試用例描述文件包括每個(gè)用例的描述,是否執(zhí)行的設(shè)置,以及用 例對(duì)應(yīng)的測(cè)試所需數(shù)據(jù)文件路徑。
[0022] 一種采用上述系統(tǒng)數(shù)據(jù)驅(qū)動(dòng)的分層自動(dòng)化測(cè)試方法,其步驟包括:
[0023] 1)將被測(cè)系統(tǒng)根據(jù)其功能結(jié)構(gòu)進(jìn)行分層,根據(jù)測(cè)試需要在每一層定義若干測(cè)試動(dòng) 作關(guān)鍵字,并對(duì)每個(gè)動(dòng)作關(guān)鍵字進(jìn)行測(cè)試動(dòng)作實(shí)現(xiàn);
[0024] 2)在配置文件中進(jìn)行測(cè)試相關(guān)配置;
[0025] 3)在測(cè)試用例文件中編寫測(cè)試用例,每個(gè)用例對(duì)應(yīng)表明其相應(yīng)的測(cè)試數(shù)據(jù)存放路 徑;
[0026] 4)在每個(gè)測(cè)試用例數(shù)據(jù)存放路徑下,建立每個(gè)用例相應(yīng)的用例執(zhí)行索引文件,其 內(nèi)容為此用例測(cè)試步驟的具體描述,其中包括此次測(cè)試所涉及的動(dòng)作關(guān)鍵字和所需基本數(shù) 據(jù),以及所需要的補(bǔ)充數(shù)據(jù)存放文件路徑和名稱;
[0027] 5)執(zhí)行時(shí),首先依次讀取每個(gè)待執(zhí)行的測(cè)試用例,獲取其數(shù)據(jù)存放路徑,在存放路 徑中進(jìn)行變量替換,然后順序執(zhí)行用例執(zhí)行索引文件的每個(gè)測(cè)試步驟,根據(jù)動(dòng)作關(guān)鍵字執(zhí) 行與被測(cè)系統(tǒng)的交互,根據(jù)交互結(jié)果判定用例執(zhí)行的正確性。
[0028] 進(jìn)一步地,步驟1)將被測(cè)系統(tǒng)分為Web UI、Web service、Server、數(shù)據(jù)庫層中的 一層或多層。
[0029] 進(jìn)一步地,步驟5)在執(zhí)行用例執(zhí)行索引文件的每個(gè)測(cè)試步驟過程中,將測(cè)試結(jié)果 更新到測(cè)試報(bào)告文件中,全部待執(zhí)行測(cè)試用例執(zhí)行完畢后生成測(cè)試報(bào)告,并根據(jù)配置發(fā)送 測(cè)試報(bào)告及必要的測(cè)試日志等文件。
[0030] 本發(fā)明的主要特點(diǎn)是:1)測(cè)試用例和測(cè)試所需數(shù)據(jù)共采用三級(jí)文件的索引方式 管理:一級(jí):測(cè)試用例;二級(jí):測(cè)試數(shù)據(jù)之執(zhí)行索引文件,含測(cè)試步驟描述和執(zhí)行所需部分 基本數(shù)據(jù);三級(jí):測(cè)試數(shù)據(jù)之步驟執(zhí)行所需補(bǔ)充數(shù)據(jù)文件,可通過執(zhí)行索引文件找到;邏輯 清楚,方便維護(hù);2)將被測(cè)系統(tǒng)劃分映射到Web UI、Web service、Server、數(shù)據(jù)庫這四個(gè)層 次,分別實(shí)現(xiàn)動(dòng)作關(guān)鍵字行為,增加了自動(dòng)化測(cè)試覆蓋范圍,提高了測(cè)試效率;3)測(cè)試數(shù)據(jù) 中支持變量替換,便于數(shù)據(jù)維護(hù)和重用;4)支持測(cè)試過程中只需要編寫數(shù)據(jù)作為系統(tǒng)輸入 便可實(shí)現(xiàn)自動(dòng)化測(cè)試,并依據(jù)數(shù)據(jù)進(jìn)行測(cè)試結(jié)果自動(dòng)校驗(yàn)。
[0031] 與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果如下:
[0032] 1)系統(tǒng)實(shí)現(xiàn)后,測(cè)試過程中測(cè)試人員無需編寫任何代碼,只需要準(zhǔn)備測(cè)試數(shù)據(jù),用 數(shù)據(jù)驅(qū)動(dòng)系統(tǒng)測(cè)試不同的業(yè)務(wù)邏輯。
[0033] 2)可以同時(shí)測(cè)試一個(gè)系統(tǒng)的不同層次或多個(gè)系統(tǒng)的多個(gè)層次功能。被測(cè)系統(tǒng)層次 間有執(zhí)行順序要求或交互要求也可以通過組合或變換動(dòng)作關(guān)鍵字順序來實(shí)現(xiàn)。
[0034] 3)經(jīng)過Web UI、Web service、Server、數(shù)據(jù)庫這四個(gè)層次的劃分并分別設(shè)計(jì)動(dòng)作 關(guān)鍵字后,可以涵蓋大多數(shù)被測(cè)軟件系統(tǒng),因?yàn)榇蠖鄶?shù)系統(tǒng)可以映射到以上四層中的一層 或多層,從而提高測(cè)試用例自動(dòng)化執(zhí)行率。
[0035] 4)系統(tǒng)可以擴(kuò)展,若四個(gè)層次對(duì)應(yīng)的動(dòng)作關(guān)鍵字無法滿足測(cè)試自動(dòng)化需求,可以