软件测试PPT课件

上传人:我*** 文档编号:138253017 上传时间:2020-07-14 格式:PPT 页数:130 大小:1.21MB
返回 下载 相关 举报
软件测试PPT课件_第1页
第1页 / 共130页
软件测试PPT课件_第2页
第2页 / 共130页
软件测试PPT课件_第3页
第3页 / 共130页
软件测试PPT课件_第4页
第4页 / 共130页
软件测试PPT课件_第5页
第5页 / 共130页
点击查看更多>>
资源描述

《软件测试PPT课件》由会员分享,可在线阅读,更多相关《软件测试PPT课件(130页珍藏版)》请在金锄头文库上搜索。

1、第10章 软件测试,2,第10章 软件测试,10.1 软件测试基础,10.2 白盒测试,10.3 黑盒测试,10.4 测试策略,10.5 面向对象测试,10.6 测试完成的标准,10.7 调试,3,教学目的与要求,掌握软件测试的目的、基本原则、测试方法; 熟练掌握白盒测试、黑盒测试及测试用例的设计; 掌握单元测试、集成测试、确认测试、系统测试等测试策略; 4.了解面向对象测试的基本内容; 理解测试完成标准 ; 掌握调试的概念及调试方法。,4,教学重点软件测试的目的、基本原则;白盒测试、黑盒测试及测试用例的设计;测试策略。,教学难点白盒测试、黑盒测试及测试用例的设计; 面向对象测试的基本内容。,

2、教学学时 5学时,5,教学方法采用多媒体课件+讲授法+启发式相结合教学,教学参考文献软件工程导论(第五版),张海藩,清华大学出版社软件工程 (第二版),齐治昌,高等教育出版社软件测试教程,宫云战,机械工业出版社软件测试技术概论,古乐,清华大学出版社软件性能测试与LoadRunner实战,于涌,人民邮电出版社,6,10.1 软件测试基础,一、软件测试的目的,测试是一个为了发现错误而执行程序的过程 一个好的测试用例是指很可能找到迄今为至尚未发现的错误的测试用例 一个成功的测试是指揭示了迄今为至尚未发现的错误的测试 根据这个测试目的,应该排除对测试的错误观点,设计合适的测试用例,用尽可能少的测试用例

3、,来发现尽可能多的软件错误。,7,有关软件测试的错误观点,“软件测试是为了证明程序是正确的,即测试能发现程序中所有的错误”。事实上这是不可能的。要通过测试发现程序中的所有错误,就要穷举所有可能的输入数据。 例:程序P有两个整型输入量 X、Y,输出量为Z,在32位机上运行。所有的测试数据组(Xi,Yi)的数目为:232232= 264,1毫秒执行1次,共需5亿年。,8,“程序测试是证明程序正确地执行了预期的功能”。实际上,一个程序不仅要完成它所需完成的功能,而且不应完成它不该做的事。如不能把边长为0、0、0的三条边判断为等边三角形。,9,二、软件测试的原则,Davis提出了一组指导软件测试的基本

4、原则: 1.所有的测试都应可追溯到客户需求 2.应在测试工作开始前的较长时间就进行测试计划 3. Pareto原则:测试中发现的80%的错误可能来自于20%的程序代码 4.测试应从“小规模”开始,逐步转向“大规模” 5.穷举测试是不可能的 6.为达到最有效的测试,应由独立的第三方来承担测试,10,其他的测试原则: 1.在设计测试用例时,应包括合理的输入条件和不合理的输入条件 2.严格执行测试计划,排除测试的随意性 3.应当对每一个测试结果做全面检查 4.妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便 5.检查程序是否做了应做的事仅是成功的一半,另一半是检查程序是否做了不该做

5、的事 6.在规划测试时不要设想程序中不会查出错误,11,三、软件测试方法,软件测试方法,1.静态分析方法 指以人工的、非形式化的方法对程序进行分析和测试。 主要形式:审查、评审和走查。,静态分析 动态测试,12,评审(Review),评审是由若干开发人员、项目经理、测试人员、用户或领域专家等组成一个会审小组,通过阅读、讨论和争议,对工作制品进行静态分析的过程。 类型:需求评审、设计评审和代码评审。 评审过程 小组负责人先把需求规格说明、设计说明或程序代码及有关要求、规范等分发给小组成员,作评审依据; 在充分阅读有关材料后召开评审会议,主要开发人员进行讲解,其他成员提出问题并展开讨论,审查是否存

