软件测试方法和技术总结.ppt

上传人:小飞机 文档编号:6434314 上传时间:2023-10-30 格式:PPT 页数:165 大小:3.27MB
返回 下载 相关 举报
软件测试方法和技术总结.ppt_第1页
第1页 / 共165页
软件测试方法和技术总结.ppt_第2页
第2页 / 共165页
软件测试方法和技术总结.ppt_第3页
第3页 / 共165页
软件测试方法和技术总结.ppt_第4页
第4页 / 共165页
软件测试方法和技术总结.ppt_第5页
第5页 / 共165页
点击查看更多>>
资源描述

《软件测试方法和技术总结.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系列标准应用范围得

26、以拓展,杭师大软件质量保证和测试教学课件,软件测试规范,软件测试规范就是对软件测试的流程过程化并对每一个过程元素进行明确的界定,形成完整的规范体系。,杭师大软件质量保证和测试教学课件,第五章 单元测试,单元测试定义单元测试的目标和任务单元测试工具,杭师大软件质量保证和测试教学课件,什么是单元测试,测试的4个阶段:单元测试集成测试 系统测试验收测试,按阶段进行测试是一种基本的测试策略,杭师大软件质量保证和测试教学课件,单元测试的定义,定义:单元测试是对软件基本组成单元进行的测试。时机:一般在代码完成后由开发人员完成,QA人员辅助.概念:模块,组件,单元,杭师大软件质量保证和测试教学课件,为何要进

27、行单元测试?,尽早发现错误错误发现越早,成本越低.开发人员过于自信,后期复杂度高,发现解决BUG困难.检查代码是否符合设计和规范,杭师大软件质量保证和测试教学课件,单元测试的目标和任务,目标:单元模块被正确编码信息能否正确地流入和流出单元;在单元工作过程中,其内部数据能否保持其完整性,包括内部数据的形式、内容及相互关系不发生错误,也包括全局变量在单元中的处理和影响。在为限制数据加工而设置的边界处,能否正确工作。单元的运行能否做到满足特定的逻辑覆盖。单元中发生了错误,其中的出错处理措施是否有效。,杭师大软件质量保证和测试教学课件,任务:模块独立执行通路测试,检查每一条独立执行路径的测试。保证每条

28、语句被至少执行一次。Checklist:误解或用错了算符优先级。混合类型运算。变量初值错。精度不够。表达式符号错。其它,杭师大软件质量保证和测试教学课件,任务2:模块局部数据结构测试,检查局部数据结构完整性Checklist:不适合或不相容的类型说明。变量无初值。变量初始化或默认值有错。不正确的变量名或从来未被使用过。出现上溢或下溢和地址异常。其它,杭师大软件质量保证和测试教学课件,任务:模块接口测试,检查模块接口是否正确,checklist:输入的实际参数与形式参数是否一致。个数、属性、量纲 调用其他模块的实际参数与被调模块的形参是否一致。个数、属性、量纲 全程变量的定义在各模块是否一致。外

29、部输入、输出文件、缓冲区、错误处理 其它,杭师大软件质量保证和测试教学课件,任务:模块边界条件测试,检查临界数据处理的正确性Checklist:普通合法数据的处理。普通非法数据的处理。边界值内合法边界数据的处理。边界值外非法边界数据的处理。其它,杭师大软件质量保证和测试教学课件,任务5:模块的各条错误处理通路测试,预见、预设的各种出错处理是否正确有效。Checklist:输出的出错信息难以理解。记录的错误与实际不相符。程序定义的出错处理前系统已介入。异常处理不当。未提供足够的定位出错的信息。其它,杭师大软件质量保证和测试教学课件,单元测试工具,JUnit、CppUnit、NUnit、HtmlU

