一種軟件應(yīng)用自動(dòng)化測(cè)試方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種軟件測(cè)試方法,尤其涉及一種軟件應(yīng)用自動(dòng)化測(cè)試方法。
【背景技術(shù)】
[0002] 隨著自動(dòng)化測(cè)試的日益普及,各種自動(dòng)化測(cè)試工具盛行,如何能快速、便捷地實(shí)施 自動(dòng)化項(xiàng)目,提高自動(dòng)化項(xiàng)目的水平和質(zhì)量成了客戶(hù)的關(guān)注焦點(diǎn)。通過(guò)對(duì)測(cè)試技術(shù)、經(jīng)驗(yàn)的 累積,得出基于各種自動(dòng)化測(cè)試工具的函數(shù),將通用、個(gè)性化和異常處理機(jī)制等可復(fù)用的函 數(shù)封裝成基礎(chǔ)函數(shù)集,再按功能組合函數(shù)形成測(cè)試框架。有了這些測(cè)試框架,使測(cè)試經(jīng)驗(yàn)得 到傳承,提高了開(kāi)發(fā)效率。但不同測(cè)試工具、不同平臺(tái),甚至不同操作系統(tǒng)上的框架都有很 大區(qū)別,導(dǎo)致測(cè)試工具更新或轉(zhuǎn)換的時(shí)候都需要重新開(kāi)發(fā)框架,出現(xiàn)測(cè)試資產(chǎn)流失,制約或 減緩了測(cè)試技術(shù)的發(fā)展。
[0003] 目前自動(dòng)化測(cè)試框架主要有以下幾種:
[0004] 一、基礎(chǔ)功能測(cè)試框架:自動(dòng)化測(cè)試框架概念萌芽階段的產(chǎn)物。典型例子包括:初 始化測(cè)試環(huán)境、初始化測(cè)試數(shù)據(jù)、到指定文件位置收集日志等腳本命令。其目的主要是提高 測(cè)試執(zhí)行過(guò)程的效率和準(zhǔn)確性。
[0005] 二、測(cè)試工具定制型:自動(dòng)化測(cè)試框架中,最常見(jiàn)、最普遍使用的類(lèi)型。以某種測(cè)試 工具為基礎(chǔ),根據(jù)被測(cè)系統(tǒng)的操作流程做函數(shù)封裝,按被測(cè)試系統(tǒng)使用的語(yǔ)言、代碼特性?xún)?yōu) 化測(cè)試工具的常用函數(shù),再加以封裝,另外,還有部分個(gè)性化定制的函數(shù)、框架流程、日志輸 出格式等。
[0006] 三、通用測(cè)試框架:為滿(mǎn)足測(cè)試項(xiàng)目的多元化需求和適應(yīng)被測(cè)系統(tǒng)的技術(shù)發(fā)展,需 要適當(dāng)利用不同測(cè)試工具的優(yōu)勢(shì)和權(quán)衡測(cè)試成本,衍生出一種通用測(cè)試框架。通用測(cè)試框 架通過(guò)調(diào)用不同測(cè)試工具的應(yīng)用程序接口(API),封裝成內(nèi)部函數(shù)。在執(zhí)行測(cè)試時(shí),通用測(cè) 試框架通常不會(huì)啟動(dòng)整個(gè)測(cè)試工具,而是調(diào)用其執(zhí)行引擎,執(zhí)行它內(nèi)部函數(shù)解釋出來(lái)的語(yǔ) 句。測(cè)試開(kāi)發(fā)人員不需要知道測(cè)試工具的編寫(xiě)語(yǔ)言,而是直接使用通用測(cè)試框架的函數(shù)開(kāi) 發(fā)腳本。
[0007] 四、分布式自動(dòng)化測(cè)試框架:隨著被測(cè)系統(tǒng)的復(fù)雜度、功能的多元化發(fā)展,需要測(cè) 試的功能點(diǎn)、模塊越來(lái)越多,但預(yù)留測(cè)試的時(shí)間卻越來(lái)越短。分布式測(cè)試能很好地解決測(cè) 試時(shí)間不足的問(wèn)題,理論上只要機(jī)器資源充沛的情況下,可以無(wú)限地增加測(cè)試終端,越多終 端攤分用例,所需要的時(shí)間越少。
[0008] 目前軟件應(yīng)用自動(dòng)化測(cè)試框架有如下特點(diǎn):工具依賴(lài)性強(qiáng)、設(shè)計(jì)思路多樣、功能實(shí) 現(xiàn)重復(fù)、缺乏提升測(cè)試效率的方案。在軟件應(yīng)用測(cè)試過(guò)程中都存在變更迭代頻繁、測(cè)試時(shí)間 短、覆蓋面廣,如何確保軟件應(yīng)用測(cè)試質(zhì)量、提升測(cè)試效率、減少投入資源,規(guī)避系統(tǒng)上線風(fēng) 險(xiǎn),是軟件應(yīng)用自動(dòng)化測(cè)試框架必須面對(duì)和完善的問(wèn)題。
【發(fā)明內(nèi)容】
[0009] 本發(fā)明所要解決的技術(shù)問(wèn)題是提供一種軟件應(yīng)用自動(dòng)化測(cè)試方法,能夠大大降低 測(cè)試工具、操作系統(tǒng)的偶合度,提高測(cè)試框架的可復(fù)用性,大幅提升測(cè)試效率并降低測(cè)試風(fēng) 險(xiǎn)。
[0010] 本發(fā)明為解決上述技術(shù)問(wèn)題而采用的技術(shù)方案是提供一種軟件應(yīng)用自動(dòng)化測(cè)試 方法,包括如下步驟:a)獲取基于各種自動(dòng)化測(cè)試工具的可復(fù)用函數(shù)和/或腳本;b)對(duì)獲 取的各種自動(dòng)化測(cè)試工具的腳本和/或函數(shù)利用關(guān)鍵字進(jìn)行映射,并封裝成框架語(yǔ)言;c) 采用所述框架語(yǔ)言編寫(xiě)執(zhí)行腳本;d)使用分布式執(zhí)行機(jī)制,將所述執(zhí)行腳本分發(fā)到多個(gè)測(cè) 試引擎上執(zhí)行。
[0011] 上述的軟件應(yīng)用自動(dòng)化測(cè)試方法,其中,所述步驟b)的映射過(guò)程如下:抽取各種 自動(dòng)化測(cè)試工具的可復(fù)用函數(shù)/腳本的控件對(duì)象、操作命令和命令參數(shù);將控件對(duì)象的操 作命令封裝成函數(shù),并對(duì)應(yīng)一個(gè)框架語(yǔ)言指定關(guān)鍵字的映射;將各種測(cè)試工具的函數(shù)/腳 本和所述框架語(yǔ)言中的關(guān)鍵字的對(duì)應(yīng)關(guān)系保存到映射規(guī)則數(shù)據(jù)庫(kù)中。
[0012] 上述的軟件應(yīng)用自動(dòng)化測(cè)試方法,其中,所述步驟c)的框架語(yǔ)言采用關(guān)鍵字編寫(xiě) 執(zhí)行腳本,所述步驟d)根據(jù)映射規(guī)則數(shù)據(jù)庫(kù)將框架語(yǔ)言編寫(xiě)的執(zhí)行腳本轉(zhuǎn)換成指定工具 代碼,發(fā)送到指定執(zhí)行引擎并執(zhí)行代碼。
[0013] 上述的軟件應(yīng)用自動(dòng)化測(cè)試方法,其中,所述步驟d)通過(guò)分配權(quán)重,監(jiān)控測(cè)試引 擎的執(zhí)行狀態(tài)來(lái)利用空閑資源,并按照設(shè)定場(chǎng)景次序執(zhí)行測(cè)試案例,所述測(cè)試案例由框架 語(yǔ)言編寫(xiě)的執(zhí)行腳本組成。
[0014] 上述的軟件應(yīng)用自動(dòng)化測(cè)試方法,其中,所述測(cè)試案例根據(jù)不同屬性和設(shè)定場(chǎng)景 分成具有不同權(quán)重的測(cè)試套,所述測(cè)試案例的分配過(guò)程如下:收集分配的測(cè)試引擎?zhèn)€數(shù)及 配置信息,并檢測(cè)收集到的測(cè)試引擎是否可用;根據(jù)測(cè)試套權(quán)重分配測(cè)試任務(wù)給可用的測(cè) 試引擎,并根據(jù)測(cè)試任務(wù)執(zhí)行情況實(shí)時(shí)調(diào)整測(cè)試引擎的可用狀態(tài);輪詢(xún)測(cè)試引擎可用狀 態(tài),如果可用則繼續(xù)分派未執(zhí)行測(cè)試套,直到測(cè)試套分派完畢。
[0015] 上述的軟件應(yīng)用自動(dòng)化測(cè)試方法,其中,所述步驟d)還包括設(shè)置重跑次數(shù)讓測(cè)試 過(guò)程自動(dòng)重跑,所述重跑過(guò)程如下:記錄失敗案例及測(cè)試套;根據(jù)失敗案例所屬測(cè)試套,重 新組合失敗案例形成新的測(cè)試套并分配權(quán)重;根據(jù)失敗測(cè)試套的權(quán)重分派給測(cè)試引擎執(zhí)行 測(cè)試。
[0016] 上述的軟件應(yīng)用自動(dòng)化測(cè)試方法,其中,所述步驟d)通過(guò)設(shè)置代理服務(wù)端來(lái)檢測(cè) 收集到的測(cè)試引擎是否可用,每個(gè)測(cè)試引擎上設(shè)置代理客戶(hù)端,所述代理客戶(hù)端監(jiān)控測(cè)試 任務(wù)的執(zhí)行狀態(tài),執(zhí)行來(lái)自代理服務(wù)端的指令,并完成與代理服務(wù)端的文件傳輸。
[0017] 本發(fā)明對(duì)比現(xiàn)有技術(shù)有如下的有益效果:本發(fā)明提供的軟件應(yīng)用自動(dòng)化測(cè)試方 法,通過(guò)關(guān)鍵字映射方法,可以快速方便地整合多種主流測(cè)試工具軟件的函數(shù)/腳本,形成 直觀、形象的框架語(yǔ)言,能夠大大降低測(cè)試工具、操作系統(tǒng)的偶合度,提高測(cè)試框架的可復(fù) 用性,利用分布式執(zhí)行機(jī)制,合理地利用空閑資源,大幅提升測(cè)試效率并降低測(cè)試風(fēng)險(xiǎn)。
【附圖說(shuō)明】
[0018] 圖1為本發(fā)明軟件應(yīng)用自動(dòng)化測(cè)試框架架構(gòu)示意圖;
[0019] 圖2為本發(fā)明軟件應(yīng)用自動(dòng)化測(cè)試流程示意圖;
[0020] 圖3為本發(fā)明軟件應(yīng)用自動(dòng)化測(cè)試腳本與關(guān)鍵字映射關(guān)系示意圖;
[0021] 圖4為本發(fā)明軟件應(yīng)用自動(dòng)化測(cè)試腳本與關(guān)鍵字映射實(shí)現(xiàn)示意圖;
[0022] 圖5為本發(fā)明通過(guò)部署代理端傳輸文件及監(jiān)控測(cè)試任務(wù)的執(zhí)行狀態(tài)示意圖;
[0023] 圖6為本發(fā)明利用套件設(shè)定場(chǎng)景案例權(quán)重及執(zhí)行次序示意圖;
[0024] 圖7為本發(fā)明測(cè)試案例分配執(zhí)行示意圖;
[0025] 圖8為本發(fā)明分布式執(zhí)行測(cè)試任務(wù)流程示意圖。
【具體實(shí)施方式】
[0026] 下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步的描述。
[0027] 現(xiàn)有的自動(dòng)化測(cè)試框架是一個(gè)從無(wú)到有、從專(zhuān)一定制到多元化整合,再到效率大 幅提升的發(fā)展過(guò)程;是以累積自動(dòng)化測(cè)試經(jīng)驗(yàn),提高測(cè)試工具對(duì)被測(cè)系統(tǒng)適應(yīng)度,改進(jìn)自動(dòng) 化測(cè)試程度,提高效率和降低測(cè)試風(fēng)險(xiǎn)為目標(biāo)出發(fā)的。對(duì)被測(cè)系統(tǒng)的適應(yīng)性、測(cè)試時(shí)間的 要求都有很大進(jìn)步。仔細(xì)分析現(xiàn)有的軟件應(yīng)用自動(dòng)化測(cè)試框架及其發(fā)展變化,發(fā)現(xiàn)如下問(wèn) 題:
[0028] 1)依賴(lài)性強(qiáng)。大部分的軟件應(yīng)用自動(dòng)化測(cè)試框架都是基于某種特定的測(cè)試工具軟 件為基礎(chǔ)設(shè)計(jì),而測(cè)試工具軟件又必須依賴(lài)于指定的操作系統(tǒng)及相關(guān)運(yùn)行環(huán)境。這種多重 的依賴(lài)關(guān)系制約了軟件應(yīng)用測(cè)試的發(fā)展,而軟件應(yīng)用所使用的新技術(shù)、新設(shè)計(jì)卻在不斷更 新,導(dǎo)致測(cè)試技術(shù)嚴(yán)重滯后于軟件開(kāi)發(fā)。
[0029] 2)思路繁多,功能重復(fù)。在軟件應(yīng)用測(cè)試的需求、測(cè)試行業(yè)前景的引導(dǎo)下,催生了 各種各樣的軟件應(yīng)用自動(dòng)化測(cè)試框架。基于不同的出發(fā)點(diǎn)和思路下,測(cè)試框架的功能多樣 化,但功能重復(fù)難以統(tǒng)一利用,就算是融合幾個(gè)框架都需要花費(fèi)大量的人力物力去整理資 源。
[0030] 3)自動(dòng)化程度低。盡管根據(jù)各自的需求和測(cè)試工具軟件的技術(shù)特點(diǎn)開(kāi)發(fā)出多種多 樣的測(cè)試框架,但框架間缺乏有效的整體設(shè)計(jì)思路,無(wú)法融合在一起使用,更大限度地提升 自動(dòng)化測(cè)試效率,造成在測(cè)試過(guò)程中需要手