测试测试自动化.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《测试测试自动化.ppt》由会员分享,可在线阅读,更多相关《测试测试自动化.ppt(121页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、6.7.2 6.7.2 测试测试自动化测试测试自动化 另一类软件测试工具另一类软件测试工具,可以自动执行测试用例、可以自动执行测试用例、查找软件缺陷、分析并记录测试结果。查找软件缺陷、分析并记录测试结果。测试工作台测试工作台(下游下游CASECASE工具工具)源代码源代码预测器预测器测试管理器测试管理器测试预估测试预估模拟器模拟器文件比较器文件比较器报告生成器报告生成器动态分析器动态分析器被测试被测试的程序的程序测试数据测试数据测试结果测试结果测试结测试结果报告果报告执行报告执行报告测试数据生成器测试数据生成器规约规约随机测试自动化工具随机测试自动化工具:猴子测试员猴子测试员只要不停电只要不停
2、电,偶尔能够得到香蕉偶尔能够得到香蕉,猴子就会永远测试下去猴子就会永远测试下去一个想法一个想法:“如果让如果让一百万只猴一百万只猴子在一百万子在一百万只键盘上敲只键盘上敲一百万年一百万年,它们最终就它们最终就可能写出莎可能写出莎士比亚话剧士比亚话剧等巨著等巨著”.”.猴子的进步猴子的进步笨猴子笨猴子:一点也不懂测试软件一点也不懂测试软件,只是随机地单击或按键只是随机地单击或按键,直至发生两件事情之一直至发生两件事情之一:完成循环或系统崩溃完成循环或系统崩溃.不太笨的猴子不太笨的猴子:具有崩溃辨认能力具有崩溃辨认能力,能够重新启动系统开始测试能够重新启动系统开始测试聪明猴子聪明猴子:能够从它的笨
3、兄弟那里获得随机测试的结果能够从它的笨兄弟那里获得随机测试的结果,增加了对环境的认知能力增加了对环境的认知能力,有目的地敲键盘有目的地敲键盘,不仅限于查找崩溃缺陷不仅限于查找崩溃缺陷,同时查看数据同时查看数据,检查检查 操作结果操作结果,找出与预期结果的差别找出与预期结果的差别自动化测试工具实例自动化测试工具实例 美国国际软件自动化(美国国际软件自动化(ISA)公司)公司的的Panorama for C/C+,j、Java和和VB产品,自动化功能包括:产品,自动化功能包括:软件结构分析与逻辑框图的自动化软件结构分析与逻辑框图的自动化软件静态分析软件静态分析数据分析数据分析复杂性分析与分析结果列
4、表的自动化复杂性分析与分析结果列表的自动化软件质量分析软件质量分析动态性能分析动态性能分析软件代码分支或条件覆盖率分析软件代码分支或条件覆盖率分析软件测试用例有效性分析与测试用例最小集的自动选取软件测试用例有效性分析与测试用例最小集的自动选取软件界面手工操作过程的自动记录与自动再执行软件界面手工操作过程的自动记录与自动再执行 (Playback)6.86.8调试调试(纠错技术纠错技术)测试测试是找出软件错误的过程,是找出软件错误的过程,调试调试是确定错误的位置是确定错误的位置、性质性质 并纠正。并纠正。调试的调试的困难在于错误的定位困难在于错误的定位.调试的执行步骤调试的执行步骤错误现场错误现
5、场结果结果执行案例执行案例改正改正测试用例测试用例调试调试已识别已识别的原因的原因被怀疑被怀疑的原因的原因回归回归测试测试附加附加测试测试6.8.1 6.8.1 排错策略方法排错策略方法一一.强行排错强行排错(brute force)(brute force)常见形式常见形式:(1)(1)打印出所有存储内容打印出所有存储内容、代码代码(2)(2)程序中设打印语句程序中设打印语句(3)(3)用自动纠错工具用自动纠错工具 效率最低效率最低二二.回溯法回溯法(跟踪法跟踪法)根据错误症状位置,人工沿程根据错误症状位置,人工沿程序控制流程向回追踪源代码。序控制流程向回追踪源代码。适用于小程序,路径数目很
6、大适用于小程序,路径数目很大时无法进行。时无法进行。三三.消去原因消去原因(cause limination)(cause limination)列出可能原因列出可能原因,逐个排除逐个排除,找出问题找出问题(1)(1)试探法试探法(2)(2)归纳法归纳法(3)(3)演绎法演绎法(4)(4)二分查找法二分查找法(1)(1)归纳法归纳法收集收集有关有关数据数据组织组织数据数据构造构造线索线索研究研究线索线索关系关系假设假设错误错误原因原因证明证明假设假设纠正纠正错误错误能能不不能能证证明明线索线索关系关系错误错误线索线索能能不能不能(2)(2)演绎法演绎法列举列举可能可能错误错误原因原因排除排除不
7、会不会发生发生原因原因对保对保留的留的假设假设推断推断证明证明留下留下的假的假设设确定确定错误错误待定待定错因错因剩余剩余错因错因能能出错出错原因原因不能不能收集更收集更多数据多数据无剩余无剩余6.8.2 6.8.2 修改错误原则修改错误原则注意错误的群集现象,在错误近邻检注意错误的群集现象,在错误近邻检查。查。找到错误的本质并修改找到错误的本质并修改采用回归测试,避免因修改引起的新采用回归测试,避免因修改引起的新错误。错误。修改源程序。修改源程序。6.96.9 测试中的可靠性分析测试中的可靠性分析 开发过程中,利用测试的统计数据来开发过程中,利用测试的统计数据来估算软件的可靠性,以控制软件的
8、质估算软件的可靠性,以控制软件的质量。量。推测错误的产生频度推测错误的产生频度推测残留在程序中的错误数推测残留在程序中的错误数评价测试的精确度和覆盖率评价测试的精确度和覆盖率推测错误的产生频度推测错误的产生频度(推测错误产生的时间间隔)(推测错误产生的时间间隔)1 1K(EK(ET T/I IT T-E-Ec(t)c(t)/I IT T)方法方法:估算平均故障时间估算平均故障时间(MTTF估算公式估算公式)当当故障率为独立于时间的常量故障率为独立于时间的常量:MTTFMTTF K K:经验常数经验常数ETET:程序中原有的残留错误数程序中原有的残留错误数ITIT:程序长度程序长度t t:测试时
9、间测试时间 Ec(t)Ec(t):在在0-t0-t期间内发现的错误总数期间内发现的错误总数1 1=推测残留在程序中的错误数推测残留在程序中的错误数错误植入模型错误植入模型 Mills Mills将将播种模型播种模型用于程序中残留错误的估用于程序中残留错误的估算算,称称错误植入模型错误植入模型播种模型:播种模型:N N:程序中原有残留的错误数程序中原有残留的错误数NtNt:新植入的错误数:新植入的错误数n:n:测试发现的原有错误数测试发现的原有错误数nt:nt:测试发现的植入错误数测试发现的植入错误数N NN Nn nn nt tt tN NN Nn nn nt t=t tHymanHyman对
10、错误植入模型的改进对错误植入模型的改进E ET T:程序中原有的残留错误数程序中原有的残留错误数E E1 1:1 1号测试员在某一时间内发现的错误数号测试员在某一时间内发现的错误数E E2 2:2 2号测试员在同一时间内发现的错误数号测试员在同一时间内发现的错误数E E0 0:两位测试员共同发现的错误数两位测试员共同发现的错误数E EE EE EE E1 10 0=2 2T TE ET TE E1 1E E2 2/E/E0 0第七章第七章 软件维护与软件再工程软件维护与软件再工程7.1 7.1 软件维护的概念软件维护的概念 四类维护活动:四类维护活动:改正性维护改正性维护 适应性维护适应性维护
11、 扩充与扩充与完善性维护完善性维护 预防性维护预防性维护三类维护所占比例三类维护所占比例:其它维护其它维护 5%5%适应性适应性维维 护护 25%25%改正性改正性维维 护护 20%20%扩充与完扩充与完善性维护善性维护 50%50%改正性维护占全部维护量的比率已从改正性维护占全部维护量的比率已从8080年代初年代初的的20%20%大幅度下降大幅度下降,90,90年代初一些公司的产品年代初一些公司的产品差错率已接近于零差错率已接近于零各类维护活动的根本目的是各类维护活动的根本目的是延长软件生存期延长软件生存期其它维护其它维护 4%4%软件软件生存生存周期周期软件诞生软件诞生计计划划分分析析设设
12、计计编编码码测测试试运行和维护运行和维护(简称维护简称维护)改善期改善期 稳定期稳定期 陈旧期陈旧期1 1年年-10-10年年2 2个月个月-2-2年年重构重构软件工程周期软件工程周期7.2 7.2 软件维护的特点软件维护的特点MP+Ke e=(c c-d d)M M :维护工作总工作量维护工作总工作量P P:生产性工作量生产性工作量K K :经验常数经验常数c c:复杂度复杂度d d:对该软件熟悉程度的度量对该软件熟悉程度的度量7.2.1 7.2.1 维护的成本维护的成本7.2.2 7.2.2 维护中的典型问题维护中的典型问题(1)(1)难以跟踪软件版本的进化过程难以跟踪软件版本的进化过程,
13、软件的变化未在文档中反映出来软件的变化未在文档中反映出来.(2)(2)难以跟踪软件的创建过程难以跟踪软件的创建过程.(3)(3)难以读懂他人程序难以读懂他人程序.(4)(4)无文档或不全无文档或不全.(5)(5)软件人员流动性大软件人员流动性大.(6)(6)设计时未考虑修改需要设计时未考虑修改需要,修改困难修改困难.(7)(7)维护工作无吸引力维护工作无吸引力,缺乏成就感缺乏成就感.7.3 7.3 软件的维护任务软件的维护任务 修改修改负责人负责人维维护申请护申请系统监督员系统监督员配置管理员配置管理员7.3.1 7.3.1 维维护机构护机构维护人员维护人员维护管理员维护管理员7.3.2 7.
14、3.2 保存维护记录保存维护记录维护过程中作应记录的数据维护过程中作应记录的数据F程序标识程序标识F源程序语句数目源程序语句数目F机器代码指令条数机器代码指令条数F.F.以收集的数据为基础构造维护数据库以收集的数据为基础构造维护数据库,供维护评价使用供维护评价使用.7.4 7.4 软件软件维护的实施维护的实施7.4.1.4.1 修改源程序的三个步骤修改源程序的三个步骤F分析和理解程序分析和理解程序F修改程序修改程序F重新验证程序重新验证程序7.4.2.4.2 修改程序的副作用修改程序的副作用修改代码的副作用修改代码的副作用修改数据的副作用修改数据的副作用修改文档的副作用修改文档的副作用7.4.
15、3.4.3 重新验证程序重新验证程序1.1.静态确认静态确认2.2.计算机确认计算机确认3.3.维护后的验收维护后的验收从维护角度所需的测试种类:从维护角度所需的测试种类:(1)(1)对修改事务的测试对修改事务的测试(2)(2)对修改程序的测试对修改程序的测试(3)(3)操作过程的测试操作过程的测试(4)(4)应用系统运行过程的测试应用系统运行过程的测试(5)(5)使用过程的测试使用过程的测试(6)(6)系统各部分间接口的测试系统各部分间接口的测试(7)(7)与系统软件接口的测试与系统软件接口的测试(8)(8)安全性测试安全性测试(9)(9)后备后备/恢复过程测试恢复过程测试 7.5 7.5
16、软件可维护性软件可维护性7.5.1 7.5.1 软件软件可维可维护性的定义护性的定义 软件可维护性是指纠正软件系统出现的软件可维护性是指纠正软件系统出现的错误和缺陷,以及为满足新的要求进错误和缺陷,以及为满足新的要求进行修改、扩充或压缩的容易程度。行修改、扩充或压缩的容易程度。衡量软件质量的几个主要质量特性:衡量软件质量的几个主要质量特性:u可维护性可维护性u可使用性可使用性u可靠性可靠性7.5.2.5.2 可维护性的度量可维护性的度量度量程序可维护性的度量程序可维护性的7 7个特性在各类维护个特性在各类维护中的侧重点中的侧重点 改正性维护改正性维护 适应性维护适应性维护 完善性维护完善性维护
17、可理解性可理解性 可测试性可测试性 可修改性可修改性 可靠性可靠性 可移植性可移植性 可使用性可使用性 效率效率 7.6 7.6 提高可维护性的方法提高可维护性的方法F 建立明确的软件质量目标和优先级建立明确的软件质量目标和优先级F 使用提高软件质量的技术和工具使用提高软件质量的技术和工具F 进行明确的质量保证审查进行明确的质量保证审查F 选择可维护的程序设计语言选择可维护的程序设计语言F 改进程序的文档改进程序的文档F 开发软件时考虑到维护开发软件时考虑到维护7.7 7.7 预防性维护预防性维护开发和维护者不应等待用户的维护申开发和维护者不应等待用户的维护申请请,可先选择以下类型程序作为预防
18、可先选择以下类型程序作为预防性维护对象性维护对象:(1)(1)预计若干年内将继续使用的程序预计若干年内将继续使用的程序(2)(2)当今正成功使用的程序当今正成功使用的程序(3)(3)最近的将来要进行大修改和完善的最近的将来要进行大修改和完善的 程序程序7.8 7.8 软件再工程软件再工程 7.8.1 7.8.1 什么是软件再工程什么是软件再工程在软件复用中在软件复用中,有问题是与现有系统密切相关的有问题是与现有系统密切相关的例如例如:现有软件系统如何适应当前技术的发展及需求的变现有软件系统如何适应当前技术的发展及需求的变化化,采用更易于理解的、适应变化的、可复用的系统软采用更易于理解的、适应变
19、化的、可复用的系统软件构架并提炼出可复用的软件构件件构架并提炼出可复用的软件构件?现存大量的遗产软件系统现存大量的遗产软件系统(Legacy Software)(Legacy Software)由于由于技术的发展技术的发展,正逐渐退出使用正逐渐退出使用,如何对这些系统进行挖掘、如何对这些系统进行挖掘、整理整理,得到有用的软件构件得到有用的软件构件?已有的软件构件随着时间的流逝会逐渐变得不可已有的软件构件随着时间的流逝会逐渐变得不可使用使用,如何对它们进行维护如何对它们进行维护,以延长其生命期以延长其生命期,充分利用充分利用这些可复用构件这些可复用构件?软件再工程软件再工程(Software R
20、eengineering)(Software Reengineering)正正是解决上述问题的主要技术手段。是解决上述问题的主要技术手段。软件再工程软件再工程是一类软件工程活动,是一类软件工程活动,是一个工程过程是一个工程过程,它将它将逆向工程逆向工程、重构重构和和正正向工程向工程组合起来组合起来,将现存系统重新构造为新将现存系统重新构造为新的形式。再工程的基础是系统理解的形式。再工程的基础是系统理解,包括对包括对运行系统、源代码、设计、分析、文档等运行系统、源代码、设计、分析、文档等的全面理解。但在很多情况下的全面理解。但在很多情况下,由于各类文由于各类文档的丢失档的丢失,只能对源代码进行理
21、解只能对源代码进行理解,即程序即程序理解。理解。它能够使我们:它能够使我们:F 增进对软件的理解;增进对软件的理解;F 提高软件自身的可维护性、复用性或演化性提高软件自身的可维护性、复用性或演化性.软件再工程过程模型软件再工程过程模型代码重构代码重构数据重构数据重构正向工程正向工程库存目录分析库存目录分析文档重构文档重构逆向工程逆向工程逆向工程逆向工程逆向工程逆向工程(反推工程反推工程reverse engineering)reverse engineering)从现有软件恢复设计信息从现有软件恢复设计信息(有用的维护信息有用的维护信息)设计的设计的恢复过程恢复过程非结构化、无文档非结构化、无
22、文档的源代码或目标代码的源代码或目标代码软件的全部文档软件的全部文档软件再工程相关术语间关系软件再工程相关术语间关系 信信息息库库1 1类视图:类视图:非过程性描述、元描述非过程性描述、元描述例:规格说明例:规格说明再工程再工程3 3类视图:类视图:过程性描述过程性描述例:源程序例:源程序再工程再工程2 2类视图:类视图:伪过程性描述、结构性描述伪过程性描述、结构性描述例:例:DFDDFD、PDLPDL A2 A2类视图:类视图:分析分析再工程再工程逆向工程逆向工程设计恢复设计恢复再工程再工程逆向工程逆向工程设计恢复设计恢复再工程再工程 A1 A1类视图:类视图:分析分析 A3 A3类视图:类
23、视图:分析分析分解分解综合生综合生成视图成视图软件视图软件视图 Software view有关软件的一种表达形式或报告;有关软件的一种表达形式或报告;视图分类:视图分类:F1 1类视图:类视图:F2 2类视图:类视图:F3 3类视图:类视图:FA类视图:类视图:伴随上述各类的分析视图;伴随上述各类的分析视图;A1类视图是对类视图是对1 1类视图的分析信息;类视图的分析信息;A2类视图是有关类视图是有关2 2类视图的分析信息;类视图的分析信息;A3类视图是由类视图是由3 3类视图得到。类视图得到。软件视图示例信息库信息库视图编辑器视图编辑器DFD视图编辑器视图编辑器Petri网网视图编辑器视图编
24、辑器ERA图图视图编辑器视图编辑器跟踪矩阵跟踪矩阵X XX XX XReq1 Req2Prog1Prog2Prog3视图编辑器视图编辑器程序结构图程序结构图视图编辑器视图编辑器流程图流程图视图编辑器视图编辑器规格说明规格说明再工程信息库及其产品软件文档软件文档分析结果分析结果信息库设计成果设计成果规格说明规格说明各种图各种图度量值度量值分析、分解器分析、分解器源程序或其模板源程序或其模板(进入点进入点)源程序源程序自动进行再工程的过程软件软件的新视图语法分析器语义分析器视图合成器信息库其他产品经过再工程经过再工程过程可获得过程可获得的信息的信息格式格式图形图形文档文档度量值度量值逻辑逻辑报告报
25、告7.7.8.2.2 软件再工程技术软件再工程技术再工程课题再工程课题 相关技术相关技术重构重构文档重写、加注释、更新文档文档重写、加注释、更新文档复用工程复用工程重新划分模块重新划分模块数据再工程数据再工程业务过程再工程业务过程再工程可维护性分析、业务量分析、经济分析可维护性分析、业务量分析、经济分析理解软件理解软件改进软件改进软件获取、保存及获取、保存及扩充软件的知识扩充软件的知识分解分解逆向工程、恢复设计逆向工程、恢复设计对象恢复对象恢复程序理解程序理解知识库及变换知识库及变换浏览浏览分析、度量分析、度量逆向工程、恢复设计逆向工程、恢复设计1.1.改进软件改进软件(1 1)软件重构)软件
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 测试 自动化
![提示](https://www.deliwenku.com/images/bang_tan.gif)
限制150内