软件测试外文翻译GUI自动化测试研究Word文档下载推荐.docx
《软件测试外文翻译GUI自动化测试研究Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《软件测试外文翻译GUI自动化测试研究Word文档下载推荐.docx(11页珍藏版)》请在冰豆网上搜索。
1.录制技术的不足
目前一些录制技术被应用到图形用户界面的自动化测试中,在软件开发周期中,系统需要不断地更新和维护,为了保证测试质量,测试代码对不断变化的系统要有很强的适应能力,换句话说,测试也同样需要维护。
测试脚本的录制过程是根据具体的界面和操作进行的,一旦脚本的执行界面发生改变,运行就会出现异常,甚至仅仅是被操作对象位置的改变或图像分辨率的改变都可能会造成图形用户界面自动化测试的失败,因此,基于录制技术的自动化测试维护的代价相当高。
另外,脚本录制的过程是固定的,所以脚本的运行会完全按照操作步骤,不具备灵活性。
2.自动化测试框架的提出
在目前的软件测试中,一个备受关注的问题是如何高效地实现图形用户界面的自动化测试,并使测试代码具有很高的灵活性。
本文提出了一种基于对象捕捉技术的图形用户界面自动化测试框架GUIATF(GraphicsUserInterfaceAutomationTestingFramework),为测试人员方便地创建并灵活地维护测试代码提供保证。
当用户界面发生变化时,测试代码能很快地进行更新,对用户界面的变化有很强的适应能力。
3.GUIATF框架的工作原理
GUIATF框架的基础是消息机制,通过消息的发送来触发相应的事件。
消息的初始接收器必须是窗口对象。
Windows消息通常直接由该窗口对象处理。
通常产生于应用程序主框架窗口的命令消息被传送到命令传送中描述的命令目标链。
GUIATF框架要完成的任务是为测试人员开发自动化测试代码提供功能强大的接口,模拟测试用例中定义的用户操作,通知系统发送一系列的消息给应用程序,实现测试用例的自动化运行。
3.1GUIATF的作用
图1GUIATF的作用
从图1可以看出GUIATF将消息发送给系统,系统响应消息之后通知应用程序来触发对应的事件,完成测试用例中定义的一系列用户操作。
GUIATF是连接应用程序和用户操作的桥梁。
在自动化测试过程中,测试用例是批量运行的,为了跟踪测试结果,GUIATF需要不断记录执行过程、探测不期望出现的事件以及在运行异常时保存现场截图。
这些结果数据通过日志管理存储在日志数据库中,便于测试人员查看和分析测试结果。
3.2GUIATF的结构
GUIATF框架由四个模块构成:
对象定位、字符转换、消息发送和日志记录,如图2所示。
对象定位模块将用户要操作的控件对象转化为GUIATF框架自身定义的自动化对象,然后再对其定位,在定位过程中,需要获取控件的一些属性信息,最常用到的是控件显示在界面上的名称。
在不同的语言版本中,同一个控件的名称是不同的,字符转换模块提取当前环境的语言类型,将要检索的控件名称转换为当前语言环境中对应的名称,发送给对象定位模块。
对象定位成功后,消息发送模块将模拟用户操作的消息发送到被锁定的对象,比如:
用鼠标点击被定位的按钮或在被定位的编辑框中录入信息等。
在以上三个模块执行的过程中,日志跟踪模块分别记录它们工作的详细信息,以便自动化测试运行结束后,测试人员通过查看日志信息分析测试结果。
图2GUIATF的结构
(1)对象定位模块
对象定位模块使GUIATF框架在处理控件对象方面具备功能丰富的接口,测试人员通过调用它们可以方便、高效地实现自动化对象的创建、检索自动化对象包含的子对象、激活对象、确定对象角色、状态和位置等功能。
应用程序中的每一个控件都属于主窗口中的子窗口,包括按钮、编辑框等,它们都是Windows系统中的窗口。
每个窗口都有一个窗口句柄作为其在系统中的唯一标识,对象定位模块通过获取窗口句柄将其转化为自身定义的自动化对象,主要定义如表1所示。
表1对象定位模块主要成员函数及属性
成员函数及属性
功能
PublicConstructor(stringName)
根据空间名称创建自动化对象
internalboolCheckForUnexpectedWindow()
检测不期望弹出的窗口
PublicAllSearchFindAllChildren(stringFindName)
检索所有子对象
PublicWinObjFindChild(RolesFindRole)
检索某个制定的子对象
PublicboolVerifyChildDoesNotExist(RolesFindRole)
验证子对象不存在
PublicintChildCount{get;
}
自对象数量(属性)
PublicintWindowHandle{get;
对象窗口句柄(属性)
PublicstringState{get;
对象状态(属性)
PublicRolesRole{get;
对象角色(属性)
PublicRectanglePosition{get;
set;
对象位置(属性)
(2)字符转换模块
字符转换模块实现了GUIATF框架跨语言自动化测试的能力。
它将自动化对象的属性信息动态转换为当前语言环境下对应的表现形式。
在应用程序中存在的每一个字符串都有一个ID值,唯一地标识该字符串的含义,我们把它称为键(KEY),对于一个键,可以对应多个值(VALUE),每一个值代表一种语言的表现形式。
应用程序中包含的所有字符串组成一个键的集合,这个键集合对应了多个值集合,每一个值集合相当于一个语言包。
比如:
我们将一个英文版的应用程序汉化的过程就是用中文语言包中的汉语将英文替换。
图3字符转换过程
使用GUIATF框架提供的接口查找控件对象时,要实现跨语言就不能使用控件对象在一种具体语言下的名称,而要通过此名称的ID号,也就是键(KEY),根据所获取当前语言环境的类型,动态转换对应的字符表现形式。
转换过程如图3所示:
在得到要转换字符串的ID值之后,首先确认数据库的配置参数,包括存放数据库的服务器名称,数据库名称,当前语言类型和格式等,然后创建与数据库的连接,把要查找的语言类型和字符串作为参数传递给查询命令,执行查询就可以获取我们需要的转换结果。
(3)消息发送模块
自动化对象定位之后,消息发送模块提供相应的接口将消息发送给系统,系统响应后通知应用程序触发自动化对象执行对应的事件。
在这个模块中,主要封装了鼠标消息类型、键盘消息类型以及消息发送的控制逻辑。
鼠标消息类型根据用户使用它的行为定义,包括左键单击、左键双击、右键单击和拖动。
DefinemoduleMouseMessage
{
publicboolDragAndDrop(WinObjFrom,WinObjTo);
publicWinObjGetPopupMenu();
publicvoidLeftClick();
publicvoidLeftDoubleClick();
publicvoidMove(PointPos);
publicvoidRightClick();
⋯
键盘消息类型定义了单键的按下、弹起,多键的选择,字符串的录入以及功能键对自动化对象的控制。
DefinemoduleKeyBoardMessage
publicvoidKeyDown(KeysKey);
publicvoidKeyUp(KeysKey);
publicvoidType(Keys[]KeyArray);
publicvoidType(stringText);
publicboolType(WinObjWObject,KeysKey);
publicboolType(WinObjWObject,Keys[]KeyArray);
图形用户界面的操作效率受机器性能的影响,当需要点击某个对话框的一个按钮时,向系统发出打开对话框的消息要等待响应,在不同的机器或环境中,响应的时间是不一样的,如果对话框没有出现就触发点击按钮的消息会导致操作的失败,因此,消息的发送需要一定的控制逻辑来协调,包括:
根据用户界面状态的变化判断用户进程何时失效,确保相关消息响应之后触发对应操作的执行。
主要定义如下所示:
DefinemoduleControlLogic
publicboolWaitProcessIdle(WinObjWObject);
publicboolStateChange(WinObjWObject,StatesState,);
publicWinObjWaitDialogBox(stringNameStartsWith);
publicWinObjWaitWindow(stringNameStartsWith);
publicWinObjWaitMessageBox(stringNameStartsWith);
(4)日志记录模块
在测试用例的批量自动化运行过程中,日志记录不仅需要包含测试用例的执行细节,而且还要提供测试用例执行的环境、时间、次数和状态等信息,这些信息都是测试用例管理器负责的。
GUIATF框架的日志记录模块通过调用测试用例管理器提供的接口实现日志的存储和查询。
4.GUIATF框架的优势
(1)方便测试用例的创建和修改:
GUIATF框架的设计思想是基于对象捕捉的,只要被操作对象存在于用户界面中,即使位置或图像分辨率发生变化,测试代码会根据对象的特征进行准确地定位并对其操作。
(2)详细的运行日志:
提供详细、准确的运行日志并检测不期望弹出的对话框,保存错误现场的截图,使测试人员快速地定位存在的错误。
(3)语言中立:
提供测试代码的多语言支持,一份测试代码可以成功地运行在多语言环境中,完美地实现了自动化测试的跨语言能力。
5.结束语
GUIATF框架提供了功能丰富的接口,大大提高了用户界面自动化测试代码的开发效率。
测试人员通过调用GUIATF框架提供的功能可以高效、灵活地实现测试逻辑,不会像录制技术那样因为测试脚本的固定使得测试很难维护。
在模拟多用户的并发操作中,GUIATF框架在实现多机并发操作中还存在一定的不足,目前虽然实现了多机进程间的通讯和同步,但是和测试用例管理器还没有建立连接,没有实现并发测试批量运行日志的统一管理。
另外,多机运行并发测试在调试方面也比较复杂,对调试技巧有很高的要求,在下阶段的工作中将对其进行重点研究。
附录2外文原文
ResearchonGUIAutomationTesting[25]
Abstract:
Thispaperpointsouttheobviousdeficienciesofrecordingtechniqueintestingautomationatpresent,aimingatconstantlyvariationalGUI,adoptsobjectorientedcapturingtechnique,designsGUIATFframeworkbasedonWindowsmessagemechanismandimplementsGUIautomationtesting,largelyimprovedagilityofautomationtesting.
Keywords:
softwaretesting;
regressiontesting;
automation
0.Introduction
Isatestdesignedtoassessaprogramorsystemattributesortheabilitytodeterminewhetheritmeetstherequiredresultsofitsactivities.Intheentiresoftwaredevelopmentprocess,fromneedsanalysistothesystemdesignuntiltherealizationofthecode,therewillbemoreorlesstheissue.Howtoprotectthequalityofsoftware,softwaretestinghasbecomethekeytechnology.Softwaretestingtheheavyworkloadandhasarepetitive,especiallyinthelatterpartoftestsconductedbytheregressiontesting(regressiontestinginthedevelopmentofsoftwarechangesandamendmentstochangewhenrunning),theneedtoverifybeforetheproblemsidentifiedinthenewversionInthesolution,mostofthetestsarerepeated.Implementationoftheautomatedsoftwaretestingcanmakealotoftestingproceduresandimplementationofrepeated,notonlysavingalotoflabor,butalsoimprovetheefficiencyoftestingandqualityassurancetesting.
1.Thelackofrecordingtechnology
Atpresent,somerecordingtechnologyhasbeenappliedtothegraphicaluserinterfaceoftheautomatedtest,inthesoftwaredevelopmentcycle,thesystemneedstoconstantlyupdateandmaintain,inordertoguaranteethequalityoftesting,testingcodetochangingthesystemhaveastrongsenseofadaptabilitytochangeSayingthatthetestisalsotheneedtopreserve.Testscriptrecordingprocessisbasedonthespecificoperationoftheinterfaceand,oncethescriptoftheimplementationoftheinterfacechange,therewillbeabnormaloperation,orevenjustbeoperatingtargetsorchangethelocationoftheimageresolutionofthechangesmayresultingraphicaluserThefailureofautomatedtestinginterface,therefore,basedontherecordingofthecostofmaintainingautomatedtestisquitehigh.Inaddition,thescriptoftherecordingprocessisfixed,sothescriptwillruninfullaccordancewiththesteps,anddonothaveflexibility.
2.Automatedtestframeworkoftheproposed
Inthecurrentsoftwaretesting,oneareaofconcernishowtoachieveefficientgraphicaluserinterfaceoftheautomatedtest,andtestcodewithhighflexibility.Thispaperpresentsatargetcapturetechnology-basedgraphicaluserinterfaceautomatedtestframeworkGUIATF(GraphicsUserInterfaceAutomationTestingFramework),forthetesteasilycreateandmaintainflexibilityinthetestingcodetoprovideguarantee.Whentheuserinterfacechanges,testcodecanbequicklyupdated,thechangesintheuserinterfacehasastrongadaptability.
3.GUIATFframeworkoftheworkingprinciple
GUIATFframeworkisbasedontheinformationmechanism,themessagesentthroughtheappropriateincidenttotrigger.Theinitialnewsreceivermustbethewindowobject.Windowsmessageusuallydirectlytargetedbythewindowtreatment.Applicationproceduresareusuallyproducedintheframeworkofthemainwindowtoordermessagesenttotransmitanorderdescribedintheorderlinkedobjectives.GUIATFframeworktocompletethetaskistotestthedevelopmentofautomatedtestcodeprovidesapowerfulinterface,simulationtestcaseinthedefinitionofuseractions,thenotificationsystemsentthemessagetoaseriesofapplications,andautomatedtestcaserun.
3.1TheroleofGUIATF
Figure1GUIATFrole
CanbeseenfromFigure1GUIATFwillsendamessagetothesystem,thesystemresponsetothenewsnotificationapplicationtotriggerthecorrespondingevents,completedaseriesoftestcasesinthedefinitionofuseractions.GUIATFisconnectedapplicationsanduseroperationofthebridge.Intheautomatedtestingprocess,thetestcaseisthebulkoftherunning,inordertotracktesresults,GUIATFneedtokeeprecordsoftheimplementationprocess,detectiondonotexpecttheincidentandthepreservationofthescenewhentheabnormaloperationofascreenshot.Theresultsofdatastoragemanagementthroughthelogsinthelogdatabasetofacilitateanalysisoftestpersonneltoviewandtestresults.
3.2GUIATFthestructure
GUIATFaframeworkoffourmodules:
objectpositioning,charactertransformation,messagingandlogging,asshowninFigure2.ObjectmodulewillbetargeteduserstocontroltheoperationofobjectsintotheframeworkoftheirowndefinitionofGUIATFautomationobject,andthenitspositioninthepositioningprocess,theneedtoacquirecontrolofanumberofattributes,mostoftenusedisdisplayedincontrolInterfacename.Inadifferentlanguageversionsofthesamecontrolsaredifferentfromthename,characterconversionmodulefromthecurrentenvironmentofthetype