当前位置:文档之家› 软件自动化测试技术及应用研究

软件自动化测试技术及应用研究

软件自动化测试技术及应』订研究地点做构建。

用每日构建方法开发的软件有MozillaI“/等。

在nightlybuilds中,新,I:发的版本从源代码库中checkout,编译,构建然后进行冒烟测试。

只有通过自动化冒烟测试才能认为代码构建合格。

发现的缺陷通过电子邮件反馈给开发者,以进行快速的修复。

现在有许多工具支持dailybuilds,包括CruiseControl扣“,lncrediBuildI“j和VisualBuildI65J。

3.3.1CruiseControlCruisecontr01㈦是一个支持持续构建过程的框架。

它包括电子邮件通知,Ant和源代码管理工具,使用Web接口来查看当前和先前的构建记录。

持续的构建过程允许每个开发者每天进行集成,减少大规模集成带来的问题。

图3.2CruiseControl的架构CruiseControl的主要配置在Config.xml中,每到指定时间,CruiseControl就检查源代码管理I:具上的代码,如果有更新,就取下代码开始构建过程,并在完成后发布状态报告。

下面是Config.xml中的主要设置,1.modificationset指定了所监视的源代码集合,做为判断是否进行构建的条件。

<roodificationsetrequiremodification=’’true。

’><clearcasebranchII”DEV—cds—framework一04.50一mig—pcus”viewpath=”Z:\cdsOl\cds—framework\src\modules”recursive=”true”/></modificationset>2.schedule定义了构建的时间间隔和要执行的构建任务软件自动化测试技术及』、i用酬究『orOnti-O;i<propertylength;\,i){SCOPe+一(100—male。

h(property[i]))+Weight,图4.1对象在XDETester对象库中的表示这也要求从开发角度考虑对象的可测试性,如为了有效标识唯一的GUI对象,需要使用一致和有意义的命名规则,如用“FirstNameEdit”而不是“Editl”,使用唯一的窗口或页I匿名称。

4.3自动化测试框架基于GUI的捕获回放工具都具有维护性差的缺陷。

因为GUI经常根据功能变更或者其他需求而改变,当GUI有重大变化时,会导致自动化测试中断,结果需要手工的干预或全部重新返工。

因此更好的方案是引入自动化框架。

自动化测试框架为支持自动化软件测试设计了平台架构和最佳的实践经验。

主要有4种基本框架结构类型口】:脚本模块化架构,测试库架构,关键词或表格驱动架构,数据驱动架构。

1)脚本模块化框架创建代表AUT基本模块和功能的底层脚本。

然后以一种层次关系组合这些小脚本,实现一个特定的测试用例。

2)测试库框架和测试脚本模块化框架非常相似,但是底层由过程和函数组成,而不足脚本。

这种框架要求创建库文件(如SQABasiel721libraries,APIs,DLLs等等)代表AUI’的模块和功能。

这些库文件被测试用例脚本直接调用。

3)关键词驱动或表格驱动测试框架是一种独立于应用程序的自动化框架,这种框架要求开发数据表和关键字,不依赖于运行的自动化I一具和脚本。

关键词驱动测试看上去与手工测试用例非常相似。

在关键词测试坐,应用程序的功能特性和软件自动化测试技术及应用研究录制完成的脚本需要根据测试需求进行修改,添加必要的功能。

◆动态数据的参数化和天联如对登陆用,、的信息进行参数化,选用不同的用户进行性能测试能更精确的模拟实际负载。

webset—IISCr(”…sefld}'.,lrdecrypt(”43beod786c040a5667”),”tcwin231zdusCOll]80”1:图5.6参数化的设置◆插入事务和集合点通过对关注的操作加入事务标签并在事务前加入集合点标签,自定义计响应时间的计算部分。