6、在错误; 评审小组形成产品评审的书面报告。,13,走查(Walkthrough),走查是由设计人员或编程人员组成一个走查小组,通过阅读一段文档或代码,并进行提问和讨论,从而发现可能存在的缺陷、遗漏和矛盾的地方。 类型:设计走查、代码走查。 走查过程 与评审过程类似,即先把材料先发给走查小组每个成员,让他们认真研究程序,然后再开会; 与评审的区别:评审通常是简单地读程序或对照错误检查表进行检查;走查则是按照所提交的测试用例,人工模仿计算机运行一遍,并记录跟踪情况。,14,无论Y 为何值,都不能够调用子程序。,READY,Y0,N,X:=Y,X0,Y,N,Y,调用子程序,A,B,C,D,E,即执行

7、ABC后,是不可能执行路径CDE的。,走查时,还常使用以下分析方法: 调用图:从语义的角度考察程序的控制路线。,15, 数据流分析图:检查分析变量的定义和引用情况。,节点 表示单个语句。 有向边 表示控制结构。 d 定义 r 引用 u 未引用,R:duuuuu S:uruuur Y:uuddru,R=0.5,W=1/S,Y=A*W,Y=E*W,Z=X+Y,C=Z*S,1 2 3 4 5 6,只定义不用 未定义引用 连续定义,16,审查(Inspection),检查是由一些经过严格训练的人员根据评估标准,对于开发过程中的产品或中间制品进行检查,发现其中存在的错误。 检查一般是按规定程序和时间计划

8、进行的,参与者来自开发人员、测试人员、质量保证人员或用户,以37人组成小组。 检查过程 检查遵循一个严格的过程,人员经过培训,检查过程有评估标准; 检查过程包括计划、会议准备、会议召开、修改错误、问题跟踪等环节,目的是获得项目管理和质量评估的数据,并改进检查过程本身。,17,测试用例的设计是软件测试的关键所在 设计尽可能少的测试用例来发现尽可能多的错误 设计最有可能发现软件错误的测试用例,同时避免使用发现错误效果相同的测试用例 测试用例的设计方法大体可分为两类: 白盒测试和黑盒测试。,2.动态测试方法 通过选择适当的测试用例,执行程序。,18,白盒测试(又称结构测试)把测试对象看作一个透明的盒

9、子,测试人员根据程序内部的逻辑结构及有关信息设计测试用例,检查程序中所有逻辑路径是否都按预定的要求正确地工作。 白盒测试主要用于对模块的测试,包括: 程序模块中的所有独立路径至少执行一次 对所有逻辑判定的取值(“真”与“假”)都至少测试一次 在上下边界及可操作范围内运行所有循环 测试内部数据结构的有效性等,19,黑盒测试(又称功能测试)把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能需求。 黑盒测试可用于各种测试,它试图发现以下类型的错误: 不正确或遗漏的功能 接口错误,如输入/输出参数的个数、类型等 数据结构

10、错误或外部信息访问错误 性能错误 初始化和终止错误,20,10.2 白盒测试,常用的白盒测试方法有: 逻辑覆盖测试 基本路径覆盖测试 数据流测试 循环测试,21,逻辑覆盖测试,语句覆盖 判定覆盖 条件覆盖,判定条件覆盖 条件组合覆盖 路径覆盖,逻辑覆盖主要考察使用测试数据运行被测程序时对程序逻辑的覆盖程度。通常希望选择最少的测试用例来满足所需的覆盖标准。主要的覆盖标准有:,22,例:对下列子程序进行测试 Procedure(var A,B,X:real); begin if (A1) and (B=0) then X:=X/A ; if (A=2) or (X1) then X:=X+1 en

11、d; 该子程序接受A、B、X的值,并将计算结果x的值返回给调用程序。 与该子程序对应的流程图如下:,23,24,语句覆盖,语句覆盖是指选择足够的测试用例,使得运行这些测试用例时,被测程序的每个可执行语句都至少执行一次。 欲使每个语句都执行一次,只需执行路径L1(sabcde)即可。 测试用例如下:,25,判定覆盖,判定覆盖(也称分支覆盖)是指选择足够的测试用例,使得运行这些测试用例时,被测程序的每个判定的所有可能结果都至少执行一次(即判定的每个分支至少经过一次) 判定覆盖将每个判定的所有可能结果都至少执行一次,所以,程序中的所有语句也必定都至少执行一次。因此,满足判定覆盖标准的测试用例也一定满

