您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 第四部分--软件测试与维护(12-13)
第四部分软件测试与维护问题软件测试的目的是什么?有哪些过程?什么是黑盒技术?什么是白盒技术?有哪些方法?什么是集成测试?有哪些集成策略?各有什么特点?如何构造测试用例?什么是调试技术?有哪些方法?测试有哪些模型?各有什么特点?因果图方法用于什么情况?什么是逻辑覆盖?如何进行基本路径测试?什么是软件可维护性?维护有哪些类型?如何提高可维护性?第12章软件测试软件测试的目的是什么?软件测试有哪些过程?什么是黑盒技术?什么是白盒技术?有哪些方法?什么是集成测试?有哪些集成策略?各有什么特点?因果图方法用于什么情况?如何构造测试用例?测试有哪些模型?各有什么特点?什么是逻辑覆盖?如何进行基本路径测试?什么是调试技术?有哪些方法?软件测试三个最佳实践尽早测试连续测试自动化测试软件测试的定义软件测试是为了发现缺陷而执行程序的过程测试是为了证明程序中有错误,而不是证明程序中无错误一个好的测试用例指的是它可能发现至今尚未发现的缺陷一次成功的测试指的是发现了新的软件缺陷的测试验证与确认验证(Verification)是指已经实现的软件产品是按照它的需求做的,是符合需求说明书的。确认(Validation)是指已经实现的软件产品或产品组件在用户环境下实现了用户的需要。验证测试指测试人员在模拟用户环境的测试环境下对软件进行测试确认测试是指测试人员在真实的用户环境下检查软件同行评审及测试是主要的验证方法确认主要是对中间及最终产品的检查与验收确认与验证紧密结合测试人员组织测试工作的组织形式分为:测试主管:负责全面地组织和协调工作测试组:测试组由业务人员组成,负责测试案例的编写、具体的测试操作、测试问题的记录与反馈,以及对已修改问题的回归测试和验收等工作。支持组:支持组由业务人员和技术人员共同组成,一方面负责对测试问题进行分析,提交问题解决方案,并作相应修改软件测试目的、任务目的:确认软件的质量提供信息软件测试不仅是在测试软件产品的本身,而且还包括软件开发的过程任务:寻找Bug避免软件开发过程中的缺陷衡量软件的品质关注用户的需求软件测试原则Pareto法则:80%的成就仅仅源于20%的人的努力,也称80/20法则木桶理论:强调改进我们木板最短的那一块.只有短木板变为长木板,桶装水才会更多测试不能证明软件无错完全测试软件是不可能的软件测试是有风险的行为测试无法显示潜伏的软件缺陷程序中存在错误的概率与该程序中已发现的错误数成比例软件缺陷的免疫力并非所有软件缺陷都能修复测试最佳平衡点软件测试完成标准覆盖评测:测试的完全程度如何基于需求的测试覆盖测试覆盖=T(p,i,x,s)/RfT其中:T是用测试过程或测试用例表示的测试(Test)数(已计划的p、已实施的i或成功的s)。RfT(RequirementforTest)是测试需求的总数基于代码的测试覆盖:已经执行的代码的多少测试覆盖=Ie/TIic其中:Ie是用代码语句、代码分支、代码路径、数据状态判定点或数据元素名表示的已执行项目数;TIic(TotalnumberofItemsinthecode)是代码中的项目总数软件测试完成标准质量评测:测试完全程度的评测缺陷报告:缺陷分布(密度)报告允许将缺陷计数作为一个或多个缺陷参数的函数显示,描述当前软件的质量状态。缺陷龄期报告是一种特殊类型的缺陷分布报告。缺陷龄期报告显示缺陷处于特定状态下的时间长短,表示研发团队对质量的反应能力缺陷趋势报告按照状态将缺陷计数作为时间的函数显示,用来标识软件质量变化的趋势性能评测:侧重于获取与软件行为相关的数据动态监测-实时获取并显示正在执行的各测试脚本的状态响应时间/吞吐量-特定主角和/或用例的响应时间或吞吐量的评测百分位报告-数据已收集值的百分位评测/计算比较报告-两个(或多个)数据集之间的差异或趋势软件测试过程模型V模型:展示了在软件生命周期中何时开始测试W模型:测试伴随着整个开发周期H模型:改进缺陷V模型需求分析功能分析详细设计编码实现单元测试集成测试系统测试验收测试V模型的特点就是根据瀑布模型的阶段划分V模型揭示了软件测试活动分层和分阶段的本质特性W模型需求分析功能分析详细设计编码实现单元测试集成测试系统测试验收测试需求测试功能测试详细测试验收集成构造测试的对象不仅仅是程序,需求、功能和设计同样要测试H模型测试就绪点测试执行测试准备其他流程(如设计)H模型是一个软件测试管理模型贯穿于整个产品周期,与其它流程并发的进行当某个测试时间点就绪时,软件测试即从测试准备阶段进入测试执行阶段软件测试策略单元测试:测试软件中的基本组成单位采用白盒测试方法,尽可能发现模块内部的程序差错工作量较大单元测试越早越好集成测试:是把多模块按照一定的集成方法和策略,逐步组装成子系统,进而组装成整个系统的测试多模块集成方式一般都采用渐增式,有自顶向下、自底向上和混合式(“三明治”)三种确认测试:确认已组装的程序是否满足软件需求规格说明书系统测试:保证所实现的系统确实是用户所想要的单元测试单元测试任务包括:模块接口测试模块局部数据结构测试保证临时存储在模块内的数据在程序执行过程中完整、正确模块边界条件测试采用边界值分析技术模块中所有独立执行通路测试保证模块中每条语句至少执行一次模块的各条错误处理通路测试基本路径测试和循环测试单元测试应为测试模块开发:一个驱动模块(driver)若干个桩模块(stub)面向对象的软件:最小的可测试单元是封装起来的类和对象不能再孤立地测试单个操作,而应该把操作作为类的一部分来测试集成测试原因:多模块程序的各模块之间可能有比较复杂的接口单元测试中往往使用了测试软件,即“驱动”模块或/和“桩”模块模块组装后的积累误差可能达到了不能容忍的地步集成测试策略自顶向下:优点是能较早展示整个程序的概貌,取得用户的理解和支持;缺点是测试上层模块时要使用桩模块,很难模拟出真实模块的全部功能自底向上测试从下层模块开始,设计测试用例比较容易,但是在测试的早期不能显示出整个程序的概貌混合式测试的优点综合了以上两种测试策略的长处确认测试目的是确认已组装的程序是否满足软件需求规格说明书(SRS)的要求有效性测试主要采用黑盒测试方法配置复审主要采用人工评审方法确认测试是由软件开发单位组织实施的最后一项开发活动系统测试包括:功能测试:也称为需求测试,主要测试系统的功能性需求性能测试:主要测试系统的非功能性需求强度测试安全性测试安全性测试恢复测试软件配置审查兼容性测试验收测试安装测试测试用例设计测试用例被看作是有效发现软件缺陷的最小测试执行单元,也被视为软件的测试规格说明书设计好测试用例,也是保证测试工作的最关键的因素之一目的:尽可能地找出软件错误杜绝冗余的测试寻找最佳测试方法使得程序失效显而易见设计测试用例分为:白盒设计方法逻辑覆盖法语句覆盖、判定覆盖、条件覆盖基本路径覆盖法黑盒设计方法等价类划分法边界值划分法错误推测法因果图法阶段是测试策略、测试计划、测试描述和测试过程如何编写可测试的程序分离界面和实现契约式设计注意模块的粒度减少模块之间的耦合控制随机因素为支持测试提供额外的函数黑盒测试技术黑盒测试是根据程序组件的规格说明测试软件功能的方法,所以也称为功能测试被测对象作为一个黑盒子,它的功能行为只能通过研究其输入和输出来确定,所以又称为软件输入/输出接口测试黑盒测试注重于功能和数据信息域的测试黑盒设计测试用例的原则:对于有输入的所有功能,既要用有效的输入来测试,也要用无效的输入来测试。经过菜单调用的所有功能都应该被测试,包括通过同一个菜单调用的组合功能也要测试。设计的测试用例数量,能够达到合理测试所需的“最少”(减少测试成本)。设计的测试用例,不仅能够告知有没有错误,而且能够告知某些类型的错误存在或不存在(提高测试效率)黑盒测试技术等价类划分边值分析法错误推测法因果图法等价类划分等价类划分是一种典型的黑盒测试方法等价类划分的办法是把程序的输入域划分成若干等价类,然后从每个部分中选取少数代表性数据当作测试用例两类:有效等价类无效等价类原则:pp208举例:ATM机边界值分析边值分析法是列出单元功能、输入、状态及控制的合法边界值和非法边界值,设计测试用例包含全部边界值的方法几条原则:输入条件规定了取值范围,或是规定了值的个数,则应以该范围的边界内及刚刚超出范围的边界外的值程序规范中提到的输入或输出域是个有序的集合(如顺序文件、表格等)就应注意选取有序集的第一个和最后一个元素作为测试用例举例某程序读入a、b、c三个代表三角形三条边的整数值,根据a、b、c值判断组成三角形的情况。请列出a、b、c变量所有输入不合理的等价类,使用边界值分析方案设计测试用例不合理的等价类测试数据(a,b,c)非三角形(10,10,21)(10,21,10)(21,10,10)退化情况(10,5,5)(5,10,5)(5,5,10)零数据(0,0,0)(0,11,0)(0,10,12)负数据(-5,6,7)(-5,-5,10)(-10,-10,-10)遗漏数据(—,—,—)(10,—,—)(10,10,—)无效数据(A,B,C)(+,=,*)(10.6,A,7e3)错误推测错误推测法采用的是一种凭借先验知识对被测对象做类比测试的思路错误推测法还常被用于“错误成群”现象的处理因果图法等价类划分法并没有考虑到输入情况的各种组合因果图法步骤:从程序规格说明书的描述中找出因(输入条件)和果(输出或程序状态的改变)因果图转换为判定表为判定表中的每一列设计一个测试用例因果图法符号与关系CiEi恒等A)Ci=1,Ei=1;Ci=0,Ei=0;C1Ei或B)Ci=1,Ei=0;Ci=0,Ei=1;C2C3CiEi非C)C1,C2,C3有一个以上=1,Ei=1;C1,C2,C3全=0,Ei=0;C1Ei与C2C3D)C1,C2,C3全=1,Ei=1;C1,C2,C3有一个以上=0,Ei=0;举例问题描述:有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。其规格说明如下:若投入5角钱或1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示〖零钱找完〗的红灯灭,在送出饮料的同时退还5角硬币。分析列出原因和结果原因:1.售货机有零钱找2.投入1元硬币3.投入5角硬币4.押下橙汁按钮5.押下啤酒按钮建立中间结点,表示处理中间状态:11.投入1元硬币且押下饮料按钮12.押下〖橙汁〗或〖啤酒〗的按钮12.应当找5角零钱并且售货机有零钱找12.钱已付清结果:21.售货机〖零钱找完〗灯亮22.退还1元硬币23.退还5角硬币24.送出橙汁饮料25.送出啤酒饮料画出因果图加上约束条件由于2与3,4与5不能同时发生,分别加上约束条件E其他或、与关系转换成判定表白盒技术白盒测试是有选择地执行(或覆盖)程序中某些最有代表性路径的测试方法,所以也称为逻辑覆盖测试软件自身的缺陷:逻辑错误和该错误存在的路径被运行的可能性成反比程序的逻辑流可能是违反直觉的书写或打印错误出现在主流和非主流逻辑路径上的可能性是一样的白盒测试方法是从程序的控制结构路径导出测试用例集的白盒测试和黑盒测试的方法对比白盒测试黑盒测试测试规划根据程序的内部结构,如语句的控制结构,模块间的控制结构以及内部数据结构等进行测试根据用户的规格说明,即针对命令、信息、报表等用户界面及体现它们的输入数据与输出数据之间的对应关系,特别是针对功能进行测试特点优点能够对程序内部的特定部分进行覆盖测试能站在用户
本文标题:第四部分--软件测试与维护(12-13)
链接地址:https://www.777doc.com/doc-5100103 .html