软件测试方法和技术

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
支持平台 支持数据库
支持协议
脚本语言 自动数据生成 脚本调试 报表定制功能
LoadRunner /MI
昂贵
QALoad /Compuware
较贵
WebLoad/Radview
一般
简单
简单
一般
较复杂
简单
简单
各种中间件/数据库/应用服务器 客户/服务器系统、企业资源配 的性能监控/企业架构(j2ee和.net) 置(ERP)和电子商务应用 的测试
可重复使用的自动测试对产品未来版本与Service Pack的测试将 有事半功倍的效果
自动化测试带来的好处
1. 缩短周期 Testing cycle - Regression Testing 2. Attributes of TA,
•Speed 速度 •Efficiency 效率 •Accuracy and Precise 准确、精确 •Relentlessness 无情
正确认识测试自动化
不现实的期望注定测试自动化的失败 测试自动化能:
显著降低重复手工测试的时间 建立可靠、重复的测试,减少认为错误 增强测试质量和覆盖率
测试自动化不能:
完全替代手工测试和手工测试工程师 保证100%的测试覆盖率 弥补测试实践的不足
自动化测试的引入和应用
手工测试的局限性 (2)
代码全部Code Path测试覆盖也几乎不可能 每一个if…else…或switch语句就会把情况增加一倍 许多异常处理代码在正常使用中不会碰到 许多与时序,死锁,资源冲突,多线程有关的错误很难捕捉 到
每一个产品都会有不同的版本外加各自的SP与QFE (Quick Fix Engineering, 又称Hot fix) NT4, VS6 SP1~SP5, Windows 2000 SP1-SP4 VS .NET, SQL Server SP1 – SP3
3. 容易实施、结果可靠 4. 做手工不能做
测试自动化项目的本质
定义:利用GUI自动化测试工具来开发和执行测试 脚本,从而验证是否满足需求
本质:测试自动化项目本质上是软件开发项目 一个测试自动化项目必须具有:
清晰定义并严格实施的过程 来自组织各级的支持 周密的计划 具体的设计和架构
Framework / data-driven (hybrid) structure focusing on views of the application and using datapools
11.6 19 7.4
各自特点
软件测试自动化(TA)虽然具有很多优点,但只是对手工测试 的一种补充,TA绝不能代替手工测试,有各自的特点:
在系统功能逻辑测试、验收测试、适用性测试、涉及物理交互性测试 时,多采用黑盒测试的手工测试方法; 单元测试、集成测试、系统负载或性能、稳定性、可靠性测试等比较 适合采用TA; 对那种不稳定软件的测试、开发周期很短的软件、一次性的软件等不 适合测试自动化 工具本身并没有想象力和灵活性,根据经验报道,自动测试只能发现 15%的缺陷,而手工测试可以发现85%的缺陷;TA工具在进行功能测试 时,其准确的含义是回归测试工具,因为工具不能发现更多的新问题, 但可以保证对已经测试过部分进行测试的准确性和客观性
控制程序 分派工作
机房
更新 Web服务器 显示
分派工作
办公室
查询结果
测试自动化的原理和方法
代码分析: 类似于高级编译系统,在工具中定义类/对象/ 函数/变量等定义规则、语法规则等,在分析时对代码进行 语法扫描,找出不符合编码规范的地方。
捕获和回放: 代码分析是一种白盒测试的自动化方法, 捕获和回放则是一种黑盒测试的自动ຫໍສະໝຸດ Baidu方法。
windows,unix或linux
HP-UX, IBM AIX,Sun Solaris, Linux, NT/2k
Web Application Unix Windows
DB2, SQLserver, Orcale, Sybase ADO, DB2, Oracle, Sybase, SQLserver, Odbc
11.3.1 面向开发的单元测试工具 11.3.2 负载和性能测试工具 11.3.3 GUI功能测试工具 11.3.4 基于Web应用的测试工具 11.3.5 软件测试管理和其他工具
面向开发的单元测试工具
根据不同的语言进行分类: C/C++单元级测试工具Panorama C++,C++Test, Numega JUnit是一个开发源代码的Java测试框架 根据工具的功能特点进行分类: 内存资源泄漏检查工具:Numega中的BounceChecker, Rational的
在资金和人力、时间的供给一定的条件下面,拥有好 的测试工具能够提高测试效率从而降低测试成本,则能够选 择更高的测试充分性标准进行测试,从而提高软件质量。
测试工具的例子
测试工具的分类
•Code analysis Tools
- Static analysis - Dynamic analysis
•Test Execution Tool
Javascript
Y
Y
Y
Y
Y
Y
Y
Y
Y
GUI功能测试工具
将操作应用程序的各种动作和输入记录下来,包括键盘操作、鼠标点 击等捕捉(Record)下来,生成一个脚本文件,这个脚本以后可以被“回 放( playback)” 。在实际测试过程中,要根据测试需求对录制的脚本 进行一些必要的修改或加入一些参数,如选择不同的测试数据、脚本中 插入检查点(Check Point)进行跟踪调试等。
- Capture and Replay ( Record & Playback) - Monitor Tool - Stubs and Drivers - Automated Testing Environment
•Test case generators
测试工具的选择
11.3 测试工具的主流产品介绍
11.2 测试工具的分类和选择
11.2.1 测试工具的分类 11.2.2 测试工具的选择
测试工具是测试自动化的表现
测试工具的研究
软件测试的过程是一项很复杂而费时的工作,它不仅 执行每一个测试用例,还要设置运行环境、记录输出、运行 后清理并记录失败信息。仅仅依靠测试人员手工完成是很困 难的。所以必须研究测试工具以帮助测试人员自动或半自动 的完成测试。
自动比较
静态比较和动态比较, 简单比较和复杂比较, 敏感性测试比较和健壮性测试比较,。 比较过滤器
测试自动化普遍存在的问题
不正确的观念或不现实的期望 缺乏具有良好素质、经验的测试人才 测试工具本身的问题影响测试的质量 没有进行有效的、充分的培训 没有考虑到公司的实际情况,盲目引入测试工具 没有形成一个良好的使用测试工具的环境 其它技术问题和组织问题
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 Studio 6, VS .NET, VS .NET 2003, Whidbey…
基于GUI功能测试工具主要适合回归测试阶段。当一个应用开发基本完 成后,程序界面基本定型,虽然业务的需求会很频繁变化,但测试脚本 结构基本不需要改动,只需要做些小调整,就可以自动运行,则可大大 提高了测试的效率和测试的准确性。
目前主要产品有MI公司的 WinRunner, Compuware的QARun, Rational的 SQA Robot,MS Visual Test Suite等
ADO, DB2, Oracle, Sybase, SQLserver, Odbc
web,http(s), soap, streaming, wap, http, ssl, oap, xml, streaming,
winsock, xml
media
类似C++
C/C++和VC++
xml,java,ejb,activex, wap,http,snmp,real/m $streaming
测试自动化成本/收益分析
结构
成本 收益 净收 益
No Automation
0 00
Recording and Playback
8.3 11 2.7
Data-driven structure using datapools 8.4 18 9.6
Framework structure
9.8 15 5.2
Purify等
代码覆盖率检查工具:Numega的TrueCoverage, Rational的
PureCoverage,TeleLogic公司的Logiscope
代码性能检查工具:Logiscope和 Macabe等。 软件纠错工具Rational Purl等。
负载和性能测试工具
属性 价格 安装配置 操作性 支持测试对象
脚本技术
线性脚本,是录制手工执行的测试用例得到的脚本, 这种脚本包含所有的击键、移动、输入数据等,所有录 制的测试用例都可以得到完整的回放。 结构化脚本,类似于结构化程序设计,具有各种逻辑 结构、函数调用功能。 共享脚本,是指某个脚本可以被多个测试用例使用。 数据驱动脚本,将测试输入存储在独立的(数据)文 件中,而不是存储在脚本中。 关键字驱动脚本,是数据驱动脚本的逻辑扩张
11.1测试自动化的内涵
11.1.1 为什么要软件测试自动化 11.1.2 自动化测试的引入和应用 11.1.3 测试自动化的基本结构 11.1.4 测试自动化的原理和方法 11.1.5 测试自动化普遍存在的问题
手工测试的局限性
通过手工测试无法做到覆盖所有代码路径; 许多与时序、死锁、资源冲突、多线程等有关的错误通过手工测试很 难捕捉到 在系统负载、性能测试时,需要模拟大量数据、或大量并发用户等各 种应用场合时,也很难通过手工测试来进行 在进行系统可靠性时,需要模拟系统运行十年、几十年,以验证系统 能否稳定运行,也是手工测试无法模拟的。 如果有大量(几千)的测试用例,需要在短时间内完成,手工测试又 怎么办呢? 测试可以发现错误,并不能表明程序的正确性。
手工测试的局限性 (2)
自动测试定义软件系统
功能规格书(Spec)只是从书面上的 一套软件产品是由一套完整的可运行的测试来定义的
测试所有可能情况将遭遇“组合爆炸”问题
Win98, WinME, WinNT, Win2k, WinXP, WinXP TablePC Ed, WinXP MediaCenter Ed, Longhorn, etc
找准测试自动化的切入点 把测试开发纳入整个软件开发体系 测试自动化依赖测试流程和测试用例 软件测试自动化的投入较大 进行资源的合理调度
测试自动化的基本结构
文件服务器
Build系统编译 Dev Build, Test Build
SQL Server
寻找工作项目
拷贝测试文件 拷贝测试结果
软件测试方法和技术
- Ch.11软件测试自动化
第十一章 软件测试自动化
11.1测试自动化的内涵 11.2 测试工具的分类和选择 11.3 测试工具的主流产品介绍 11.4 IBM-Rational产品的整体解决方案 11.5 Mercury Interactive产品的整体解决方案 11.6 Compuware产品的整体解决方案
基于Web应用的测试工具
基于Web应用的测试工具主要进行链接检查、HTML检查、 Web功能和Web站点安全性等各个方面的测试。 主要Web测试工具有MI公司的Astra 系列(如 Astra QuickTest )、RSW公司的 E-Test Suite等; Web系统测试工具: WorkBench、Web Application Stress Tool(WAS)、页面链接测试Link Sleuth等。
GUI自动化测试
设计测试用例,并手工进行测试。 如果测试未通过,则先改正缺陷,再次执行测试。 如果测试通过,利用测试工具运行该测试过程,捕获
运行过程需要检测的屏幕对象,并保存。 在进行回归测试测试,自动利用测试工具运行测试,
并比较运行过程的屏幕对象与保存的屏幕对象比较, 从而判断测试用例是否通过。
相关文档
最新文档