12、足语句覆盖标准。,26,欲使每个分支都执行一次,只需执行路径L3(sacde)和L4(sabce) 即可。 或者,执行路径L1(sabcde)和L2(sace).,27,条件覆盖,条件覆盖是指选择足够的测试用例,使得运行这些测试用例时,被测程序的每个判定中的每个条件的所有可能结果都至少出现一次。,28,判定a中各种条件的所有可能结果:A1, A 1 ,B=0, B 0。 判定c中各种条件的所有可能结果:A=2, A 2 ,x1, x 1 。,a: (A1) and (B=0) c: (A=2) or (x1),29,条件覆盖通常比判定覆盖强,但有时虽然每个条件的所有可能结果都出现过,但判定表达

13、式的某些可能结果并未出现。上面的二个测试用例满足了条件覆盖标准,但判定c为“假”的结果并未出现。,30,判定/条件覆盖,判定/条件覆盖是指选择足够的测试用例,使得运行这些测试用例时,被测程序的每个判定的所有可能结果都至少执行一次,并且,每个判定中的每个条件的所有可能结果都至少出现一次。 显然,满足判定/条件覆盖标准的测试用例一定也满足判定覆盖、条件覆盖、语句覆盖标准。,31,a: (A1) and (B=0) c: (A=2) or (x1),32,条件组合覆盖,条件组合覆盖是指选择足够的测试用例,使得运行这些测试用例时,被测程序的每个判定中条件结果的所有可能组合都至少出现一次 显然,满足条件

14、组合覆盖标准的测试用例一定也满足判定覆盖、条件覆盖、判定/条件覆盖、语句覆盖标准。,33,判定a中条件结果的所有可能组合: A1,B=0 ; A1,B 0; A 1,B=0 ; A 1,B 0 判定c中条件结果的所有可能组合: A=2, x1; A=2,x 1 ; A 2 ,x1; A 2 ,x 1,a: (y1) and (z=0) c: (y=2) or (x1),34,a: (A1) and (B=0) c: (A=2) or (x1),35,条件组合覆盖是上述五种覆盖标准中最强的一种,然而,条件组合覆盖仍不能保证程序中所有可能的路径都被覆盖。本例中,满足条件组合覆盖标准的测试用例就没有

15、经过sabce路径。,36,路径覆盖,路径覆盖是指选择足够的测试用例,使得运行这些测试用例时,被测程序的每条可能执行到的路径都至少经过一次(如果程序中包含环路,则要求每条环路至少经过一次)。,37,本例中所有可能执行的路径有: L1 ( sabcde , a为“t”且c为“t”) L2 ( sace , a为“f”且c为“f”) L3 ( sacde , a为“f”且c为“t”) L4 ( sabce , a为“t”且c为“f”),a: (A1) and (B=0) c: (A=2) or (x1),38,路径覆盖实际上考虑了程序中各种判定结果的所有可能组合,但它未必能覆盖判定中条件结果的各种

16、可能情况。因此,它是一种比较强的覆盖标准,但不能替代条件覆盖和条件组合覆盖标准。,39,基本路径测试,在实际问题中,一个不太复杂的程序,特别是包含循环的程序,其路径数可能非常大。因此测试常常难以做到覆盖程序中的所有路径,为此,希望把测试的程序路径数压缩到一定的范围内。 基本路径测试是Tom McCabe提出的一种白盒测试技术,这种方法首先根据程序或设计图画出控制流图,并计算其区域数,然后确定一组独立的程序执行路径(称为基本路径),最后为每一条基本路径设计一个测试用例。,40,程序的控制流图(也称程序图),流图由结点和边组成,分别用圆和箭头表示。设计图中一个连续的处理框(对应于程序中的顺序语句)序列和一个判定框(对应于程序中的条件控制语句)映射成流图中的一个结点,设计图中的箭头(对应于程序中的控制转向)映射成流图中的一条边。对于设计图中多个箭头的交汇点可以映射成流图中的一个结点(空结点)。,41,上述映射的前提是设计图的判定中

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号