30、nit、JsUnit、PhpUnit、XmlUnitJTEST、JMETER、TestDriven.Net、NUnitForms、NUnitAsp开源的单元测试工具商业的单元测试工具,杭师大软件质量保证和测试教学课件,第6章 集成测试和系统测试,6.1 系统集成的模式与方法6.2 功能测试6.3 回归测试6.4 非功能性测试,杭师大软件质量保证和测试教学课件,6.1集成测试的模式,渐增式测试模式与非渐增式测试模式非渐增式测试模式:先分别测试每个模块,再把所有模块按设计要求放在一起结合成所要的程序,如大棒模式。渐增式测试模式:把下一个要测试的模块同已经测试好的模块结合起来进行测试,测试完以后再把

31、下一个应该测试的模块结合进来测试。各自的优缺点,杭师大软件质量保证和测试教学课件,自顶向下和自底向上集成方法,驱动程序/驱动模块(driver),用以模拟被测模块的上级模块。驱动模块在集成测试中接受测试数据,把相关的数据传送给被测模块,启动被测模块,并打印出相应的结果。桩程序/桩模块(stub),也有人称为存根程序,用以模拟被测模块工作过程中所调用的模块。桩模块由被测模块调用,它们一般只进行很少的数据处理,例如打印入口和返回,以便于检验被测模块与其下级模块的接口,杭师大软件质量保证和测试教学课件,自顶向下法(Top-down Integration),自顶向下法的主要优缺点,杭师大软件质量保证

32、和测试教学课件,自底向上法(Bottom-up Integration),自底向上法的主要优缺点,杭师大软件质量保证和测试教学课件,6.2功能测试,目的和内容,程序安装、启动正常,有相应的提示框、错误提示等 每项功能符合实际要求 系统的界面清晰、美观 菜单、按钮操作正常、灵活,能处理一些异常操作 能接受正确的数据输入,对异常数据的输入有提示、容错处理等 数据的输出结果准确,格式清晰,可以保存和读取 功能逻辑清楚,符合使用者习惯 系统的各种状态按照业务流程而变化,并保持稳定 支持各种应用的环境 能配合多种硬件周边设备 软件升级后,能继续支持旧版本的数据 与外部应用系统的接口有效,杭师大软件质量保

33、证和测试教学课件,功能测试的方法,等价类划分法边界值分析法错误推测法因果图法组合分析法,我要测试所有的功能,杭师大软件质量保证和测试教学课件,回归测试的目的 所做的修改达到了预定的目的,如错误得到了改正,新功能得到了实现,能够适应新的运行环境等;不影响软件原有功能的正确性。回归测试的方法 再测试全部用例(一般)基于风险选择测试 基于操作剖面选择测试 再测试修改的部分,6.3 回归测试,2000,回归测试的组织和实施,杭师大软件质量保证和测试教学课件,6.4 非功能性测试,6.4.1 性能测试6.4.2 压力测试6.4.3 容量测试6.4.4 安全性测试6.4.5 可靠性测试6.4.6 容错性测

34、试,杭师大软件质量保证和测试教学课件,6.4.1 性能测试,性能测试(Performance test)通过测试以确定系统运行时的性能表现,如得到运行速度、响应时间、占有系统资源等方面的系统数据。,杭师大软件质量保证和测试教学课件,6.4.2 压力测试,压力测试(Stress test),也称为强度测试、负载测试。压力测试是模拟实际应用的软硬件环境及用户使用过程的系统负荷,长时间或超大负荷地运行测试软件,来测试被测系统的性能、可靠性、稳定性等。,杭师大软件质量保证和测试教学课件,并发性能测试,考察客户端应用的性能,测试的入口是客户端并发性能测试的过程,是一个负载测试和压力测试的过程。即逐渐增加

