软件测试方法和技术之软件测试自动化

上传人:luobi****88888 文档编号:92923784 上传时间:2019-07-14 格式:PPT 页数:72 大小:1.95MB
返回 下载 相关 举报
软件测试方法和技术之软件测试自动化_第1页
第1页 / 共72页
软件测试方法和技术之软件测试自动化_第2页
第2页 / 共72页
软件测试方法和技术之软件测试自动化_第3页
第3页 / 共72页
软件测试方法和技术之软件测试自动化_第4页
第4页 / 共72页
软件测试方法和技术之软件测试自动化_第5页
第5页 / 共72页
点击查看更多>>
资源描述

《软件测试方法和技术之软件测试自动化》由会员分享,可在线阅读,更多相关《软件测试方法和技术之软件测试自动化(72页珍藏版)》请在金锄头文库上搜索。

1、软件测试方法和技术 - Ch.11软件测试自动化,Zhu.K,朱少民 Kerry Zhu,第十一章 软件测试自动化,Zhu.K,11.1测试自动化的内涵 11.2 测试工具的分类和选择 11.3 测试工具的主流产品介绍 11.4 IBM-Rational产品的整体解决方案 11.5 Mercury Interactive产品的整体解决方案 11.6 Compuware产品的整体解决方案,11.1测试自动化的内涵,Zhu.K,11.1.1 为什么要软件测试自动化 11.1.2 自动化测试的引入和应用 11.1.3 测试自动化的基本结构 11.1.4 测试自动化的原理和方法 11.1.5 测试自动

2、化普遍存在的问题,手工测试的局限性,Zhu.K,通过手工测试无法做到覆盖所有代码路径; 许多与时序、死锁、资源冲突、多线程等有关的错误通过手工测试很难捕捉到 在系统负载、性能测试时,需要模拟大量数据、或大量并发用户等各种应用场合时,也很难通过手工测试来进行 在进行系统可靠性时,需要模拟系统运行十年、几十年,以验证系统能否稳定运行,也是手工测试无法模拟的。 如果有大量(几千)的测试用例,需要在短时间内完成,手工测试又怎么办呢? 测试可以发现错误,并不能表明程序的正确性。,自动测试定义软件系统 功能规格书(Spec)只是从书面上的 一套软件产品是由一套完整的可运行的测试来定义的 测试所有可能情况将

3、遭遇“组合爆炸”问题 Win98, WinME, WinNT, Win2k, WinXP, WinXP TablePC Ed, WinXP MediaCenter Ed, Longhorn, etc English, German, Japanese, Chinese, Arabic, Thai Office 97, Office2000, Office XP, Office 2003 X86 32-bit, Intel 64-bit, AMD 64-bit, Alpha, MIPS SQL Server 6.5, SQL Server 7.0, SQL Server 2000 Visual

4、Studio 6, VS .NET, VS .NET 2003, Whidbey,手工测试的局限性 (2),Zhu.K,代码全部Code Path测试覆盖也几乎不可能 每一个ifelse或switch语句就会把情况增加一倍 许多异常处理代码在正常使用中不会碰到 许多与时序,死锁,资源冲突,多线程有关的错误很难捕捉到 每一个产品都会有不同的版本外加各自的SP与QFE (Quick Fix Engineering, 又称Hot fix) NT4, VS6 SP1SP5, Windows 2000 SP1-SP4 VS .NET, SQL Server SP1 SP3 可重复使用的自动测试对产品未来

5、版本与Service Pack的测试将有事半功倍的效果,手工测试的局限性 (2),Zhu.K,自动化测试带来的好处,1. 缩短周期 Testing cycle - Regression Testing 2. Attributes of TA, Speed 速度 Efficiency 效率 Accuracy and Precise 准确、精确 Relentlessness 无情 3. 容易实施、结果可靠 4. 做手工不能做,Zhu.K,手工测试,耗费时间 低可靠性 人力资源 不一致性 仅对于一次性的测试有益,速度 可重复 覆盖率 可靠 可以再度使用 重复测试节省时间,手工测试 vs.自动测试,Z

6、hu.K,正确认识测试自动化,不现实的期望注定测试自动化的失败 测试自动化能: 显著降低重复手工测试的时间 建立可靠、重复的测试,减少认为错误 增强测试质量和覆盖率 测试自动化不能: 完全替代手工测试和手工测试工程师 保证100%的测试覆盖率 弥补测试实践的不足,Zhu.K,各自特点,软件测试自动化(TA)虽然具有很多优点,但只是对手工测试的一种补充,TA绝不能代替手工测试,有各自的特点: 在系统功能逻辑测试、验收测试、适用性测试、涉及物理交互性测试时,多采用黑盒测试的手工测试方法; 单元测试、集成测试、系统负载或性能、稳定性、可靠性测试等比较适合采用TA; 对那种不稳定软件的测试、开发周期很

