软件测试方法和技术总结.ppt
《软件测试方法和技术总结.ppt》由会员分享,可在线阅读,更多相关《软件测试方法和技术总结.ppt(165页珍藏版)》请在三一办公上搜索。
1、胡礼勇,软件质量保证和测试-总结,杭师大软件质量保证和测试教学课件,第1章 引论,软件测试的必要性什么是软件测试?软件测试和软件开发的关系,杭师大软件质量保证和测试教学课件,软件测试的必要性,迪斯尼并不总是带来笑声一个缺陷造成了数亿美元损失火星探测飞船坠毁更多的悲剧现代企业的影响,杭师大软件质量保证和测试教学课件,软件测试的正面性,Bill Hetzel博士(正向思维的代表):软件测试就是为程序能够按预期设想那样运行而建立足够的信心。“软件测试是一系列活动以评价一个程序或系统的特性或能力并确定是否达到预期的结果”测试是为了验证软件是否符合用户需求,即验证软件产品是否能正常工作,杭师大软件质量保
2、证和测试教学课件,软件测试的反面性,Glenford J.Myers(反向思维的代表):测试是为了证明程序有错,而不是证明程序无错误 一个好的测试用例是在于它能发现至今未发现的错误 一个成功的测试是发现了至今未发现的错误的测试,杭师大软件质量保证和测试教学课件,正确的定义,验证”是检验软件是否已正确地实现了产品规格书所定义的系统功能和特性“有效性确认”是确认所开发的软件是否满足用户真正需求的活动。,软件测试是由“验证(Verification)”和“有效性确认(Validation)”活动构成的整体,杭师大软件质量保证和测试教学课件,软件测试目的,尽可能找出软件中缺陷,促使开发人员解决,从而提
3、高软件的正确性、可靠性。,杭师大软件质量保证和测试教学课件,软件测试原则,所有测试的标准都是建立在用户需求之上。软件测试必须基于“质量第一”的思想去开展各项工作,事先定义好产品的质量标准。软件项目一启动,软件测试也就是开始。应当把“尽早和不断地测试”作为测试人员的座右铭。穷举测试是不可能的。第三方进行测试会更客观,更有效。软件测试计划是做好软件测试工作的前提。测试用例是设计出来的,不是写出来的。不可将测试用例置之度外,排除随意性。对发现错误较多的程序段,应进行更深入的测试。,杭师大软件质量保证和测试教学课件,软件测试和软件开发的关系,让人误解的瀑布模型,杭师大软件质量保证和测试教学课件,第2章
4、 软件测试的基本概念,软件缺陷软件测试与软件质量保证关系软件测试的分类,杭师大软件质量保证和测试教学课件,软件质量 的内涵,IEEE:质量是系统、部件或过程满足明确需求,且客户或用户需要或期望的程度不同 软件质量:软件产品具有满足规定的或隐含要求能力要求有关的特征与特征总和(ISO 8492)软件质量:软件产品满足使用要求的程度,杭师大软件质量保证和测试教学课件,什么是 Bug?,2.1.2 软件缺陷的定义,软件缺陷的主要类型/现象:功能、特性没有实现或部分实现 设计不合理,存在缺陷 实际结果和预期结果不一致 运行出错,包括运行中断、系统崩溃、界面混乱 数据结果不正确、精度不够 用户不能接受的
5、其他问题,如存取时间过长、界面不美观,任何程序、系统中的问题,和产品设计书的不一致性,不能满足用户的需求,杭师大软件质量保证和测试教学课件,软件缺陷的产生,技术问题算法错误,语法错误,计算和精度问题,接口参数传递不匹配团队工作误解、沟通不充分软件本身文档错误、用户使用场合(user scenario),时间上不协调、或不一致性所带来的问题系统的自我恢复或数据的异地备份、灾难性恢复等问题,杭师大软件质量保证和测试教学课件,软件缺陷构成,杭师大软件质量保证和测试教学课件,缺陷成本,杭师大软件质量保证和测试教学课件,什么是 SQA?,软件质量保证是通过对软件产品和活动有计划的进行评审和审计来验证软件
6、是否合乎标准的系统工程活动.,确保SQA活动要自始至有计划的进行审查软件产品和活动是否遵守适用的标准、规程和要求并得到客观验证。SQA的活动和结果要保证全员参与,沟通顺畅。逐级解决不符合问题,杭师大软件质量保证和测试教学课件,SQA与软件测试的关系,共同点:软件测试、软件质量保证都贯穿于软件整个生命周期,都是保证研发的软件的质量。区别点:软件测试是关注软件研发过程中的产物是否满足要求,而软件质量保证是关注如何研发软件的过程;软件测试如何把软件产物存在的缺陷找出来,而软件质量保证通过保证研发过程中遵守规范,以及如何改进过程来预防软件产物产生缺陷。,杭师大软件质量保证和测试教学课件,软件测试的分类
7、,单元测试,系统测试,验收测试,性能测试,兼容性测试,功能测试,白盒测试方法,层次或过程,方法(哲学思想),特性-质量目标,适用性测试,可靠性测试,集成测试,安全性测试,灰盒测试方法,黑盒测试方法,杭师大软件质量保证和测试教学课件,第3章 软件测试的方法,测试方法辩证法 白盒测试方法黑盒测试方法,杭师大软件质量保证和测试教学课件,测试方法的辩证统一,白盒测试方法 vs.黑盒测试方法静态测试 vs.动态测试手工测试 vs.自动化测试有计划测试 vs.随机测试新功能测试 vs.回归测试,杭师大软件质量保证和测试教学课件,白盒测试 vs.黑盒测试,需求,事件,输入,输出,功能测试数据驱动测试,结构测
8、试逻辑驱动测试,杭师大软件质量保证和测试教学课件,静态测试 vs.动态测试,评审,动态测试,杭师大软件质量保证和测试教学课件,手工测试 vs.自动化测试,手工测试,杭师大软件质量保证和测试教学课件,有计划测试 vs.随机测试,杭师大软件质量保证和测试教学课件,新功能测试 vs.回归测试,杭师大软件质量保证和测试教学课件,白盒测试方法,Dim a,b As IntegerDim c As Double.If(a0 and b0)Thenc=c/aEnd IfIf(a1 or c1)Thenc=c+1End Ifc=b+c,程序流程图,杭师大软件质量保证和测试教学课件,程序流程图,P1:124(T
9、、T)P2:125(T、F)P3:134(F、T)P4:135(F、F),路径设计,白盒测试方法,杭师大软件质量保证和测试教学课件,白盒测试方法,逻辑覆盖:以程序的内部逻辑结构为基础,分为语句覆盖、判定覆盖、判定-条件覆盖、条件组合覆盖等基本路径测试:在程序控制流程的基础上,分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例。,杭师大软件质量保证和测试教学课件,白盒测试方法,3.1.1 语句覆盖3.1.2 判定覆盖3.1.3 条件覆盖3.1.4 判定条件覆盖3.1.5 条件组合覆盖3.1.6 路径覆盖3.1.7 基本路径测试法,杭师大软件质量保证和测试教学课件,语句覆盖,语句覆
10、盖法的基本思想是设计若干测试用例,运行被测程序,使程序中的每个可执行语句至少被执行一次,P1(1-2-4)路径包含所有可执行语句只要保证两个判断都为真即可,则如使用a=2,b=1,c=6,得出结果为a=2,b=1,c=5,但可发现即使判断条件1中写成了a0 or b0,得出结果也仍为a=2,b=1,c=5。也即上述测试用例值无法找出此错误,语句覆盖法的基本思想是设计若干测试用例,运行被测程序,使程序中的每个可执行语句至少被执行一次,杭师大软件质量保证和测试教学课件,判定覆盖,判定覆盖法的基本思想是设计若干用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次,即判断真假值均曾被
11、满足。也称分支覆盖,根据此思想,P1和P4可作为测试用例,但可发现即使判断条件2中写成了a1 and c1,得出结果也仍是一样。也即上述测试用例值无法找出此错误,判定覆盖法的基本思想是设计若干用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次,即判断真假值均曾被满足。也称分支覆盖,杭师大软件质量保证和测试教学课件,条件覆盖,条件覆盖的基本思想是设计若干测试用例,执行被测程序以后,要使每个判断中每个条件的可能取值至少满足一次。,根据此思想,要使a0,a0,b1,a1,c=1的8个都取到值,但可发现测试用例未满足前面的判定覆盖的要求,即第一个判定总是取假,第二个判定总是取真,这
12、样测试可能会遗漏程序逻辑错误。如c=c/a写成任何情况,得出的值都是一样,条件覆盖的基本思想是设计若干测试用例,执行被测程序以后,要使每个判断中每个条件的可能取值至少满足一次,杭师大软件质量保证和测试教学课件,判定条件覆盖,判定-条件覆盖是判定和条件覆盖设计方法的交集,即设计足够的测试用例,使得判断条件中的所有条件可能取值至少执行一次,同时,所有判断的可能结果至少执行一次,根据此思想,要使a0,a0,b1,a1,c=1的8个都取到值,以及两个判定条件真假各取到值,但可发现即使判断条件1中写成了a0 or b0或判断条件2中写成了a1 and c1,得出结果也仍是一样。也即上述测试用例值无法找出
13、此错误,判定-条件覆盖是判定和条件覆盖设计方法的交集,即设计足够的测试用例,使得判断条件中的所有条件可能取值至少执行一次,同时,所有判断的可能结果至少执行一次,杭师大软件质量保证和测试教学课件,条件组合测试,条件组合覆盖的基本思想是设计足够的测试用例,使得判断中每个条件的所有可能组合都至少出现一次。,根据此思想,每个条件组合都出现,但可发现即使判断条件1中写成了a1 and b0,得出结果也仍是一样。也即上述测试用例值无法找出此错误。也就没有覆盖P2(1-2-5)路径,条件组合覆盖的基本思想是设计足够的测试用例,使得判断中每个条件的所有可能组合都至少出现一次。,杭师大软件质量保证和测试教学课件
14、,路径测试,顾名思义,路径覆盖就是设计所有的测试用例,来覆盖程序中的所有可能的执行路径。,根据此思想,只需把条件组合2、3测试用例改成经过P2(1-2-5)路径,但可发现即使判断条件1中写成了a1 and b-1,得出结果也仍是一样,也即上述测试用例值无法找出此错误。若替换条件组3测试用例,判断条件2中写成了a1 or c-3,得出结果也仍是一样,路径覆盖就是设计所有的测试用例,来覆盖程序中的所有可能的执行路径。,杭师大软件质量保证和测试教学课件,条件组合+路径测试,同样可发现即使判断条件2中写成了a1 or c-3,得出结果也仍是一样,也即上述测试用例值无法找出此错误。大家也可以看看,若条件
15、都改为=是否得出的值也是一样,杭师大软件质量保证和测试教学课件,3.1.8 基本路径测试,依据代码绘制流程图计算流程图的环路复杂度确定线性独立路径的基本集合设计测试用例覆盖每条基本路径,基本路径测试是在程序控制流图的基础上,通过分析构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。,杭师大软件质量保证和测试教学课件,3.2 黑盒测试方法,3.2.1 等价类划分法3.2.2 边界值分析法3.2.3 判定表方法3.2.4 因果图法3.2.5 正交试验法3.2.6 功能图法3.2.7 错误推测法,杭师大软件质量保证和测试教学课件,3.2.1 等价类划分方法,将程序可能的输入数据分成若
16、干个子集,从每个子集选取一个代表性的数据作为测试用例,此代表性的数据与子集的其它数据在程序中作用是等效的,也就是这个子集是等价的,即等价类分为有效等价类和无效等价类。有效等价类是有意义的、合理的输入数据,可检查程序是否实现了规格说明中所规定的功能和性能。无效等价类与有效等价类的意义相反,设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合理的数据,也要能经受意外的考验。经过正反的测试才能确保软件具有更高的可靠性。,杭师大软件质量保证和测试教学课件,确定等价类的方法,在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类,value,杭师大软件质量保证和测
17、试教学课件,在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可以确立一个有效等价类和一个无效等价类。在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类,确定等价类的方法(2),not member of set,member of set,Boolean,Non-Boolean,杭师大软件质量保证和测试教学课件,确定等价类的方式(3),在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规
18、则)。,个人月收入-x 税率 x 83500 45%,杭师大软件质量保证和测试教学课件,根据等价类创建测试用例的步骤,建立等价类表,列出所有划分出的等价类:为每个等价类规定一个唯一的编号;设计一个新的测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类重复c),最后使得所有有效等价类均被测试用例所覆盖;设计一个新的测试用例,使其只覆盖一个无效等价类。重复e)使所有无效等价类均被覆盖。,杭师大软件质量保证和测试教学课件,3.2.2 边界值分析方法,程序的很多错误发生在输入或输出范围的边界上,因此针对各种边界情况设置测试用例,可以发现不少程序缺陷。BVA Boundary Value Analysis
19、设计方法:确定边界情况(输入或输出等价类的边界)选取正好等于、刚刚大于或刚刚小于边界值作为测试数据,杭师大软件质量保证和测试教学课件,确定边界值的方法,如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。如果输入条件规定了值的个数,则用最大个数、最小个数、比最小个数少一、比最大个数多一的数作为测试数据。,杭师大软件质量保证和测试教学课件,确定边界值的方法(2),如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试
20、用例。,Test cases for ABS(x):class x=0,arbitrary value x=100classes x=0,on boundary:x=0classes x=0,below and above:x=-1,x=1,杭师大软件质量保证和测试教学课件,3.2.3 判定表方法,在实际应用中,许多输入是由多个因素构成,而不是单一因素,这时就需要多因素组合分析。对于多因素,有时可以直接对输入条件进行组合设计,不需要进行因果分析,即直接采用判定表方法。一个判定表由“条件和活动”两部分组成,也就是列出了一个测试活动执行所需的条件组合,所有可能的条件组合定义了一系列的选择,而测试活
21、动需要考虑每一个选择。,杭师大软件质量保证和测试教学课件,3.2.4 因果图法,多种输入条件的组合,产生多种结果设计测试用例。设计方法:分析软件规格说明文档描述的哪些是原因(输入条件),哪些是结果(输出条件),给每个原因和结果赋予一个标示符。找出原因与结果,原因与原因之间的对应关系,画出因果图在因果图上标上哪些不可能发生的因果关系,表明约束或限制条件根据因果图,创建判定表,将复杂的逻辑关系和多种条件组合很具体明确的表示出来把判定表的每一行作为依据设计测试用例。,杭师大软件质量保证和测试教学课件,正交试验法,打印范围分:全部、当前幻灯片、给定范围打印内容分:幻灯片、讲义、备注页、大纲视图打印颜色
22、/灰度分:彩色、灰度、黑白打印效果分:幻灯片加框和幻灯片不加框。,在许多应用系统的测试工作中,不会象判断三角形那样简单,输入条件的因素很多,而且每个因素也不能简单用“是”和“否”来回答。比如,微软Powerpoint程序的打印测试,也需要考虑4个因素,每个因素也有多个选项,测试组合会变得很多,如果按照传统的测试方法,会导致很大的测试工作量,杭师大软件质量保证和测试教学课件,3.2.6 功能图法,每个程序的功能通常由静态说明和动态说明组成静态说明描述了输入条件和输出条件之间的对应关系动态说明描述了输入数据的次序或者转移的次序。功能图法就是为了解决动态说明问题的一种测试用例的设计方法 功能图由状态
23、迁移图(state transition diagram,STD)和逻辑功能模型(logic function model,LFM)构成,杭师大软件质量保证和测试教学课件,3.2.7 错误推测法,基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性地设计测试用例。发现程序经常出现的错误的方法:单元测试中发现的模块错误;产品的以前版本曾经发现的错误;输入数据为0或字符为空;当软件要求输入时(比如在文本框中),不是没有输入正确的信息,而是根本没有输入任何内容,单单按了Enter键;这种情况在产品说明书中常常忽视,程序员也可能经常遗忘,但是在实际使用中却时有发生。程序员总会习惯性的认为用户要
24、么输入信息,不管是看起来合法的或非法的信息,要不就会选择Cancel键放弃输入,,杭师大软件质量保证和测试教学课件,第4章 软件测试依据和规范,测试过程模型ISO9000系列标准软件测试标准和规范,杭师大软件质量保证和测试教学课件,4.1.1 软件过程模型,瀑布模型 原型模型 V模型 改进的V模型 螺旋模型 增量模型和迭代模型 构件组装模型 并发模型 XP模型,杭师大软件质量保证和测试教学课件,用V模型诠释软件测试过程,杭师大软件质量保证和测试教学课件,ISO 软件质量标准结构,ISO9001:设计/开发、生产、安装和服务中质量保证模式;ISO9002:生产和安装中的质量保证模式;ISO900
25、3:最终检验和测试中的质量保证模式;ISO9004:质量管理和质量体系要素导则。,ISO9000系列标准的主体部分分为两组:,“需方对供方要求质量保证”的标准ISO90019003“供方建立质量保证体系”的标准ISO9004,杭师大软件质量保证和测试教学课件,ISO9000-3 是什么,ISO9000-3其实是ISO质量管理和质量保证标准在软件开发、供应和维护中的使用指南,并不作为质量体系注册/认证时的评估准则,主要考虑软件行业的特殊性制定。参照ISO9001质量体系 设计、开发、生产、安装和服务的质量保证模式,并引用ISO 8402质量管理和质量保证术语,使得ISO9000系列标准应用范围得
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 测试 方法 技术 总结
链接地址:https://www.31ppt.com/p-6434314.html