摘要:軟件測試,特別是用戶界面中的回歸測試需要大量重復(fù)的手工勞動。AutoVue產(chǎn)品作為一款支持多種格式文件的軟件,其測試用例具有特殊性。為了提高測試效率,提出一種基于SilkTest工具的自動化測試框架。在可行性分析的基礎(chǔ)上,采用數(shù)據(jù)驅(qū)動和關(guān)鍵字驅(qū)動的混合模型設(shè)計,以XML文件存儲測試信息,支持AutoVue產(chǎn)品的多個版本。從框架平臺運行環(huán)境、框架測試流程、測試用時對比等方面進(jìn)行了闡述。 框架具有可維護(hù)、用例運行執(zhí)行范圍選擇方便的特點,對其它應(yīng)用也有擴展性,大幅度提高了AutoVue產(chǎn)品的測試效率。
關(guān)鍵詞:自動化測試框架;SilkTest工具;用戶界面測試;AutoVue
DOIDOI:10.11907/rjdk.151171
中圖分類號:TP319
文獻(xiàn)標(biāo)識碼:A 文章編號:16727800(2015)006010704
基金項目基金項目:
作者簡介作者簡介:朱欣(1986-),女,江蘇蘇州人,碩士,蘇州市職業(yè)大學(xué)信息中心助理工程師,研究方向為軟件測試、數(shù)據(jù)分析。
0 引言
軟件測試是軟件開發(fā)過程中的重要環(huán)節(jié)。為了減少人力成本,自動化測試框架應(yīng)運而生并日益受到重視。最早的錄制回放模式由于會產(chǎn)生冗余代碼,且腳本過度依賴軟件界面而被淘汰。目前的自動化框架一般采用數(shù)據(jù)驅(qū)動模式[12]、關(guān)鍵字驅(qū)動模式[34]、混合模式等。文獻(xiàn)[1]基于LIW的測試需求分析提出了一種數(shù)據(jù)驅(qū)動的分布式測試框架,并在此框架基礎(chǔ)上設(shè)計了一套自動化測試系統(tǒng)(DMATS),實際應(yīng)用證實了此框架的可行性。文獻(xiàn)[2]給出了一種基于數(shù)據(jù)驅(qū)動的Web測試框架,并設(shè)計了基于XML語言的自動化測試腳本,但未從具體應(yīng)用上證實此框架的優(yōu)勢。文獻(xiàn)[3]將框架應(yīng)用于Linux系統(tǒng)上,并以Gedit為測試應(yīng)用,但沒有在實際開發(fā)中應(yīng)用。界面變動、框架如何維護(hù)等在文獻(xiàn)中都未提及。文獻(xiàn)[5]針對句柄識別界面的測試方法缺乏穩(wěn)定性和通用性,通過引入可擴展標(biāo)記語言(XML),提出了一種基于XML對UI控件識別并測試的改進(jìn)方法,從而可以識別多語言應(yīng)用。文獻(xiàn)[5]的缺點在于:所有的控件信息都存于XML文件,而對于一個測試用例,往往包含多個步驟、多個界面,XML文件的信息量會很大,且文獻(xiàn)對于測試結(jié)果的分析時間以及軟件缺陷如何快速定位沒有描述。該框架只針對產(chǎn)品的界面測試,并不針對AutoCAD應(yīng)用的功能測試。本文提出了針對應(yīng)用產(chǎn)品的功能測試(包括界面測試)框架。基于可行性分析,根據(jù)AutoVue產(chǎn)品特點,設(shè)計出一套基于SilkTest工具可復(fù)用、利于后期維護(hù)的自動化測試框架。該框架采用運行在線、分析結(jié)果離線的方式,減少了框架總體耗時,并在可維護(hù)性、靈活性等多方面體現(xiàn)出優(yōu)越性。
1 自動化測試可行性分析
本自動化測試框架基于AutoVue產(chǎn)品,因而首先分析AutoVue產(chǎn)品特點。
1.1 AutoVue產(chǎn)品簡介
AutoVue產(chǎn)品[6]是一款Oracle公司提供的可視化工具,提供2D、3D、EDA、Office等類型上百種文件格式的顯示和轉(zhuǎn)換。Oracle為客戶提供兩種不同的解決方案,分別為:Client Server和Desktop(在本文中簡稱CS和DD)。 DD版本是獨立安裝在客戶端的Java應(yīng)用,CS版本安裝在服務(wù)器上,客戶只需通過支持Java插件的瀏覽器即可訪問。這兩種解決方案,根據(jù)支持文件格式類型的不同分為AutoVue EMP、AutoVue EDA、AutoVue 3D、AutoVue 2D、AutoVue Office等多個版本,以對應(yīng)支持不同類型的文件,滿足不同客戶的需求。AutoVue主要功能有:原始文件顯示、文件格式轉(zhuǎn)換、圖像比較、標(biāo)注、測量、查找等。
1.2 AutoVue測試用例特征
AutoVue產(chǎn)品用例主要分為格式用例和功能用例。以AutoVue20.2.2為例,需支持百種格式[7]文件,每種格式文件又支持多種版本,如Word格式就有Word2010、Word2007、Word的2003、Word2000等7種不同的Word版本。AutoCAD格式要測十幾種不同的版本,各種格式有400余種。而每種格式、每種版本的文件至少需要5個樣本文件對其進(jìn)行測試,才能保證測試覆蓋率,所以僅格式的測試用例就達(dá)2 000余條,且每次測試均需與之前版本進(jìn)行對比,測試用例量大、測試任務(wù)繁重。功能方面(如標(biāo)注、測量、查找)的測試用例邏輯性較其它應(yīng)用雖簡單,但對于不同格式,界面和功能都有細(xì)微差別,需選用特定的樣本文件來測試其某項功能。
1.3 可行性分析
手工測試中,每一個小版本的推出,或者是一個補丁的產(chǎn)生都需要進(jìn)行回歸測試,測試量大且繁鎖?;诖嗽?,必須設(shè)計出一套針對AutoVue應(yīng)用特點的自動化框架,應(yīng)用于回歸測試,以減少人力成本、提高工作效率。需考慮框架的靈活性、可維護(hù)性,如運行測試用例的范圍選擇、AutoVue新版本推出對現(xiàn)有框架的影響等。
2 自動化框架設(shè)計
2.1 SilkTest工具介紹
SilkTest是Borland公司開發(fā)的一款領(lǐng)先的測試工具,支持Java、Web應(yīng)用,在功能測試領(lǐng)域應(yīng)用較多。SilkTest具有多種功能,如支持多種數(shù)據(jù)庫訪問、支持多種主流瀏覽器、支持多種腳本語言(Java、VB、C#)等。
2.2 混合自動化框架
本框架采用關(guān)鍵字驅(qū)動和數(shù)據(jù)驅(qū)動混合模型:①使用SilkTest工具建立AutoVue應(yīng)用產(chǎn)品對象庫,將測試對象名與界面元素名分離。一旦界面元素有改變,只需修改對象庫中相應(yīng)的元素,無需大規(guī)模涉及腳本;②腳本與數(shù)據(jù)分離。AutoVue產(chǎn)品的測試用例都包含一個或多個樣本文件。本框架將所需要執(zhí)行的樣本文件都保存在.csv文件中;③測試描述與腳本實現(xiàn)分離,本框架將測試用例名存儲在.csv文件中;④本框架不是單純的關(guān)鍵字驅(qū)動,測試用例的步驟并不都呈現(xiàn)在.csv文件中。
以測試用例Compare_Exist為例,步驟如下:①打開AutoVue應(yīng)用;②加載原始文件,點擊“分析”→“比較”;③在彈出的對框中選擇比較的文件,查看比較結(jié)果。打開文件,在界面上的交互動作并沒有以關(guān)鍵字的形式呈現(xiàn)在.csv文件中。由于AutoVue應(yīng)用的邏輯性較簡單,用例復(fù)雜度主要體現(xiàn)在樣本格式文件的數(shù)量,所以只將數(shù)據(jù)文件名、執(zhí)行腳本名、測試應(yīng)用的版本存儲在數(shù)據(jù)文件中,以減少測試用例的維護(hù)成本。
2.3 框架特點
2.3.1 多版本支持
本框架支持AutoVue的CS、DD版本,使用同一套Object對象,在AutoVue20.1、AutoVue 20.2.1、 AutoVue20.2.2等版本上都進(jìn)行過試驗,在回歸測試中作用很好。
2.3.2 框架受界面變動影響小
被測試應(yīng)用界面一旦有改動,只需修改對象庫的文件,而無需一一修改用例腳本。
2.3.3 被測試運行用例執(zhí)行范圍選擇方便
選擇執(zhí)行部分用例,將Master文件中對應(yīng)用例的Test列改為Y或者N即可。選擇執(zhí)行部分格式的測試用例,將Master文件中對應(yīng)用例的Formats列作相應(yīng)修改即可。若需要增加或減少測試文件,只需修改用例對應(yīng)測試文件的.csv文件即可。
2.4 測試框架平臺運行環(huán)境
本框架的驅(qū)動腳本、測試腳本、對象庫均存儲在共享的Oracle數(shù)據(jù)庫中,測試工具SilkTest安裝在SilkTest客戶端。外部數(shù)據(jù)如測試任務(wù)、測試文件以.csv,.xls格式存放在共享服務(wù)器中。結(jié)果處理程序存儲在結(jié)果對比服務(wù)器中。用戶客戶端通過遠(yuǎn)程連接SilkTest客戶端的方式啟動自動化測試框架,并將運行所得的XML文件和對比截圖存放在共享服務(wù)器中。具體構(gòu)架如圖1所示。
2.5 自動化測試框架流程
如圖2所示,驅(qū)動文件控制整個框架流程,具體步驟如下:
(1)讀取AutoMation_Task.csv文件,對應(yīng)于不同的運行模式、版本,版本號會在SilkTest客戶端上創(chuàng)建不同的文件夾來保存結(jié)果。對應(yīng)于不同的應(yīng)用類型CS和DD,創(chuàng)建不同的jVue.bat文件,以啟動應(yīng)用。圖3為AutoMation_Task.csv在SilkTest工具中顯示的內(nèi)容。
(2)Master.csv文件包含了所有測試用例的數(shù)據(jù),包含3列(測試用例名、是否測試、測試文件格式),圖4為AutoMation_Task.csv在SilkTest工具中顯示的部分?jǐn)?shù)據(jù)。
對于每行數(shù)據(jù),先讀取Test列,如果列值為Yes,則執(zhí)行此條用例,否則跳過此用例。
(3)對于執(zhí)行用例,讀取與該條測試用例相對應(yīng)的數(shù)據(jù)文件。逐行讀取,若該樣本文件的格式屬于Master文件中的格式之一,則執(zhí)行包含該樣本文件的用例,輸出XML文件和截圖,否則跳過此文件。圖5為測試用例COMPARE_EXTENTS的測試數(shù)據(jù)文件內(nèi)容,有原文件名、比較文件名、原文件格式、測試頁4個參數(shù)。如讀取第一行數(shù)據(jù)時,首先判斷“Dwg”格式是否屬于Master文件中COMPARE_EXTENTS行Formats列值之一。 對于不同測試用例的參數(shù),文件名和原文件格式是兩個必備參數(shù),其它參數(shù)根據(jù)用例不同構(gòu)造也有不同。
(4)在執(zhí)行每一條測試用例時,都會產(chǎn)生一個XML文件和相對應(yīng)的一個或多個截圖。XML數(shù)據(jù)主要包括測試用例名、測試版本號、測試樣本文件打開狀態(tài)、打開時間、樣本格式、截圖路徑、文件類型等信息。圖6所示為在執(zhí)行測試用例COMPARE_ALIGNSCALE時,測試樣本文件為50015222.dgn時生成的XML文件內(nèi)容。
(5)運行圖像分析程序。根據(jù)XML文件和截圖將Update模式和Verify模式的兩個文件夾進(jìn)行分析,根據(jù)同個腳本兩種模式下的截圖像素進(jìn)行對比,得出對比結(jié)果。如圖7所示,共兩條用例,第一列為Update模式的結(jié)果截圖,第二列為Verify模式的結(jié)果截圖,第三列為對比結(jié)果圖,兩者對比相同,標(biāo)記為PASS,否則標(biāo)記為FAIL,并顯示出Update模式和Verify模式的不同點。
2.6 結(jié)果分析
2.6.1 運行時間對比
在自動化框架測試階段,定義79條測試腳本,覆蓋了2D、3D、EDA、EMP應(yīng)用中90%最常用的功能,每個腳本取10個樣本文件,共790條測試樣例。
人工測試與自動化測試耗時對比,如表1所示。 運用自動化測試框架進(jìn)行回歸測試很大程度上提高了效率。特別是在進(jìn)行手動測試時,需要同時進(jìn)行兩個版本比較,每次用例需執(zhí)行兩次。 而自動化測試時,對應(yīng)的Update模式只需運行一次,相對應(yīng)的截圖和XML文件就會保存在服務(wù)器中。在第二次測試時,只需運行一次Verify模式。即使Update模式不存在,由于多個SilkTest客戶端可同時運行,所花費的時間也不需要2倍的時間。由于自動化測試框架運行在客戶端,不影響測試人員工作,所以不占用測試人員的實際工作時間。此外由于該框架將截圖存放在服務(wù)器端,避免了測試人員在提交軟件缺陷時需要重新截圖的工作量。
2.6.2 注意事項
此框架在設(shè)計調(diào)試中發(fā)現(xiàn)的問題及注意事項:①截圖采用png格式,以減少存儲空間;②遠(yuǎn)程到SilkTest客戶端時,設(shè)置遠(yuǎn)程連接屬性時間的最大值為24小時,以防止運行中途遠(yuǎn)程連接斷開造成截圖不清的情況發(fā)生;③樣本文件選取中等大小,用AutoVue應(yīng)用打開時間1分鐘以內(nèi)的文件為宜,容量過大的文件不適合做回歸測試;④為保持程序穩(wěn)定,每執(zhí)行一個測試腳本(約5至20條測試用例),重新關(guān)閉并啟動AutoVue應(yīng)用。
3 框架擴展
AutoVue產(chǎn)品瀏覽各種不同格式的文件,測試用例相對特殊,包含數(shù)量巨大、格式多種的測試文件,多用于回歸測試。對于其它普通的Web應(yīng)用,對該框架作適度的修改也可:①測試工具支持。SilkTest工具支持Web應(yīng)用,并支持多種瀏覽器測試;②采用純關(guān)鍵字驅(qū)動方式,將用例的每一動作都看作關(guān)鍵字。如Web應(yīng)用常用的“登陸”、“注銷”等界面操作。對于關(guān)鍵性的步驟進(jìn)行多次截圖,進(jìn)行圖像比較,達(dá)到測試功能缺陷的目的。
4 結(jié)語
自動化測試框架在AutoVue產(chǎn)品開發(fā)中效果良好,大幅度減少了測試人員的工作量。隨著敏捷開發(fā)模式在軟件團(tuán)隊中的大量運用,開發(fā)敏捷性的自動化框架,以及將自動化測試框架融合進(jìn)敏捷開發(fā)模式是下一步的工作重點及研究方向。
參考文獻(xiàn):
[1]YIN JIE, ZHANG YANG, YU DAN, et al.An automatic testing framework applied on LIW and its implementation[C]. Proceedings of 2011 13th IEEE Joint International Computer Science and Information Technology Conference(JICSIT 2011),2011.
[2]馮振華,高菊,曾紅衛(wèi).Web 應(yīng)用自動化測試的研究[J]. 計算機工程與設(shè)計, 2010,31(1):175178.
[3]接卉, 蘭雨晴, 駱沛.一種關(guān)鍵字驅(qū)動的自動化測試框架[J].計算機應(yīng)用研究, 2009,26(3):927929.
[4]王軍,孟凡鵬.基于關(guān)鍵字驅(qū)動的自動化測試研究與實現(xiàn)[J]. 計算機工程與設(shè)計, 2012,33(9):36523656.
[5]何浩,程春玲,張征宇,等.基于SilkTest和XML的通用高效的用戶界面測試方法[J].計算機應(yīng)用,2013,33(1):258261.
[6]S N. AutoVue enterprise visualization providing a foundation for viewing, markup and realtime collaboration[EB/OL].[20141228]. http://www.oracle.com/us/products/applications/autoVue/overview/index.html.
[7]S N.Oracle AutoVue 20.2.2 supported file format[EB/OL].[20141228]. http://www.oracle.com/us/products/applications/autoVue/autovuesupportedfileformats065285.pdf ssSourceSiteId=otnen.
責(zé)任編輯(責(zé)任編輯:杜能鋼)
英文摘要Abstract:Software testing, especially GUI testing in the regression period cost duplicate manual labor. AutoVue, as a multiple file format supported product, the testing cases are special. In order to improve testing efficiency, an automated testing framework using SilkTest tool is proposed. The framework use hybrid model which is based on data driven model and keywords driven model. It use XML file to restore testing info and support various version of AutoVue product. The running environment, running process and time effort of the framework are illustrated. The framework is easily maintainable, flexible and extensible. It proves that the framework can improve product testing efficiency to a large extent.
英文關(guān)鍵詞Key Words: Automated Testing Framework; SilkTest Tool; GUI Testing; AutoVue