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