自动化测试浅析全文Word文档下载推荐.docx
- 文档编号:17516095
- 上传时间:2022-12-06
- 格式:DOCX
- 页数:5
- 大小:18.98KB
自动化测试浅析全文Word文档下载推荐.docx
《自动化测试浅析全文Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《自动化测试浅析全文Word文档下载推荐.docx(5页珍藏版)》请在冰豆网上搜索。
为此我们引用自动化测试。
测试自动化可理解为测试过程自动化和测试结果分析自动化。
测试过程的自动化指的是不用手工逐个的对用例进行测试。
测试结果分析自动化指的是不用人工一点点去分析测试过程中的中间结果或数据流。
适合于软件测试自动化的场合:
(1)回归测试,重复单一的数据录入或是击键等测试操作造成了不必要的时间浪费和人力浪费;
(2)此外测试人员对程序的理解和对设计文档的验证通常也要借助于测试自动化工具;
(3)采纳自动化测试工具有利于测试报告文档的生成和版本的连贯性;
(4)自动化工具能够确定测试用例的覆盖路径,确定测试用例集对程序逻辑流程和操纵流程的覆盖。
常规情况下,软件的自动化测试能够发现10%-15%的软件错误。
手工测试能够发现80%左右软件错误,由于自动化测试和手工测试存在重合的错误发现,因此尚需有5%-10%的错误需要通过两者结合和采取其它途径进行发现。
3测试自动化实现方法
3.1单元测试自动化
单元测试自动化是最轻量级的测试,它的测试目标是特定模块的函数或者代码块。
通常单元测试是由开发工程师自己来做的,因为进行这种测试涉及到程序内部设计和代码实现的细节。
对于单元测试,我们希望能像使用编译程序器编译一样,每次修改代码后,即可运行编译器进行编译,如果没有错误,完全可不用去看编译报告,当有问题时编译器才会发出警报,并给出一定的线索。
我们用编译器来检查语法错误,用单元测试来检查语义错误。
单元测试适合于充分的测试代码片断,它的前提是对代码的具体实现非常了解。
3.2更大规模测试的自动化
下图自动化是一个典型的测试环境
在这测试环境中,被测系统看作一个整体,它接受到外界的输入后,会产生一些相应的输出。
而外部环境是由用户界面和测试工具组成。
用户界面就是用户使用被测系统的接口。
测试工具这里指的是外部支持系统,可能是一个关联子系统,也可能是一些驱动库,这些系统可能是真实的系统,也可能是专为测试做的模拟系统。
一般情况,相对测试系统来说,用户界面是主动的,由它发起对某个功能点的测试,而测试工具是被动的,它接收到由被测系统发出的消息后,发回相应的响应。
我们需要编程序来完成用户界面以及测试工具的动作,我们把上图的外部环境分为三种类型来讨论:
用户界面,模拟外部子系统和真实外部子系统。
这里只考虑模拟外部系统的测试工具,对于真实的外部子系统,它的动作是不用测试者设定,然而某些情况下我们还是需要观察它与被测系统间交互的消息,确认其中的某些检查点。
可采纳脚本语言来实现测试自动化。
脚本语言的特点首先它自动逐条执行语句,并可以方面的修改源代码来设定一系列的动作,另外,脚本语言一般都有非常强大的字符串处理能力,这对于我们实现测试自动化以及结果分析都非常有利。
3.2.1测试过程自动化
一般来说,用户界面和模拟外部子系统的测试工具功能比较简单,主要是收发短消息或涉及鼠标键盘操作,其中没有复杂的逻辑和算法,可被认为是一个一个的消息触发器组成的,而且每个触发器的动作都是预先设定好,接收到消息则发送消息B,因此用脚本语言很容易模拟它们的动作。
在用脚本语言实现过程自动化的时候,可以通过在脚本中设置操纵点,操纵脚本的执行。
当脚本运行到操纵点时,将等待用户输入,然后根据输入进行进一步的动作。
这样可逐段执行脚本,便于调试。
通过构建自动化测试平台进行过程自动化测试,大大减少了测试过程中所需做的重复性工作,降低了人性的弱点对程序质量的威胁。
3.2.2结果分析自动化
构建好自动化测试平台后,我们可对测试结果进行自动化分析了。
对某一个功能点的测试往往包含用户界面,被测系统和测试工具的多次消息交互,通过查看这些消息的内容和顺序是否与预期一致来推断一个测试用例是否通过,形成自动分析案例。
对于某个测试用例,可预先编制一个目标文件,其中包含所有完成这个用例所需交互消息,包括用户界面与被测系统间的消息,以及被测系统与测试工具之间的消息。
在自动测试平台中,加入一些操纵,在收发消息的同时将消息依次存入到一个文件中,当测试用例完成后,可将两文件做对比,如果匹配的话说明测试成功,如果不匹配,则给出最先不匹配的位置信息。
编写目标文件不一定要包含所以消息,有时候可能只需要比较某个测试工具接受的消息就可以推断是否正常,那么在脚本中只需将该测试工具所接受的消息存入文件即可。
这样手工编写目标文件容易,比较速度也快。
比较文件时所用的匹配算法也可根据自己的需要加以调整,可以是精确匹配,也可以只是检查目标文件中的消息是否在当前生成的文件中依次出现。
一些脚本语言,例如TCL具有很强的字符处理能力,可方便的实现某些匹配算法。
通过用脚本来实现测试过程与测试结果分析,可形成维护一个测试用例库。
每次代码集成的时候都可以通过运行这些脚本对程序进行回归过程测试,整个测试过程不需要人工干预。
当出现问题时,会生成相应的测试报告,给出错误信息。
这个测试用例库在整个软件的生命周期中都可重复利用。
4主流自动化测试工具介绍
4.1工业标准级负载测试工具LodRunner
MercuryInterctive的LodRunner是一种预测系统行为和性能的负载测试工具。
通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LodRunner能够对整个企业架构进行测试。
通过使用LodRunner,企业能最大限度地缩短测试时间,优化性能和加速应用系统的公布周期。
LodRunner支持广范的协议和技术,为特别环境提供特别的解决方案。
4.2全球测试治理系统TestDirector
TestDirector是业界第一个基于Web的测试治理系统,它可以对全球范围内的测试进行治理。
通过在一个整体的应用系统中集成了测试治理的各个部分,包括需求治理,测试计划,测试执行以及错误跟踪等功能,TestDirector极大地加速了测试过程。
一套基于Web的测试治理系统提供了一个协同合作的环境和一个ZY数据仓库TestDirector能消除组织机构间、地域间的障碍。
4.3WinRunner
WinRunner是MercuryInterctive公司推出的一种企业级自动化测试工具。
通过自动录制、检测和回放用户的应用操作,来帮助测试人员自动完成应用程序的功能性测试。
可提高测试人员的工作效率和质量,确保跨平台的、复杂的企业级应用无故障公布及长期稳定运行。
用WinRunner进行自动化测试主要分为5步:
(1)创建GUIMp文件。
WinRunner可以通过它来识别被测试应用程序中的GUI对象。
(2)创建调试测试脚本。
通过录制,编程,或两者的组合创建并调试测试脚本。
(3)运行程序。
运行测试时,WinRunner会自动操作应用程序,就象一个真实的用户根据业务流程执行着每一步的操作。
(4)结果分析。
WinRunner通过交互式的报告工具来提供详尽的、易读的报告。
这些测试结果还可以通过MercuryInterctive的测试治理工具TestDirector来查阅。
(5)维护测试。
WinRunner可以创建在整个应用程序生命周期内都可以重复使用的测试,从而大大地节省时间和资源,充分利用测试环境。
4.3.1WinRunner自动化测试框架构造
根据类和封装的思想,将WinRunner中的类提取来进行封装。
所有的类全部封装于函数(ExecuteCse)中,针对每一类,均有具体的行为与之对应,根据配置文件中传入参数的所属类,ExecuteCse会将相应的接口进行处理。
如果有新类或特别类,也可以将ExecuteCse函数进行扩充,从而满足不同的测试需求。
5硬件主备板间自动切换软件的自动测试事例
Tcl(ToolCommndLnguge)是一种可运行在Unix,Windows和Mcintosh等各种平台上的自动化测试脚本语言。
具有良好的扩展性,以便用户为其增添新的功能模块。
Tcl语言将程序设计概念高度抽象,真正地把程序设计与操作系统底层结构隔开,因此不依赖于任何平台,具有良好的可移植性。
下面简单介绍用Tcl实现一硬件系统中主备板间自动切换的测试事例。
5.1对ctive_bords的切换
procopertion_on_ctive
{ctioni_pirmode}{
globlprint_fsm_1
globlprint_fsm_2
globlbord_info_1
globlbord_info_2
globlctive_bord_1
globlstndby_bord_1
globlctive_bord_2
globlstndby_bord_2
globlid
#wit_stte_norml//当bords的状态为norml的时候才切换
mode$id#
if{$i_pir==1}{//当只有一对bords的时候
log_out"
H_opertion:
$ction$ctive_bord_1(chssis)
$ctive_bord_1(slot)
$ctive_bord_1(bord)"
gsend"
om$ction$ctive_bord_1(chssis)
$ctive_bord_1(bord)$mode\n"
expect-i$idtimedout{timedout"
onprompt"
}
-re"
Successfully"
fter5000
}elseif{$i_pir==2}{//当有两对bords的时候
$ction$ctive_bord_2(chssis)
$ctive_bord_2(slot)
$ctive_bord_2(bord)"
om$ction$ctive_bord_2(chssis)
$ctive_bord_2(bord)$mode\n"
expect-i$idtimedout
{timedout"
}-re"
fter5000}}
4.2对stndby_bords的切换
procopertion_on_stndby{ctioni_pirmode}{
$ction$stndby_bord_1(chssis)
$stndby_bord_1(slot)$stndby_bord_1(bord)"
om$ction$stndby_bord_1(chssis)
$stndby_bord_1(slot)
$stndby_bord_1(bord)$mode\n"
}elseif{$i_pir==2}{//当有两对bords的时候
$ction
$stndby_bord_2(chssis)
$stndby_bord_2(slot)
$stndby_bord_2(bord)"
om$ction$stndby_bord_2(chssis)
$stndby_bord_2(bord)$mode\n"
6结束语
软件测试跨越整个软件开发流程,软件生存期中的一个重要阶段,是软件质量保证的关键步骤.运用主流自动化测试工具,构建自动化测试平台及自动化测试框架,可提高测试效率和准确性。
自动化测试脚本语言的应用更为软件自动化测试提供了有利的支撑。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 自动化 测试 浅析 全文