35、并发虚拟用户数负载,直到系统的瓶颈或者不能接收的性能点,通过综合分析交易执行指标、资源监控指标等来确定系统并发性能的过程。并发性能测试是负载压力测试中的重要内容。ramp-up测试,杭师大软件质量保证和测试教学课件,疲劳强度测试,通常是采用系统稳定运行情况下能够支持的最大并发用户数或者日常运行用户数,持续执行一段时间业务,通过综合分析交易执行指标和资源监控指标来确定系统处理最大工作量强度性能的过程。疲劳强度测试案例制定的原则是保证系统长期不间断运行的业务量,并且应该尽量去满足该条件。Flat测试,杭师大软件质量保证和测试教学课件,大数据量测试,独立的数据量测试 针对某些系统存储、传输、统计、查

36、询等业务进行大 数据量测试 综合数据量测试 和压力性能测试、负载性能测试、并发性能测试、疲劳性能测试相结合的综合测试方案,杭师大软件质量保证和测试教学课件,6.4.3 容量测试,容量测试目的是通过测试预先分析出反映软件系统应用特征的某项指标的极限值(如最大并发用户数、数据库记录数等),系统在其极限值状态下还能保持主要功能正常运行。容量测试还将确定测试对象在给定时间内能够持续处理的最大负载或工作量。,杭师大软件质量保证和测试教学课件,安全性测试,安全性测试是检查系统对非法侵入的防范能力。安全测试期间,测试人员假扮非法入侵者,采用各种办法试图突破防线。例如:想方设法截取或破译口令;专门开发软件来破

37、坏系统的保护机制;故意导致系统失败,企图趁恢复之机非法进入;试图通过浏览非保密数据,推导所需信息等等。理论上讲,只要有足够的时间和资源,没有不可进入的系统。因此系统安全设计的准则是,使非法侵入的代价超过被保护信息的价值,此时非法侵入者已无利可图。,杭师大软件质量保证和测试教学课件,6.4.5 可靠性测试,可靠性(Reliability)是产品在规定的条件下和规定的时间内完成规定功能的能力,它的概率度量称为可靠度。软件可靠性是软件系统的固有特性之一,它表明了一个软件系统按照用户的要求和设计的目标,执行其功能的可靠程度。软件可靠性与软件缺陷有关,也与系统输入和系统使用有关。理论上说,可靠的软件系统

38、应该是正确、完整、一致和健壮的。,规定的时间 规定的环境条件 规定的功能,杭师大软件质量保证和测试教学课件,6.4.6 容错性测试,容错性测试是检查软件在异常条件下自身是否具有防护性的措施或者某种灾难性恢复的手段。如当系统出错时,能否在指定时间间隔内修正错误并重新启动系统。容错性测试包括两个方面:,输入异常数据或进行异常操作,以检验系统的保护性。如果系统的容错性好的话,系统只给出提示或内部消化掉,而不会导致系统出错甚至崩溃。灾难恢复性测试。通过各种手段,让软件强制性地发生故障,然后验证系统已保存的用户数据是否丢失、系统和数据是否能尽快恢复。,杭师大软件质量保证和测试教学课件,第7章 验收测试,

39、验收测试概念验收测试内容验收测试步骤,杭师大软件质量保证和测试教学课件,什么是验收测试,验收测试(Acceptance Test):在软件产品完成了功能测试和系统测试之后、产品发布之前所进行的软件测试活动它是技术测试的最后一个阶段,也称为交付测试。,杭师大软件质量保证和测试教学课件,7.1 验收测试的过程和主要内容,前提:系统或软件产品已通过了系统测试的软件系统。测试内容:验证系统是否达到了用户需求规格说明书(可能包括项目或产品验收准则)中的要求,测试试图尽可能地发现软件中存留的缺陷,从而为软件进一步改善提供帮助,并保证系统或软件产品最终被用户接受。主要包括易用性测试、兼容性测试、安装测试、文

40、档(如用户手册、操作手册等)测试等几个方面的内容。,杭师大软件质量保证和测试教学课件,测试步骤,制定测试计划,测试项,测试策略及验收通过准则,并经过客户参与的计划评审。建立测试环境,设计测试用例,并经过评审。准备测试数据,执行测试用例,记录测试结果。分析测试结果,根据验收通过准则分析测试结果,作出验收是否通过及测试评价。测试项目通过;测试项目没有通过,并且不存在变通方法,需要很大的修改;测试项目没有通过,但存在变通方法,在维护后期或下一个版本改进;测试项目无法评估或者无法给出完整的评估。此时必须给出原因。如果是因为该测试项目没有说明清楚,应该修改测试计划。提交测试报告,杭师大软件质量保证和测试

