配色: 字号:
软件测试方法和技术-Ch.11软件测试自动化
2023-02-27 | 阅:  转:  |  分享 
  
软件测试方法和技术 - Ch.11软件测试自动化第十一章 软件测试自动化Zhu.Kerry@gmail.com11.1测试自动化的内涵1
1.2 测试工具的分类和选择11.3 测试工具的主流产品介绍 11.4 IBM-Rational产品的整体解决方案11.5 Mer
cury Interactive产品的整体解决方案11.6 Compuware产品的整体解决方案11.1测试自动化的内涵Zhu.K
erry@gmail.com11.1.1 为什么要软件测试自动化11.1.2 自动化测试的引入和应用11.1.3 测试自动化的基本
结构11.1.4 测试自动化的原理和方法 11.1.5 测试自动化普遍存在的问题手工测试的局限性Zhu.Kerry@gmail.c
om 通过手工测试无法做到覆盖所有代码路径; 许多与时序、死锁、资源冲突、多线程等有关的错误通过手工测试很难捕捉到 在系统负载、性
能测试时,需要模拟大量数据、或大量并发用户等各种应用场合时,也很难通过手工测试来进行 在进行系统可靠性时,需要模拟系统运行十年、几
十年,以验证系统能否稳定运行,也是手工测试无法模拟的。 如果有大量(几千)的测试用例,需要在短时间内完成,手工测试又怎么办呢? 测
试可以发现错误,并不能表明程序的正确性。 自动测试定义软件系统功能规格书(Spec)只是从书面上的一套软件产品是由一套完整的可运行
的测试来定义的测试所有可能情况将遭遇“组合爆炸”问题Win98, WinME, WinNT, Win2k, WinXP, WinX
P TablePC Ed, WinXP MediaCenter Ed, Longhorn, etcEnglish, 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…手工测试的局限性 (2)Zhu.Kerry@gmail.com代码
全部Code Path测试覆盖也几乎不可能每一个if…else…或switch语句就会把情况增加一倍许多异常处理代码在正常使用中不
会碰到许多与时序,死锁,资源冲突,多线程有关的错误很难捕捉到每一个产品都会有不同的版本外加各自的SP与QFE (Quick Fix
Engineering, 又称Hot fix)NT4, VS6 SP1~SP5, Windows 2000 SP1-SP4VS
.NET, SQL Server SP1 – SP3可重复使用的自动测试对产品未来版本与Service Pack的测试将有事半功倍
的效果手工测试的局限性 (2)Zhu.Kerry@gmail.com自动化测试带来的好处1. 缩短周期 Testing cycle
- Regression Testing2. Attributes of TA,Speed 速度Efficiency 效率Ac
curacy and Precise 准确、精确 Relentlessness 无情3. 容易实施、结果可靠4. 做手工不能做Zh
u.Kerry@gmail.com耗费时间低可靠性人力资源不一致性仅对于一次性的测试有益 速度 可重复 覆盖率 可靠 可以再度使用
重复测试节省时间手工测试 vs.自动测试Zhu.Kerry@gmail.com正确认识测试自动化不现实的期望注定测试自动化的失败
测试自动化能:显著降低重复手工测试的时间建立可靠、重复的测试,减少认为错误增强测试质量和覆盖率测试自动化不能:完全替代手工测试和手
工测试工程师保证100%的测试覆盖率弥补测试实践的不足Zhu.Kerry@gmail.com各自特点软件测试自动化(TA)虽然具有
很多优点,但只是对手工测试的一种补充,TA绝不能代替手工测试,有各自的特点: 在系统功能逻辑测试、验收测试、适用性测试、涉及物理交
互性测试时,多采用黑盒测试的手工测试方法; 单元测试、集成测试、系统负载或性能、稳定性、可靠性测试等比较适合采用TA; 对那种不稳
定软件的测试、开发周期很短的软件、一次性的软件等不适合测试自动化 工具本身并没有想象力和灵活性,根据经验报道,自动测试只能发现15
%的缺陷,而手工测试可以发现85%的缺陷;TA工具在进行功能测试时,其准确的含义是回归测试工具,因为工具不能发现更多的新问题,但可
以保证对已经测试过部分进行测试的准确性和客观性 Zhu.Kerry@gmail.com测试自动化项目的本质定义:利用GUI自动化测
试工具来开发和执行测试脚本,从而验证是否满足需求本质:测试自动化项目本质上是软件开发项目一个测试自动化项目必须具有:清晰定义并严格
实施的过程来自组织各级的支持周密的计划具体的设计和架构Zhu.Kerry@gmail.com测试自动化成本/收益分析Zhu.Ker
ry@gmail.com自动化测试的引入和应用 找准测试自动化的切入点 把测试开发纳入整个软件开发体系 测试自动化依赖测试流程和测
试用例 软件测试自动化的投入较大 进行资源的合理调度Zhu.Kerry@gmail.com自动化测试工作流程收集测试信息测试需求是
什么?那里能得到用到的数据?建立基本测试纪录用户的操作核实成功回放提高基本测试插入测试点驱动测试数据整体测试关联数据建立综合的测试
场景Zhu.Kerry@gmail.com测试自动化的基本结构拷贝测试文件拷贝测试结果分派工作分派工作查询结果Build系统编译获
取测试任务、数据更新显示软件包Zhu.Kerry@gmail.com发布指令测试自动化的原理和方法 代码分析: 类似于高级编译系统
,在工具中定义类/对象/函数/变量等定义规则、语法规则等,在分析时对代码进行语法扫描,找出不符合编码规范的地方。   捕获和回放:
代码分析是一种白盒测试的自动化方法,捕获和回放则是一种黑盒测试的自动化方法。Zhu.Kerry@gmail.com对象识别编辑框
下拉框按钮QuickTest 在支持应用中识别、确定每一个对象是什么类型复选框选择框Zhu.Kerry@gmail.com对象识别
- 2逻辑名称是对象属性之一的值数值 用于识别对象名称Zhu.Kerry@gmail.com对象识别 - 3对象库 是本地在测试
结构范围内 存储对像信息.对象库例如对象 (属性) 包含登陆窗口在记录过程中捕获的:- Agent Name field- Pas
sword field- OK button- Cancel button- Help buttonZhu.Kerry@gmail
.com脚本技术 线性脚本,是录制手工执行的测试用例得到的脚本,这种脚本包含所有的击键、移动、输入数据等,所有录制的测试用例都可以
得到完整的回放。 结构化脚本,类似于结构化程序设计,具有各种逻辑结构、函数调用功能。 共享脚本,是指某个脚本可以被多个测试用例使用
。 数据驱动脚本,将测试输入存储在独立的(数据)文件中,而不是存储在脚本中。 关键字驱动脚本,是数据驱动脚本的逻辑扩张 Zhu.K
erry@gmail.comExample -1GUI Script (.rec)Low-Level scriptVU Scrip
t (.S)GUI Shell Script (.rec)Project Header File (.sbh)SQABasic F
ile (.sbl)Zhu.Kerry@gmail.comScript example -2Zhu.Kerry@gmail.com
GUI Scripts typesTS-script It include the script which can not be
re-used, we often use it to generate test log.B-script TA Buildi
ng block, it include the script which can be re-used.U-script Use
d to make sure all code in a function can work normally.Zhu.Kerry
@gmail.comSample script''====Section Two - header file, public var
iables and constants declaration area================
''$include "rtpCMCSanity0225_BB_X.sbh
"''$Include "rtpCMC5_BB.sbh"''$include "rtpReportLog.sbh"''====Secti
on Three - Unit test scripting area for this subroutine or functi
on Sub Main CallScript "rtpCMCSanity0225_init" Dim Result As In
teger Dim meetingTopic As String ''If there already a meeting me
eting, didn''t start again SQASuspendLogOutput Result = Wi
ndowVP (Exists, "Caption={" +MEETING_CLIENT_CAPTION+ "}",
"VP=Window Exist
ence;Wait=1,3") SQAResumeLogOutput If Result = 0 Then Re
sult = func_MiscScheduleStartMeetingSimple (PAGE_CAPTION,
meetingTopic, MEE
TING_PASSWD) Else … End IfZhu.Kerry@gmail.comSQAGetProperty Resu
lt = SQAGetProperty (ObjectRec, "State", CheckState) SQAGetProper
tyAsString Result = SQAGetPropertyAsString("\;Caption=Notepad -
(Untitled)", "WindowState", StateString)SQASetProperty SQASetProp
erty "Name=FirstName", "Text", "Michael“SQAWaitForObject Result =
SQAWaitForObject("Type=PushButton;Text=OK", 120000) Object Scrip
ting commands Zhu.Kerry@gmail.comCheckBox CheckBox Click, "Name=
Overdraft"ComboBox, ComboListBox EditBoxHTMLDocument , HTMLImage
, HTMLLink InputKeys InputKeys "This is Robot.{Enter}"User Action
commandsZhu.Kerry@gmail.com自动比较 静态比较和动态比较, 简单比较和复杂比较, 敏感性测试比较
和健壮性测试比较,。 比较过滤器 Zhu.Kerry@gmail.comComboBoxVPEditBoxVP FileVPHTM
LLinkVP HTMLDocumentVP ListViewVP WindowVP JavaListViewVP Synt
ax of WindowVP function: Result = WindowVP (action%, recMethod$,
parameters$) [action can be one of following values] CompareI
mage CompareMenu CompareProperties Exists/DoesNotExist … Win
dowVP (CompareImage, "Caption=Paint", "VP=PICT1A") This function
returns 1 if the action performed passes Return 0 if the action
performed fails. Verification Point commandsZhu.Kerry@gmail.com
测试自动化普遍存在的问题 不正确的观念或不现实的期望 缺乏具有良好素质、经验的测试人才 测试工具本身的问题影响测试的质量 没有进行
有效的、充分的培训 没有考虑到公司的实际情况,盲目引入测试工具 没有形成一个良好的使用测试工具的环境 其它技术问题和组织问题Zhu
.Kerry@gmail.com11.2 测试工具的分类和选择Zhu.Kerry@gmail.com11.2.1 测试工具的分类1
1.2.2 测试工具的选择测试工具是测试自动化的表现测试工具的研究 软件测试的过程是一项很复杂而费时的工作,它不仅执行每一个测试
用例,还要设置运行环境、记录输出、运行后清理并记录失败信息。仅仅依靠测试人员手工完成是很困难的。所以必须研究测试工具以帮助测试人员
自动或半自动的完成测试。 在资金和人力、时间的供给一定的条件下面,拥有好的测试工具能够提高测试效率从而降低测试成本,则能够选
择更高的测试充分性标准进行测试,从而提高软件质量。Zhu.Kerry@gmail.com测试工具的例子Zhu.Kerry@gmai
l.com测试工具的分类Code analysis Tools - Static analysis - Dynamic ana
lysisTest Execution Tool - Capture and Replay ( Record & Playbac
k) - Monitor Tool - Stubs and Drivers - Automated Testing Envi
ronmentTest case generatorsZhu.Kerry@gmail.com测试工具的选择Zhu.Kerry@gm
ail.com11.3 测试工具的主流产品介绍 Zhu.Kerry@gmail.com11.3.1 面向开发的单元测试工具11.3
.2 负载和性能测试工具11.3.3 GUI功能测试工具11.3.4 基于Web应用的测试工具11.3.5 软件测试管理和其他工具
面向开发的单元测试工具根据不同的语言进行分类:C/C++单元级测试工具Panorama C++,C++Test, Numega J
Unit是一个开发源代码的Java测试框架根据工具的功能特点进行分类: 内存资源泄漏检查工具:Numega中的BounceChec
ker, Rational的Purify等 代码覆盖率检查工具:Numega的TrueCoverage, Rational的Pur
eCoverage,TeleLogic公司的Logiscope 代码性能检查工具:Logiscope和 Macabe等。 软件纠错
工具Rational Purl等。Zhu.Kerry@gmail.com负载和性能测试工具Zhu.Kerry@gmail.comG
UI功能测试工具将操作应用程序的各种动作和输入记录下来,包括键盘操作、鼠标点击等捕捉(Record)下来,生成一个脚本文件,这个脚
本以后可以被“回放( playback)” 。在实际测试过程中,要根据测试需求对录制的脚本进行一些必要的修改或加入一些参数,如选择
不同的测试数据、脚本中插入检查点(Check Point)进行跟踪调试等。基于GUI功能测试工具主要适合回归测试阶段。当一个应用开
发基本完成后,程序界面基本定型,虽然业务的需求会很频繁变化,但测试脚本结构基本不需要改动,只需要做些小调整,就可以自动运行,则可大
大提高了测试的效率和测试的准确性。目前主要产品有MI公司的 WinRunner, Compuware的QARun, Rationa
l的 SQA Robot,MS Visual Test Suite等Zhu.Kerry@gmail.comGUI自动化测试 设计测
试用例,并手工进行测试。 如果测试未通过,则先改正缺陷,再次执行测试。 如果测试通过,利用测试工具运行该测试过程,捕获运行过程需要
检测的屏幕对象,并保存。 在进行回归测试测试,自动利用测试工具运行测试,并比较运行过程的屏幕对象与保存的屏幕对象比较,从而判断测试
用例是否通过。Zhu.Kerry@gmail.com基于Web应用的测试工具基于Web应用的测试工具主要进行链接检查、HTML检查
、Web功能和Web站点安全性等各个方面的测试。主要Web测试工具有MI公司的Astra?系列(如Astra?QuickTest?
)、RSW公司的 E-Test Suite等;Web系统测试工具: WorkBench、Web Application Str
ess Tool(WAS)、页面链接测试Link Sleuth等。 Zhu.Kerry@gmail.comWebsite性能测试测
什么?各种操作的响应速度最大并发用户数最大数据容量ACT (Application Center Test) Zhu.Kerry
@gmail.comACT测试中的常见术语RPS (Request Per Second)并发连接数 (Simultaneous
Browser Connections)思考时间 (Thinking Time)RPS + SBC + Thinking Time
= Concurrent users?Zhu.Kerry@gmail.comACT测试的步骤创建测试脚本手工编写VBScript
录音并修改运行测试脚本设定并发用户数设定用户身份运行、观察、获取主观体验理解结果报告图表各项性能统计数字日志文件Zhu.Kerry
@gmail.com解读ACT测试结果TTFB, TTLBHTTP错误的含义401403404500常见的ACT结果图线Zhu.K
erry@gmail.com其他Web负载发生工具 Microsoft''s Web Application Stress Tool
Cyrano''s OpenSTA Quest Software''s Benchmark Factory Empirix''s E-
Test Suite 6.0 RadView''s WebLoad 5.0 Rational Software''s Rational
Robot Mercury Interctive''s Astra LoadRunner 7.5 Compuware''s QA L
oad 4.7 Segue Software''s SilePerformer 5.0Zhu.Kerry@gmail.com11.4
Rational产品的整体解决方案Zhu.Kerry@gmail.com11.4.1 Rational测试产品结构11.4.2
Rational 全套测试解决方案的特点 TestManager: 集中、可伸缩的测试管理平台Robot:传统应用自动化测试工具R
obotJ:Web/Java自动测试工具ClearQuest:缺陷跟踪工具Rational系统测试方案Zhu.Kerry@gmai
l.comTestManager: 控制中心Zhu.Kerry@gmail.comTestManager和ClearQuest集成
Zhu.Kerry@gmail.comTestManager: 跨越整个测试周期 üZhu.Kerry@gmail.com自动实现
缺陷与需求之间的关联Zhu.Kerry@gmail.com测试度量: 覆盖, 趋势等Zhu.Kerry@gmail.comRobo
t GUI的自动功能测试2. 执行测试脚本Zhu.Kerry@gmail.com和白盒工具集成Zhu.Kerry@gmail.co
mRobotJ:测试Java和Web应用Script Assure 技术保证了即使对象名称发生改变,测试脚本也能正常回放验证动态内
容利用Eclipse这一标准的IDE环境,同时提供与版本控制工具的集成Professional Language and IDEN
EW Technology for Java and Web Based ApplicationsZhu.Kerry@gmail.
comScriptAssure: 降低了测试脚本的维护成本Version 1.0Version 2.0Zhu.Kerry@gma
il.com动态数据验证:可伸缩的测试脚本Order ID changes with each order placedTest
Fails when comparing static baseline to dynamic dataTest Passes w
hen comparing pattern baseline to dynamic data动态内容匹配利用模式匹配技术来验证数据
如不是验证 “Order ID 230”, 而是 “Order ID ###” 当验证应用的行为时,考虑了各种不同的合法响应Zhu
.Kerry@gmail.com业界标准的IDE和测试脚本语言Eclipse集成环境调试器、代码编辑器使用标准的Java语言作为测
试脚本语言Zhu.Kerry@gmail.comZhu.Kerry@gmail.com11.5 MI产品的整体解决方案60Load
Runner 的解决方案Web服务器数据库服务器利用图表工具分析测试结果利用录制的脚本进行回归测试运行大量的“Virtual Us
ers”在不同的机器上利用 “Virtual Users”代替实际测试人员通过“Controller”管理“ Vusers”Zhu
.Kerry@gmail.com61LoadRunner 的解决方案支持多种协议和APIZhu.Kerry@gmail.com62
LoadRunner 的解决方案能够对多种Server和资源进行监控Web服务器Web应用服务器数据库服务器系统资源Zhu.Ker
ry@gmail.com63LoadRunner 的解决方案产生压力和搜集测试结果生成用于“Controller”部署的“ Vus
ers”通过图表分析工具来编译和显示测试结果Zhu.Kerry@gmail.com系统性能调优LoadRunner 工作流程NOT
E: 这是LR的一个典型工作流程。为便于理解这个流程,在本教程中有些步骤将按照 不同的顺序来介绍。Zhu.Kerry@gmail.com11.6 Compuware产品的整体解决方案Zhu.Kerry@gmail.com11.6.1 Compuware产品结构11.6.2 Compuware分阶段解决方案Compuware产品结构Zhu.Kerry@gmail.com1.黑盒测试工具 QACenter 2.白盒测试工具—Numega系列产品 3.Vantage 应用级网络性能监控管理软件编码实现阶段 Zhu.Kerry@gmail.com运行期错误检测和诊断工具Error Detection、代码覆盖率分析工具Coverage Analysis、性能分析和优化工具Performance Analysis、设备驱动开发套件NuMega DriverStudio、JAVA可视线程和事件分析工具JCheck、交互式的存储过程调试和优化工具DBPartner DebuggerVB源代码分析、错误诊断、处理和恢复工具(CodeReview,SmartCheck,FailSafe等)。 测试阶段Zhu.Kerry@gmail.com自动捕获和回放工具QARun应用性能加载工具QALoad Web站点质量分析工具WebCheckweb应用功能测试工具TestPartner测试管理和设计系统QADirector缺陷跟踪系统TrackRecord。 网络性能测试Zhu.Kerry@gmail.com网络应用性能分析工具Application Expert网络应用性能监控工具Network Vantage服务器数据库性能监控工具Server Vantage
献花(0)
+1
(本文系通信农民工原创)