k_rendezvous(‘'NavigateToReportCenter”);lrstarttransaction(”1ReportCenter”);…具体事务的操作…lrendtransaction(’’IReportCenter”,LRAUTO);◆加入响应正确性检查机制·加入检查响应的函数,如web—find(),web_regfind(),对实际测试时从服务器得到的响应进行验证。

·使用扩展日志记录服务器返回的数据,查看脚本回放的状态。

下面是对应于脚本的某一操作的从服务器端得到的响应日志。

Action.c(77):bx00\x00\x00bx05bx02Lx00\x03All\x02\x00、nAccounting\x02\xOO\x15CollateralManagemenf\x02\xOO\xOBGlobalCash\x02\xOO\xOFReconciliations\n\x00议00\x00仅05\x02收0叭xoo\x02\x00\)(04A(℃nx02\)(00\x04CMN(^x02\XOO\)(04G(:墨矾x02\x00\x04R(10^nx02\x00\x010\x00\x08argGrpld\x05\x00\x0C_remoteClassLx02Lx00+com.SSC.eis.myssc.rc.flex.Action.cf771:Registeredwebregfindsuccessfulfor”Text=GlobalCash”(count21)【Msgld:MMsG一26364]Action.cf77):webcustomrequest(”MssRclnboxRo”)wassuccessful,451bodybytes,1298headerbytes[Msgld:MMSG一26386]图5.7请求所对应的web臾面5.2.2.2.2运行性能测试t)设计场景◆选择场景类型,如手工场景,然后选取用于产生负载的脚本,定义虚拟用户数,配置负载生成器以及用户加载策略。

◆设置脚本运行时选项,如脚本运行逻辑、错误处理、超时时间问隔等图5.8设置运行时选项◆设置集合点策略。

LR中默认的集合点策略足只聚集所有正在运行的虚拟用户,而不等待那些还在初始化未进入运行态的虚拟用户。

图5.9集合点策略的设置◆IP欺骗为j,更加真实的模拟实际情况,避开服务器的一些安全策略,设置IPSpoofor机制,使运行的虚拟用户使用不同的lP地址发送请求。

2)执行场景场景设置完成后,控制器将脚本分发到负载生成器向被测系统发起负载,同时通过服务器卜的性能监控器收集性能数据。

性能信息采样频率会对服务器的性能产生影响,选取重要的性能计数器并使用低的采样率,降低干扰。

对于J2EE的系统性能测试,通常可用的监控器有,IplanetWeb服务器监控器,WindowsUnix/Linux系统监控器,WebSphere应用服务器监控器,J2EE监控器和Oracle数据库服务器监控器等。

在各服务器端安装对应的监控器了f=存LoadRunner中设置相应连接参数和取样参数即可。

“t’Fm厂———————————————————一菩1日吐。

.H一邀雾芏黛,。

器蒸图510性能监控器5.2…223分析性能数据测试完成后,运行结果数据将从各负载生成器进行汇总,产生性能分析图表。

它包括r一些关键性能数据如事务响应时间,吞吐量等。

通过Analysis模块的输出功能,方便的生成HTML、Word或者Crystal的报表,用户可以根据不同的测试需求进行定制、分析和再处理。

表5.1LoadRunner生成的Word格式的报表一部分第六章企业自动化测试框架6.1企业自动化测试总体框架图6.1企业级的J2EE平台架构现代企业软件开发的重要特征是增量式和高频率。

增量式意味着这些软件版本是1):在已有功能的基础上添加新功能;2)缺陷修复或者代码整理,但保持原有的正常功能不变。

高频率表示软件不断的在较短时间间隔内推出新版本。

这种情况下需要按照以前的测试用例对软件的每个版本进行回归测试,保证软件已有功能的质量。

随着软件版本的不断进化,集成的业务模块数目越来越多,功能复杂越来越复杂,需要重复执往的测试用例数目将变得非常可怕。

采用全手工的回归测试,不仅造成了时问和人力}一的巨大丌销,而且容易出错,给测试人员带来巨大压力和心理阴影。

在回归测试中;1入自动化能极大的减轻手工测试人员重复性测试的负担,使测试人员能集中精力和创造力到最需要的新功能特性测试卜,提高了测试效率,适应快节奏的现代软件开发模式。

同时复杂新功能的不断增加以及代码结构层次的不断变化,系统的十牛能问题逐渐暴露出来,成为用户关注的新重点。

采用原始的手T_N试几乎不可能完成细粒度的性能测试,引入自动化能大大降低性能测试的难度,节约人力物力,提高测试的准确度。

针对现代企业级软件开发的特点和软件测试不同阶段的特点,本文设计了如下的企业El动化测试框架。

该框架覆盖了单,亡级别和系统级别的回归测试,以及系统级别的性能测试,将自动化部署到企>lk、坝fl试流程中最能发挥优势的这二处,并通过集成版本管理和缺陷/变更管理系统,形成了开发测试反馈的高效统。

相关主题