41、教学课件,第八章:面向对象软件的测试,8.1面向对象软件测试概述,杭师大软件质量保证和测试教学课件,面向对象(object-oriented),面向对象(object-oriented)=对象+分类+继承+通信,杭师大软件质量保证和测试教学课件,类与子类的测试,假设类D是类C的子类,类C已进行了充分的测试,杭师大软件质量保证和测试教学课件,分层与增量,派生类D是C的子类,那么所有的用于C的基于规范的测试用例也都适用于D。引入术语“继承的测试用例”来代表从父类测试用例中选取出来的、用于子类的测试用例。可以通过增量变化分析来确定继承的测试用例中哪些在测试子类时必须执行、哪些可以不执行。,合理的分析

42、,有利于找出更有价值的测试用例。,杭师大软件质量保证和测试教学课件,分层与增量-测试用例选择,D的接口中添加新的操作,并且有可能是D中的一个新方法实现的新操作。新操作引入了新的功能/代码,这些都需要测试。在D中改变那些在C中声明的操作规范,需要为操作添加新的基于规范的测试用例。附加的测试用例提供了符合其前置条件的新输入,并且对由任何加强了的后置条件导致的新的期望结果进行检查。在D中覆盖那些在C中实现了某个操作并且被D继承了的方法,可以复用于该方法的所有继承来的基于规范的测试用例。在D中添加新的实例变量来实现更多的状态和/或属性,最有可能与新的操作和/或重载方法中代码有关,而且关系到对测试的处理

43、。在D中改变类常量。类常量累计成每个测试用例的附加的后置条件。,杭师大软件质量保证和测试教学课件,面向对象层次结构测试重点,对认定的对象的测试,OOA(面向对象分析)中认定的对象是对问题空间中的结构、其他系统、设备、被记忆的事件、系统涉及的人员等实际实例的抽象。对它的测试可以从如下方面考虑:认定的对象是否全面,其名称应该尽量准确、适用,是否问题空间中所涉及到的实例都反映在认定的抽象对象中。认定的对象是否具有多个属性。只有一个属性的对象通常应看作其他对象的属性而不是抽象为独立的对象对认定为同一对象的实例是否有共同的、区别于其他实例的共同属性,是否提供或需要相同的服务,如果服务随着不同的实例而变化

44、,认定的对象就需要分解或利用继承性来分类表示。如果系统没有必要始终保持对象代表的实例信息,提供或者得到关于它的服务,认定的对象也无必要。,杭师大软件质量保证和测试教学课件,面向对象层次结构测试重点,对认定的结构的测试,认定的结构指的是多种对象的组织方式,用来反映问题空间中的复杂实例和复杂关系。认定的分类结构测试要点:处于高层的对象,是否在问题空间中含有不同于下一层对象的特殊可能性,即是否能派生出下一层对象。处于同一低层的对象,是否能抽象出在现实中有意义的更一般的上层对象。对所有认定的对象,是否能在问题空间内向上层抽象出在现实中有意义的对象。高层的对象的特性是否完全体现下层的共性,低层的对象是否

45、有高层特性基础上的特殊性。,杭师大软件质量保证和测试教学课件,面向对象层次结构测试重点,对构造的类层次结构的测试,为了能充分发挥面向对象继承共享特性,OOD(面向对象设计)的类层次结构通常基于OOA中产生的分类结构的原则来组织,着重体现父类和子类间的一般性和特殊性。在当前的问题空间,对类层次结构的主要要求是能在解空间构造实现全部功能的结构框架。为此测试要注意如下几个方面:类层次结构是否涵盖了所有定义的类;是否能体现OOA中所定义的实例关联、消息关联;子类是否具有父类没有的新特性;子类间的共同特性是否完全在父类中得以体现。,杭师大软件质量保证和测试教学课件,第9章 基于应用服务器的测试,9.1