7、短的软件、一次性的软件等不适合测试自动化 工具本身并没有想象力和灵活性,根据经验报道,自动测试只能发现15%的缺陷,而手工测试可以发现85%的缺陷;TA工具在进行功能测试时,其准确的含义是回归测试工具,因为工具不能发现更多的新问题,但可以保证对已经测试过部分进行测试的准确性和客观性,Zhu.K,测试自动化项目的本质,定义:利用GUI自动化测试工具来开发和执行测试脚本,从而验证是否满足需求 本质:测试自动化项目本质上是软件开发项目 一个测试自动化项目必须具有: 清晰定义并严格实施的过程 来自组织各级的支持 周密的计划 具体的设计和架构,Zhu.K,测试自动化成本/收益分析,Zhu.K,自动化测试

8、的引入和应用,找准测试自动化的切入点 把测试开发纳入整个软件开发体系 测试自动化依赖测试流程和测试用例 软件测试自动化的投入较大 进行资源的合理调度,Zhu.K,自动化测试工作流程,收集测试信息,测试需求是什么? 那里能得到用到的数据?,建立基本测试,纪录用户的操作 核实成功回放,提高基本测试,插入测试点 驱动测试数据,整体测试,关联数据 建立综合的测试场景,Zhu.K,测试自动化的基本结构,拷贝测试文件,拷贝测试结果,分派工作,分派工作,查询结果,Build系统编译,获取测试任务、数据,更新 显示,软件包,Zhu.K,发布指令,测试自动化的原理和方法,代码分析: 类似于高级编译系统,在工具中

9、定义类/对象/函数/变量等定义规则、语法规则等,在分析时对代码进行语法扫描,找出不符合编码规范的地方。 捕获和回放: 代码分析是一种白盒测试的自动化方法,捕获和回放则是一种黑盒测试的自动化方法。,Zhu.K,对象识别,编辑框,下拉框,按钮,QuickTest 在支持应用中识别、确定每一个对象是什么类型,复选框,选择框,Zhu.K,对象识别 2,逻辑名称是对象属性之一的值 数值 用于识别对象名称,Zhu.K,对象识别 3,对象库 是本地在测试结构范围内 存储对像信息.,对象库,例如对象 (属性) 包含登陆窗口在记录过程中捕获的: - Agent Name field - Password fie

10、ld - OK button - Cancel button - Help button,Zhu.K,脚本技术,线性脚本,是录制手工执行的测试用例得到的脚本,这种脚本包含所有的击键、移动、输入数据等,所有录制的测试用例都可以得到完整的回放。 结构化脚本,类似于结构化程序设计,具有各种逻辑结构、函数调用功能。 共享脚本,是指某个脚本可以被多个测试用例使用。 数据驱动脚本,将测试输入存储在独立的(数据)文件中,而不是存储在脚本中。 关键字驱动脚本,是数据驱动脚本的逻辑扩张,Zhu.K,Example -1,GUI Script (.rec) Low-Level script VU Script (

11、.S) GUI Shell Script (.rec) Project Header File (.sbh) SQABasic File (.sbl),Zhu.K,Script example -2,Zhu.K,GUI Scripts types,TS-script It include the script which can not be re-used, we often use it to generate test log. B-script TA Building block, it include the script which can be re-used. U-script

12、 Used to make sure all code in a function can work normally.,Zhu.K,Sample script,=Section Two - header file, public variables and constants declaration area= $include “rtpCMCSanity0225_BB_X.sbh“ $Include “rtpCMC5_BB.sbh“ $include “rtpReportLog.sbh“ =Section Three - Unit test scripting area for this

13、subroutine or function Sub Main CallScript “rtpCMCSanity0225_init“ Dim Result As Integer Dim meetingTopic As String If there already a meeting meeting, didnt start again SQASuspendLogOutput Result = WindowVP (Exists, “Caption=*“ +MEETING_CLIENT_CAPTION+ “*“, “VP=Window Existence;Wait=1,3“) SQAResume

14、LogOutput If Result = 0 Then Result = func_MiscScheduleStartMeetingSimple (PAGE_CAPTION, meetingTopic, MEETING_PASSWD) Else End If,Zhu.K,SQAGetProperty Result = SQAGetProperty (ObjectRec, “State“, CheckState) SQAGetPropertyAsString Result = SQAGetPropertyAsString(“;Caption=Notepad - (Untitled)“, “Wi

15、ndowState“, StateString) SQASetProperty SQASetProperty “Name=FirstName“, “Text“, “Michael“ SQAWaitForObject Result = SQAWaitForObject(“Type=PushButton;Text=OK“, 120000),Object Scripting commands,Zhu.K,CheckBox CheckBox Click, “Name=Overdraft“ ComboBox, ComboListBox EditBox HTMLDocument , HTMLImage , HTMLLink InputKeys InputKeys “This is Robot.Enter“,User Acti

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 计算机应用/办公自动化

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号