46、基于Web服务器应用的测试,杭师大软件质量保证和测试教学课件,常用的Web元素功能测试,页面链接页面是否存在页面是否正确设计脚本不同的脚本语言相同的脚本语言在不同浏览器中的表现Web图形表单,杭师大软件质量保证和测试教学课件,9.1.2 Web服务器的安全测试,登录、身份验证超时、Cookie和Session输入验证(防止脚本语言)数据加密、SSL(安全套接字)SQL注入XSS日志文件目录,杭师大软件质量保证和测试教学课件,9.1.3 Web服务器的性能测试,基于Web应用系统的在线用户和响应时间来度量系统性能,基于Web应用系统的吞吐量和响应时间来度量系统性能,http:/www.spec.

47、org/benchmarks.html#web,杭师大软件质量保证和测试教学课件,性能测试工具,FloodLoadRunnerQALoad,杭师大软件质量保证和测试教学课件,第10章 软件本地化测试,国际化与软件本地化关系软件本地化测试内容,杭师大软件质量保证和测试教学课件,软件本地化与国际化,软件国际化(SW Internationalization,I18N)I18N是在软件设计和文档开发过程中,使得功能和代码设计能处理多种语言和文化传统,使创建不同语言版本时,不需要重新设计源程序代码的软件工程方法。软件本地化(SW Localization,L10N)L10N是将一个软件产品按特定国家/

48、地区或语言市场的需要进行加工,使之满足特定市场上的用户对语言和文化的特殊要求的软件生产活动。G11N=I18N+L10N,杭师大软件质量保证和测试教学课件,I18N,支持Unicode字符集、双字节的字符;分离程序代码和显示内容消除Hard code使用Header files 去定义经常被调用的代码段;改善翻译文本尺寸,具有调整的灵活性支持各个国家的键盘设置;支持文字排序和大小写转换;支持各个国家的度量衡,时区,货币单位格式等的设置;国际化用户界面设计(自我定义)。,杭师大软件质量保证和测试教学课件,L10N,翻译 地区文化、宗教 度量衡和时区等 软件用户界面(UI)联机文档(帮助文档和功能

49、性的PDF文档)热键设置,杭师大软件质量保证和测试教学课件,软件本地化测试,功能性测试,所有基本功能、安装、升级等测试;翻译测试,包括语言完整性、术语准确性等的检查;可用性测试,包括用户界面、度量衡和时区等;兼容性调试,包括硬件兼容性、版本兼容性等测试;文化、宗教、喜好等适用性测试 手册验证,包括联机文件、在线帮助、PDF文件等测试,杭师大软件质量保证和测试教学课件,第11章 软件测试自动化,自动化测试的内涵自动化测试流程测试工具,杭师大软件质量保证和测试教学课件,手工测试的局限性,通过手工测试(manual test)无法做到覆盖所有代码路径;许多与时序、死锁、资源冲突、多线程等有关的错误通

50、过手工测试很难捕捉到 在系统负载、性能测试时,需要模拟大量数据、或大量并发用户等各种应用场合时,也很难通过手工测试来进行 在进行系统可靠性时,需要模拟系统运行十年、几十年,以验证系统能否稳定运行,也是手工测试无法模拟的。如果有大量(几千)的测试用例,需要在短时间内完成,手工测试又怎么办呢?测试可以发现错误,并不能表明程序的正确性。,杭师大软件质量保证和测试教学课件,什么是自动化测试,自动化测试=测试工具?用测试工具执行测试的过程?用工具完成测试任务?,自动化测试(automated test)是相对手工测试而存在的一个概念,由手工逐个地运行测试用例的操作过程被测试工具自动执行的过程所代替。测试

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号