版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件工程导论(软件工程导论(7)软件测试软件测试南京理工大学南京理工大学汪惠芬汪惠芬2004年年10月月6日日软软 件件 工工 程程 导导 论论2021-11-222第七章第七章 软件测试软件测试引言引言软件系统的开发体现了人们智力劳动软件系统的开发体现了人们智力劳动的成果。在软件开发过程中,尽管人们利的成果。在软件开发过程中,尽管人们利用了许多旨在改进、保证软件质量的方法用了许多旨在改进、保证软件质量的方法去分析、设计和实现软件,但难免会在工去分析、设计和实现软件,但难免会在工作中犯这样那样的错误。这样,在软件产作中犯这样那样的错误。这样,在软件产品中就会隐藏许多的错误和缺陷。对于规品中就会
2、隐藏许多的错误和缺陷。对于规模大、复杂性高的软件更是如此。在这些模大、复杂性高的软件更是如此。在这些错误中,有些甚至是致命的错误,如果不错误中,有些甚至是致命的错误,如果不排除,就会导致财产以至生命的重大损失。排除,就会导致财产以至生命的重大损失。测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错软软 件件 工工 程程 导导 论论2021-11-223第七章第七章 软件测试软件测试引言引言例如,例如,1963年美国发生了这样一件事:一年美国发生了这样一件事:一个个fortran程序的循环语句:程序的循环语句: do 5 i1, 3被误写成:被误写成:do 5 i1. 3由于空格对
3、由于空格对fortran编译程序没有意义,编译程序没有意义,误写的语句被当作了赋值语句:误写的语句被当作了赋值语句:do5i1.3这里这里“,”被误写为被误写为“.”,一点之差致使,一点之差致使飞往火星的火箭爆炸,造成飞往火星的火箭爆炸,造成1000万美元的万美元的损失。这种情况迫使人们必须认真计划、损失。这种情况迫使人们必须认真计划、彻底地进行软件测试。彻底地进行软件测试。测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错软软 件件 工工 程程 导导 论论2021-11-224第七章第七章 软件测试软件测试7.1 软件测试的基础软件测试的基础7.2 测试用例设计测试用例设计7.
4、3 白盒测试的测试用例设计白盒测试的测试用例设计7.4 黑盒测试的测试用例设计黑盒测试的测试用例设计7.5 软件测试的策略软件测试的策略7.6 人工测试人工测试7.7 调试(调试(debug,排错),排错)7.8 本章小结本章小结测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错软软 件件 工工 程程 导导 论论2021-11-2257.1 软件测试的基础软件测试的基础7.1.1 软件测试的概念软件测试的概念7.1.2 软件测试的目的和原则软件测试的目的和原则7.1.3 软件测试的对象软件测试的对象7.1.4 测试信息流测试信息流7.1.5 测试与软件开发各阶段的关系测试与软件开
5、发各阶段的关系测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错软软 件件 工工 程程 导导 论论2021-11-2267.1.1 软件测试的概念软件测试的概念概述:概述:软件测试软件测试是在软件投入生是在软件投入生产性运行之前,对软件需求分产性运行之前,对软件需求分析、设计规格说明和编码的最析、设计规格说明和编码的最终复审,是软件质量保证的关终复审,是软件质量保证的关键步骤。键步骤。测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错软软 件件 工工 程程 导导 论论2021-11-2277.1.1 软件测试的概念软件测试的概念定义:定义:软件测试是为了发现错误而执
6、软件测试是为了发现错误而执行程序的过程。行程序的过程。或者说,软件测试是根据软件或者说,软件测试是根据软件开发各阶段的规格说明和程序的内开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例,部结构而精心设计一批测试用例,并利用这些测试用例取运行程序,并利用这些测试用例取运行程序,以发现程序错误的过程。以发现程序错误的过程。测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错软软 件件 工工 程程 导导 论论2021-11-2287.1.1 软件测试的概念软件测试的概念 软件测试在软件生存期中软件测试在软件生存期中横跨两个阶段:横跨两个阶段: 通常在编写出每一模块后就对通常在编
7、写出每一模块后就对它作单元测试。模块的编写者它作单元测试。模块的编写者与测试者是同一个人。与测试者是同一个人。 在每个模块都完成单元测试后,在每个模块都完成单元测试后,对软件系统还要进行各种综合对软件系统还要进行各种综合测试,通常由专门的测试人员测试,通常由专门的测试人员承担这项工作。承担这项工作。测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错软软 件件 工工 程程 导导 论论2021-11-2297.1.2 软件测试的目的和原则软件测试的目的和原则概述:概述:从用户角度出发:从用户角度出发:希望通过希望通过软件测试暴露软件中隐藏的软件测试暴露软件中隐藏的错误和缺陷,以考虑是
8、否可错误和缺陷,以考虑是否可以接受该产品;以接受该产品;从软件开发者的角度出发:从软件开发者的角度出发:希望测试成为表明软件产品希望测试成为表明软件产品中不存在错误的过程,验证中不存在错误的过程,验证该软件已正确地实现了用户该软件已正确地实现了用户的要求,确立人们对软件质的要求,确立人们对软件质量的信心。量的信心。测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错软软 件件 工工 程程 导导 论论2021-11-22107.1.2 软件测试的目的和原则软件测试的目的和原则测试目的:测试目的:测试是程序的执行过程,目的测试是程序的执行过程,目的在于发现错误;在于发现错误;一个好的测
9、试用例在于能发现一个好的测试用例在于能发现至今未发现的错误;至今未发现的错误;一个成功的测试是发现了至今一个成功的测试是发现了至今未发现的错误的测试。未发现的错误的测试。 也就是说,设计测试的目标是想也就是说,设计测试的目标是想以最少的时间和人力系统地找出软件以最少的时间和人力系统地找出软件中潜在的各种错误和缺陷。中潜在的各种错误和缺陷。测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错软软 件件 工工 程程 导导 论论2021-11-22117.1.2 软件测试的目的和原则软件测试的目的和原则测试原则:测试原则:应当把应当把“尽早地和不断地进行软件尽早地和不断地进行软件测试测试
10、”作为软件开发者的座右铭;作为软件开发者的座右铭;测试用例应由测试输入数据和与之测试用例应由测试输入数据和与之对应的预期输出结果这两部分组成;对应的预期输出结果这两部分组成;程序员应避免检查自己的程序;程序员应避免检查自己的程序;在设计测试用例时,应当包括合理在设计测试用例时,应当包括合理的输入条件和不合理输入条件;的输入条件和不合理输入条件;测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错软软 件件 工工 程程 导导 论论2021-11-22127.1.2 软件测试的目的和原则软件测试的目的和原则测试原则:测试原则:充分注意测试中的群集现象;充分注意测试中的群集现象;严格执行
11、测试计划,排除测试严格执行测试计划,排除测试的随意性;的随意性;应当对每一个测试结果作全面应当对每一个测试结果作全面检查;检查;妥善保存测试计划、测试用例、妥善保存测试计划、测试用例、出错统计和最终分析报告,为出错统计和最终分析报告,为维护提供方便。维护提供方便。测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错软软 件件 工工 程程 导导 论论2021-11-22137.1.3 软件测试的对象软件测试的对象软件测试并不等于程序测试。软件测试并不等于程序测试。软件测试应贯穿于软件定义与开发软件测试应贯穿于软件定义与开发的整个期间。因此,需求分析、概的整个期间。因此,需求分析、概要
12、设计、详细设计以及程序编码等要设计、详细设计以及程序编码等各阶段所得到的文档资料,包括各阶段所得到的文档资料,包括需需求规格说明求规格说明、概要设计规格说明概要设计规格说明、详细设计规格说明详细设计规格说明以及以及源程序源程序,都,都应成为软件测试的对象。软件测试应成为软件测试的对象。软件测试不应仅限在程序测试的狭小范围内,不应仅限在程序测试的狭小范围内,而置其它阶段的工作于不顾。而置其它阶段的工作于不顾。测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错软软 件件 工工 程程 导导 论论2021-11-22147.1.3 软件测试的对象软件测试的对象软件测试包括确认和验证工作:
13、软件测试包括确认和验证工作: 确认(确认(validation),是一系列的活动和是一系列的活动和过程,其目的是想证实在一个给定的过程,其目的是想证实在一个给定的外部环境中软件的逻辑正确性。外部环境中软件的逻辑正确性。v静态确认:静态确认:通过人工分析或程序正确性证通过人工分析或程序正确性证明来确认程序的正确性;明来确认程序的正确性;v动态确认:动态确认:通过动态分析和程序测试来检通过动态分析和程序测试来检查程序的执行状态,以确认程序是否正确。查程序的执行状态,以确认程序是否正确。 验证(验证(verification):视图证明在软件:视图证明在软件生存期各个阶段,以及阶段间的逻辑生存期各个
14、阶段,以及阶段间的逻辑协调性、完备性和正确性。协调性、完备性和正确性。测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错软软 件件 工工 程程 导导 论论2021-11-22157.1.3 软件测试的对象软件测试的对象软件生存期各个阶段之间需要保持的正确性软件生存期各个阶段之间需要保持的正确性测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错用户要求用户要求用户:用户:我要什么?我要什么?运行结果运行结果计算机:计算机:程序运行得程序运行得到的结果到的结果设计说明书设计说明书设计原:设计原:我要让程序我要让程序做什么?做什么?源程序源程序程序员:程序员:我要让计算我
15、要让计算机怎么做?机怎么做?需求说明书需求说明书分析员:分析员:我可以提供我可以提供什么?什么?12345相符吗?相符吗?理解正确性理解正确性表达正确性表达正确性运行正确性运行正确性输入正确性输入正确性理解正确性理解正确性编码正确性编码正确性理解正确性理解正确性设计正确性设计正确性表达正确性表达正确性软软 件件 工工 程程 导导 论论2021-11-22167.1.4 测试信息流测试信息流测试过程需要三类输入:测试过程需要三类输入: 软件配置软件配置:包括软件需求规格说明、:包括软件需求规格说明、软件设计规格说明、源代码等;软件设计规格说明、源代码等; 测试配置测试配置:包括测试计划、测试计:
16、包括测试计划、测试计划、测试驱动程序等;划、测试驱动程序等; 测试工具测试工具:包括测试数据自动生成:包括测试数据自动生成程序、静态分析程序、动态分析程程序、静态分析程序、动态分析程序、测试结果分析程序以及驱动测序、测试结果分析程序以及驱动测试的测试数据库等。试的测试数据库等。测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错软软 件件 工工 程程 导导 论论2021-11-22177.1.4 测试信息流测试信息流测试信息流测试信息流测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错可靠性可靠性分析分析结果结果分析分析测试测试排错排错错误错误改正的软件改正的软件预测
17、的可靠性预测的可靠性 果果 结结 试试测测 预预 期期 结结果果软件配置软件配置测试配置测试配置测试工具测试工具出出 错错 率率 数数 据据软软 件件 工工 程程 导导 论论2021-11-22187.1.5 测试与软件开发各阶段的关系测试与软件开发各阶段的关系软件开发过程是一个自顶软件开发过程是一个自顶向下、逐步细化的过程,而测向下、逐步细化的过程,而测试过程则是依相反的顺序安排试过程则是依相反的顺序安排的、自底向上、逐步集成的过的、自底向上、逐步集成的过程。低一级测试为上一级测试程。低一级测试为上一级测试准备条件。当然不排除两者平准备条件。当然不排除两者平行地进行测试。行地进行测试。测试基
18、础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错软软 件件 工工 程程 导导 论论2021-11-22197.1.5 测试与软件开发各阶段的关系测试与软件开发各阶段的关系软件测试与软件开发过程的关系软件测试与软件开发过程的关系测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错需求分析需求分析确认测试确认测试设计设计集成测试集成测试编程编程单元测试单元测试需求分析需求分析说明书说明书概要设计概要设计说明书说明书详细设计详细设计说明书说明书源程序源程序代码代码确认确认测试测试集成集成测试测试单元单元测试测试软软 件件 工工 程程 导导 论论2021-11-22207.2 测
19、试用例设计测试用例设计 任何工程产品都可以使用以任何工程产品都可以使用以下两种方法之一进行测试:下两种方法之一进行测试: 黑盒测试黑盒测试:已知产品的功能设计:已知产品的功能设计规格,可以进行测试证明每个实规格,可以进行测试证明每个实现了的功能是否符合要求;现了的功能是否符合要求; 白盒测试白盒测试:已知产品的内部工作:已知产品的内部工作过程,可以通过测试证明每种内过程,可以通过测试证明每种内部操作是否符合设计规格要求,部操作是否符合设计规格要求,所有内部成分是否已经过检查。所有内部成分是否已经过检查。测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错软软 件件 工工 程程 导导
20、 论论2021-11-2221黑盒测试黑盒测试 黑盒测试主要根据软件的外部黑盒测试主要根据软件的外部特性进行,主要为了发现:特性进行,主要为了发现: 是否有不正确或遗漏了的功能?是否有不正确或遗漏了的功能? 在接口上输入能否正确地接受?在接口上输入能否正确地接受? 能否输出正确的结果?能否输出正确的结果? 是否有数据结构或外部信息访问错误?是否有数据结构或外部信息访问错误? 性能上是否能够满足要求?性能上是否能够满足要求? 是否有初始化或终止性错误?是否有初始化或终止性错误?测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错7.2 测试用例设计测试用例设计软软 件件 工工 程程
21、导导 论论2021-11-2222白盒测试白盒测试 白盒测试是对软件的过程性细节白盒测试是对软件的过程性细节作细致的检查,主要对程序模块进行作细致的检查,主要对程序模块进行检查:检查: 对程序模块的所有独立的执行路径至少对程序模块的所有独立的执行路径至少测试一次;测试一次; 对所有的逻辑判定,取对所有的逻辑判定,取“真真”与取与取“假假”的两种情况都能至少测试一次;的两种情况都能至少测试一次; 在循环的边界和运行界限内执行循环体;在循环的边界和运行界限内执行循环体; 测试内部数据结构的有效性。测试内部数据结构的有效性。测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错7.2 测试
22、用例设计测试用例设计软软 件件 工工 程程 导导 论论2021-11-2223但对一个具有多种选择和循但对一个具有多种选择和循环体嵌套的程序,不同的路径数环体嵌套的程序,不同的路径数据可能是天文数字。而且即使精据可能是天文数字。而且即使精确地实现了白盒测试,也不能断确地实现了白盒测试,也不能断言测试过的程序完全正确。言测试过的程序完全正确。测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错7.2 测试用例设计测试用例设计软软 件件 工工 程程 导导 论论2021-11-2224例如,例如,100行行源代码,包括一个源代码,包括一个执行达执行达20次的循环,次的循环,共包含不同执行
23、路共包含不同执行路径数高达径数高达52 0(1013),如进行穷),如进行穷举测试,假设测试举测试,假设测试需要需要1毫秒条,毫秒条,一天工作一天工作24小时,小时,一年工作一年工作365天,天,则测试完成需要则测试完成需要3170年。年。测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错7.2 测试用例设计测试用例设计循环循环20次次软软 件件 工工 程程 导导 论论2021-11-22257.3 白盒测试的测试用例设计白盒测试的测试用例设计7.3.1 逻辑覆盖逻辑覆盖7.3.2 语句覆盖语句覆盖7.3.3 判定覆盖判定覆盖7.3.4 条件覆盖条件覆盖7.3.5 判定条件覆盖判
24、定条件覆盖7.3.6 条件组合覆盖条件组合覆盖7.3.7 路径覆盖路径覆盖测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错软软 件件 工工 程程 导导 论论2021-11-22267.3.1 逻辑覆盖逻辑覆盖逻辑覆盖是以程序内部的逻辑结逻辑覆盖是以程序内部的逻辑结构为基础的设计测试用例的技术。它构为基础的设计测试用例的技术。它属于白盒测试。这一方法要求测试人属于白盒测试。这一方法要求测试人员对程序的逻辑结构有清楚的了解,员对程序的逻辑结构有清楚的了解,甚至要能掌握源程序的所有细节。由甚至要能掌握源程序的所有细节。由于覆盖测试的目标不同,又可分为:于覆盖测试的目标不同,又可分为:
25、语句覆盖语句覆盖判定覆盖判定覆盖判定条件覆盖判定条件覆盖条件组合覆盖条件组合覆盖路径覆盖路径覆盖测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错软软 件件 工工 程程 导导 论论2021-11-22277.3.1 逻辑覆盖逻辑覆盖测试用例设计参考实例测试用例设计参考实例4条路径:条路径:l1:acel2:abdl3:abel4:acd测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错(a1)(b=0)(a2)(x1)x=x/ax=x+1ffttabcde软软 件件 工工 程程 导导 论论2021-11-22287.3.1 逻辑覆盖逻辑覆盖各路径逻辑式:各路径逻辑式
26、:l1(ace)l2( abd )测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错) 1()2()0() 1() 1() 1()2()0() 1()2() 1( ) 1()2( )0() 1( 1)2)or(x(a)0() 1(xandaandborxandaxandaandborxandaandaxandaandboraandbanda1)0)and(x/a1)and(b0)or(a2)and(b(a1)0)and(x/a1)and(b2)or(a0)and(a1)and(b(a1)2)or(x/a0)and(a1)and(b(a软软 件件 工工 程程 导导 论论2021-1
27、1-22297.3.1 逻辑覆盖逻辑覆盖各路径逻辑式:各路径逻辑式:l3(abe)l4(acd)测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错) 1/()2()0() 1()1/()2()0() 1() 1()0()2()0() 1() 1() 1()0()2()0() 1() 1()1()2( )0() 1( )1()2()0() 1(axandaandbandaaxoraandbandaxandboraandborxandaxandboraandborxandaxoraandboraxoraandbanda软软 件件 工工 程程 导导 论论2021-11-22307.3.
28、2 语句覆盖语句覆盖概述:概述:所谓所谓语句覆盖语句覆盖就是设计若干个就是设计若干个测试用例,运行被测程序,使得每测试用例,运行被测程序,使得每一个可执行语句至少执行一次。一个可执行语句至少执行一次。实例中正好所有的可执行语句实例中正好所有的可执行语句都在路径都在路径l1上,所以选择路径上,所以选择路径l1设设计测试用例,就可以覆盖所有可执计测试用例,就可以覆盖所有可执行语句。行语句。测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错软软 件件 工工 程程 导导 论论2021-11-22317.3.2 语句覆盖语句覆盖测试用例设计格式:测试用例设计格式:【输入的(输入的(a,b,
29、x),输出的(),输出的(a,b,x)】【(2,0,4),(),(2,0,3)】覆盖覆盖ace【l1】测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错软软 件件 工工 程程 导导 论论2021-11-22327.3.3 判定覆盖判定覆盖测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错概述:概述:所谓所谓判定覆盖判定覆盖就是设计若干个就是设计若干个测试用例,运行被测程序,使得程测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分序中每个判断的取真分支和取假分支至少经历一次。故又称分支覆盖。支至少经历一次。故又称分支覆盖。实例中选择路径实例中选择路径l1和和
30、l2,或者,或者l3和和l4设计测试用例,均可以覆盖设计测试用例,均可以覆盖所有判定分支。所有判定分支。软软 件件 工工 程程 导导 论论2021-11-22337.3.3 判定覆盖判定覆盖测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错实例的测试用例:实例的测试用例:选择选择l1和和l2得到测试用例:得到测试用例:【(2,0,4),(2,0,3)】覆盖覆盖ace【l1】【(1,1,1),(1,1,1)】覆盖覆盖abd【l2】选择选择l3和和l4得到测试用例:得到测试用例:【(2,1,1),(2,1,2)】覆盖覆盖abe【l3】 【(3,0,3),(3,1,1)】覆盖覆盖acd
31、【l4】软软 件件 工工 程程 导导 论论2021-11-22347.3.4 条件覆盖条件覆盖测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错概述:概述:所谓所谓条件覆盖条件覆盖就是设计若干个就是设计若干个测试用例,运行被测程序,使得程测试用例,运行被测程序,使得程序中每个判断的每个条件的可能取序中每个判断的每个条件的可能取值至少执行一次。实例中记:值至少执行一次。实例中记:判断判断条件条件取真取真取假取假第一个判断第一个判断a1t1b=0t2第二个判断第二个判断a=2t3x1t4t4t3t2t1软软 件件 工工 程程 导导 论论2021-11-2235选择选择l1、l2、l3
32、得到测试用例:得到测试用例:选择选择l3得到测试用例:得到测试用例:7.3.4 条件覆盖条件覆盖测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错测试用例测试用例通过路径通过路径条件取值条件取值覆盖分支覆盖分支【(2,0,4),(2,0,3) 】ace(l1)c,e【(1,0,1),(1,0,1) 】abd(l2)b,d【(2,1,1),(2,1,2) 】abe(l3)b,et4 t3 t2 t1t4 t3 t2 t1t4 t3 t2 t1测试用例测试用例通过路径通过路径条件取值条件取值覆盖分支覆盖分支【(1,0,3),(1,0,4) 】abd(l3)b,et4 t3 t2 t1
33、t4 t3 t2 t1软软 件件 工工 程程 导导 论论2021-11-22367.3.5 判定条件覆盖判定条件覆盖测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错概述:概述:所谓所谓判定条件覆盖判定条件覆盖就是设就是设计足够的测试用例,使得判断中计足够的测试用例,使得判断中每个条件的所有可能取值至少执每个条件的所有可能取值至少执行一次,同时每个判断本身的所行一次,同时每个判断本身的所有可能判断结果至少执行一次。有可能判断结果至少执行一次。软软 件件 工工 程程 导导 论论2021-11-2237实例中只须设计两个测试用例即可覆盖实例中只须设计两个测试用例即可覆盖8个条个条件取
34、值及件取值及4个判断分支:个判断分支:从表面上看,判定条件覆盖测试了所有条从表面上看,判定条件覆盖测试了所有条件的取值,但实际上有些条件并没有检查到件的取值,但实际上有些条件并没有检查到。如第一个判断中的(。如第一个判断中的(b=0)和第二个判断中)和第二个判断中的(的(x1)。)。7.3.5 判定条件覆盖判定条件覆盖测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错测试用例测试用例通过路径通过路径条件取值条件取值覆盖分支覆盖分支【(2,0,4),(2,0,3) 】ace(l1)c,e【(1,1,1),(1,1,1) 】abd(l2)b,dt4 t3 t2 t1t4 t3 t2
35、t1软软 件件 工工 程程 导导 论论2021-11-22387.3.5 判定条件覆盖判定条件覆盖测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错为彻底检查所有条件的取值,可为彻底检查所有条件的取值,可以将实例图中的多重判定分解,形成以将实例图中的多重判定分解,形成由多个基本判断组成的流程图,这样由多个基本判断组成的流程图,这样可以有效地检查所有的条件是否正确。可以有效地检查所有的条件是否正确。(a1)x=x/ax=x+1(b=0)(a=2)(x1)软软 件件 工工 程程 导导 论论2021-11-22397.3.6 条件组合覆盖条件组合覆盖测试基础用例设计白盒测试黑盒测试本章
36、小结测试策略人工测试调试排错概述:概述:所谓所谓条件组合覆盖条件组合覆盖就是设计足就是设计足够的测试用例,运行被测程序,使够的测试用例,运行被测程序,使得程序中每个判断的所有可能的取得程序中每个判断的所有可能的取值组合至少执行一次。值组合至少执行一次。实例中有两个判断,每个判断实例中有两个判断,每个判断各有两个条件,所以各有各有两个条件,所以各有4个条件取个条件取值的组合,可用值的组合,可用4个测试用例覆盖个测试用例覆盖8个条件取值的组合。个条件取值的组合。软软 件件 工工 程程 导导 论论2021-11-22407.3.6 条件组合覆盖条件组合覆盖测试基础用例设计白盒测试黑盒测试本章小结测试
37、策略人工测试调试排错实例中各判断条件取值组合标记:实例中各判断条件取值组合标记:标记标记条件条件覆盖条件覆盖条件判断判断分支分支第一个第一个取真取真取假取假取假取假取假取假第二个第二个取真取真取真取真取真取真取假取假t4 t3t4 t3t4 t3t4 t3t2 t1t2 t1t2 t1t2 t11x , 2a1x , 2a1x , 2a1x , 2a0b , 1a0b , 1a0b , 1a0b , 1a软软 件件 工工 程程 导导 论论2021-11-22417.3.6 条件组合覆盖条件组合覆盖测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错实例测试用例:实例测试用例:测试用
38、例测试用例通过路径通过路径覆盖条件覆盖条件覆盖组合号覆盖组合号【(2,0,4), (2,0,3)】ace(l1), 【(2,1,1), (2,1,2)】abe(l3), 【(1,0,3), (1,0,4)】abe(l3), 【(1,1,1), (1,1,1)】abd(l2), t4 t3 t2 t1t4 t3 t2 t1t4 t3 t2 t1t4 t3 t2 t1软软 件件 工工 程程 导导 论论2021-11-22427.3.7 路径测试路径测试测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错概述:概述:所谓所谓路径覆盖路径覆盖就是设计足够就是设计足够的测试用例,运行被测程序
39、,使的测试用例,运行被测程序,使得程序中所有可能的路径至少执得程序中所有可能的路径至少执行一次。行一次。实例中设计实例中设计4个测试用例即个测试用例即可覆盖该程序段的所有路径可覆盖该程序段的所有路径l1、l2、l3和和l4。软软 件件 工工 程程 导导 论论2021-11-22437.3.7 路径测试路径测试测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错实例测试用例:实例测试用例:测试用例测试用例通过路径通过路径覆盖条件覆盖条件【(2,0,4), (2,0,3) 】 ace(l1)【(1,1,1), (1,1,1) 】 abe(l2)【(1,1,2), (1,1,3) 】 a
40、be(l3)t4 t3 t2 t1t4 t3 t2 t1t4 t3 t2 t1t4 t3 t2 t1软软 件件 工工 程程 导导 论论2021-11-22447.4 黑盒测试的测试用例设计黑盒测试的测试用例设计7.4.1 等价类划分等价类划分7.4.2 边界值分析边界值分析7.4.3 错误推测法错误推测法7.4.4 因果图因果图测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错软软 件件 工工 程程 导导 论论2021-11-22457.4.1 等价类划分等价类划分概述概述等价类划分是一种典型的黑等价类划分是一种典型的黑盒测试方法,也是一种非常实用盒测试方法,也是一种非常实用的重
41、要测试方法。的重要测试方法。使用这一方法设计测试用例使用这一方法设计测试用例要经历划分等价类(列出等价类要经历划分等价类(列出等价类表)和选取测试用例两步。表)和选取测试用例两步。测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错软软 件件 工工 程程 导导 论论2021-11-22467.4.1 等价类划分等价类划分步骤步骤1)划分等价类)划分等价类首先将数目极多的输入数据首先将数目极多的输入数据(有效的和无效的)划分为若干等价(有效的和无效的)划分为若干等价类。所谓等价类是指某个输入域的子类。所谓等价类是指某个输入域的子集合。在该子集中,各个输入数据对集合。在该子集中,各个输
42、入数据对于揭露程序中的错误都是等效的。并于揭露程序中的错误都是等效的。并合理地假定:测试某等价的代表值等合理地假定:测试某等价的代表值等价于对这一类其它值的测试。价于对这一类其它值的测试。测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错软软 件件 工工 程程 导导 论论2021-11-22477.4.1 等价类划分等价类划分步骤步骤1)划分等价类)划分等价类等价类划分有两种情况:等价类划分有两种情况: 有效等价类有效等价类:是指对于程序的是指对于程序的规格来说,是合理的、有意义规格来说,是合理的、有意义的输入数据构成的集合。的输入数据构成的集合。 无效等价类无效等价类:是指对于
43、程序的:是指对于程序的规格说明来说,是不合理的、规格说明来说,是不合理的、无意义的输入数据构成的集合。无意义的输入数据构成的集合。测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错软软 件件 工工 程程 导导 论论2021-11-22487.4.1 等价类划分等价类划分步骤步骤1)划分等价类)划分等价类划分等价类的原则:划分等价类的原则: 如果输入条件规定了取值范围或值的个如果输入条件规定了取值范围或值的个数,则可以确立一个有效等价类和两个数,则可以确立一个有效等价类和两个无效等价类。无效等价类。 如果输入条件规定了输入值的集合,或如果输入条件规定了输入值的集合,或者是规定了者是
44、规定了“必须如何必须如何”的条件,则可的条件,则可确立一个有效等价类和一个无效等价类。确立一个有效等价类和一个无效等价类。 如果输入条件是一个布尔值,则可以确如果输入条件是一个布尔值,则可以确立一个有效等价类和一个无效等价类。立一个有效等价类和一个无效等价类。测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错软软 件件 工工 程程 导导 论论2021-11-22497.4.1 等价类划分等价类划分步骤步骤1)划分等价类)划分等价类划分等价类的原则:划分等价类的原则: 如果规定了输入数据的一组值,而且程序要对如果规定了输入数据的一组值,而且程序要对每个输入值分别进行处理。则可为每一
45、个输入每个输入值分别进行处理。则可为每一个输入值确立一个有效等价类,针对这组值确立一个值确立一个有效等价类,针对这组值确立一个无效等价类。无效等价类。 如果规定了输入数据必须遵守的规则,则可确如果规定了输入数据必须遵守的规则,则可确立一个有效等价类(符合规则)和若干个无效立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。等价类(从不同角度违反规则)。 如果我们确知已划分的等价类中各元素在程序如果我们确知已划分的等价类中各元素在程序中的处理方式不同,则应将此等价类进一步划中的处理方式不同,则应将此等价类进一步划分成更小的等价类。分成更小的等价类。测试基础用例设计白盒测试黑盒测
46、试本章小结测试策略人工测试调试排错软软 件件 工工 程程 导导 论论2021-11-22507.4.1 等价类划分等价类划分步骤步骤2)确立测试用例)确立测试用例在确立了等价类之后,建立在确立了等价类之后,建立等价类表,列出所有划分出的等等价类表,列出所有划分出的等价类:价类:再从划分出的等价类中选择再从划分出的等价类中选择测试用例。测试用例。测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错输入条件输入条件有效等价类有效等价类无效等价类无效等价类软软 件件 工工 程程 导导 论论2021-11-22517.4.1 等价类划分等价类划分步骤步骤2)确立测试用例)确立测试用例测试用
47、例选择原则:测试用例选择原则: 为每一个等价类规定一个唯一的编号;为每一个等价类规定一个唯一的编号; 设计一个新的测试用例,使其尽可能设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖的有效等价类,多地覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类重复这一步,直到所有的有效等价类都被覆盖为止;都被覆盖为止; 设计一个新的测试用例,使其仅覆盖设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被这一步,直到所有的无效等价类都被覆盖为止。覆盖为止。测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错
48、软软 件件 工工 程程 导导 论论2021-11-22527.4.1 等价类划分等价类划分设计实例设计实例在某一在某一pascal语言版本中语言版本中规定:规定:“标识符是由字母开头、标识符是由字母开头、后跟字母或数字的任意组合构成。后跟字母或数字的任意组合构成。有效字符数为有效字符数为8个,最大字符数个,最大字符数为为80个。个。”并规定:并规定:“标识符必标识符必须先说明,再使用。须先说明,再使用。”“”“在同一在同一说明语句中,标识符至少必须有说明语句中,标识符至少必须有一个。一个。”测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错软软 件件 工工 程程 导导 论论202
49、1-11-22537.4.1 等价类划分等价类划分实例等价类表实例等价类表测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错输入条件输入条件有效等价类有效等价类无效等价类无效等价类标识符个数标识符个数1个(个(1),多个(),多个(2) 0个(个(3)标识符字符数标识符字符数18个(个(4)0个(个(5),),8个(个(6),),80个(个(7)标识符组成标识符组成字母(字母(8),数字(),数字(9)非字母数字字符(非字母数字字符(10),),保留字(保留字(11)第一个字符第一个字符字母(字母(12)非字母(非字母(13)标识符使用标识符使用先说明后使用(先说明后使用(14)
50、未说明已使用(未说明已使用(15)软软 件件 工工 程程 导导 论论2021-11-22547.4.1 等价类划分等价类划分实例测试用例实例测试用例var x, t1234567: real; (1),(2),(4),(8),(9),(12),(14)begin x:=3.414; t1234567:=2.732;var : real; (3)var x,:real; (5)var t12345678:real; (6)var t12345:real; (7) 多于多于80个字符个字符测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错软软 件件 工工 程程 导导 论论2021-1
51、1-22557.4.1 等价类划分等价类划分实例测试用例实例测试用例var t $: char; (10)var goto: integer (11)var 2t: real; (13)var par: real; (15)begin pap:=sin(3.140.8)/6;测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错软软 件件 工工 程程 导导 论论2021-11-22567.4.2 边界值分析边界值分析概述概述边界值分析也是一种黑盒测试方边界值分析也是一种黑盒测试方法,是对等价类划分方法的补充。法,是对等价类划分方法的补充。使用边界值分析方法设计测试用使用边界值分析方法
52、设计测试用例,首先应确定边界情况。通常输入例,首先应确定边界情况。通常输入等价类与输出等价类的边界,就是应等价类与输出等价类的边界,就是应着重测试的边界情况。应当选取正好着重测试的边界情况。应当选取正好等于、刚刚大于或刚刚小于边界的值等于、刚刚大于或刚刚小于边界的值作为测试数据,而不是选择等价类中作为测试数据,而不是选择等价类中的典型值或任意值作为测试数据。的典型值或任意值作为测试数据。测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错软软 件件 工工 程程 导导 论论2021-11-22577.4.2 边界值分析边界值分析选择测试用例的原则选择测试用例的原则(1)如果输入条件规
53、定了值的范围,则)如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作以及刚刚超越这个范围边界的值作为测试输入数据。为测试输入数据。(2)如果输入条件规定了值的个数,则)如果输入条件规定了值的个数,则用最大个数、最小个数、比最大个用最大个数、最小个数、比最大个数多数多1、比最小个数少、比最小个数少1的数作为测的数作为测试数据。试数据。(3)根据规格说明的每个输出条件,使)根据规格说明的每个输出条件,使用前面的原则(用前面的原则(1)。)。测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错软软 件件 工工 程程 导
54、导 论论2021-11-22587.4.2 边界值分析边界值分析选择测试用例的原则选择测试用例的原则(4) 根据规格说明的每个输出条件,使用前根据规格说明的每个输出条件,使用前面的原则(面的原则(2)。)。(5) 如果程序的规格说明给出的输入域或输如果程序的规格说明给出的输入域或输出域实有序集合(如有序表、顺序文件等),出域实有序集合(如有序表、顺序文件等),则应选取集合的第一个元素和最后一个元素则应选取集合的第一个元素和最后一个元素作为测试用例。作为测试用例。(6) 如果程序中使用了一个内部数据结构,如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值则应当选择这个内部数
55、据结构的边界上的值作为测试用例。作为测试用例。(7) 分析规格说明找出其它可能的边界条件。分析规格说明找出其它可能的边界条件。测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错软软 件件 工工 程程 导导 论论2021-11-22597.4.2 边界值分析边界值分析设计实例(阅卷给出成绩报告)设计实例(阅卷给出成绩报告)测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错(试题部分)(试题部分) 1 80 1 3 4 9 10 59 60 79 80 1 9 10 59 60 79 80标标 题题试题数试题数标准答案标准答案 第第150题题标准答案标准答案 第第511
56、00题题标准答案标准答案 第第101150题题222软软 件件 工工 程程 导导 论论2021-11-22607.4.2 边界值分析边界值分析测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错(学生答卷部分)(学生答卷部分) 1 9 10 59 60 79 80 1 9 10 59 60 79 80. 1 9 10 59 60 79 80某甲学号某甲学号某乙学号某乙学号标准答案标准答案 第第150题题标准答案标准答案 第第51100题题标准答案标准答案 第第150题题333软软 件件 工工 程程 导导 论论2021-11-22617.4.2 边界值分析边界值分析记录分组记录分组标
57、题标题各题的标准答案各题的标准答案学生的答卷学生的答卷按学号排列的成绩单,列出每个学生的成按学号排列的成绩单,列出每个学生的成绩、名次;绩、名次;按学生成绩排列的成绩单;按学生成绩排列的成绩单;平均分数及标准偏差的报告;平均分数及标准偏差的报告;试题分析报告。试题分析报告。测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错软软 件件 工工 程程 导导 论论2021-11-22627.4.2 边界值分析边界值分析测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错输入条件输入条件测测 试试 用用 例例输入文件输入文件空输入文件空输入文件标题标题没有标题记录标题只有一个字
58、没有标题记录标题只有一个字符标题有符标题有80个字符个字符试题数试题数试题数为试题数为1 试题数为试题数为50 试试题数为题数为51 试题数为试题数为100 试题试题数为数为999 试题数为试题数为0 试题数试题数含有非数字字符含有非数字字符标准答案记录标准答案记录没有标准答案记录,有标题标没有标准答案记录,有标题标准答案记录多一个标准答案记录准答案记录多一个标准答案记录少一个少一个软软 件件 工工 程程 导导 论论2021-11-22637.4.2 边界值分析边界值分析测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错输入条件输入条件 测测 试试 用用 例例学生人数学生人数0个
59、学生个学生1个学生个学生200个学生个学生201个学生个学生学生答题学生答题某学生只有一个回答记录,但有两个某学生只有一个回答记录,但有两个标准答案记录该学生是文件中的第标准答案记录该学生是文件中的第一个学生该学生是文件中的最后一一个学生该学生是文件中的最后一个学生(记录数出错的学生)个学生(记录数出错的学生)学生答题学生答题某学生有两个回答记录,但只有一个某学生有两个回答记录,但只有一个标准答案记录该学生是文件中的第标准答案记录该学生是文件中的第一个学生(记录数出错的学生)一个学生(记录数出错的学生) 该该学生是文件中的最后一个学生学生是文件中的最后一个学生软软 件件 工工 程程 导导 论论
60、2021-11-22647.4.2 边界值分析边界值分析测试基础用例设计白盒测试黑盒测试本章小结测试策略人工测试调试排错输出条件输出条件 测试用例测试用例学生成绩学生成绩所有学生成绩都相等每个学生的所有学生成绩都相等每个学生的成绩都互不相同部分(不是全体)成绩都互不相同部分(不是全体)学生的成绩相同(检查是否按成绩排名学生的成绩相同(检查是否按成绩排名次)有个学生得次)有个学生得0分有个学生分有个学生得得100分分输出报告输出报告 有个学生的学号最小(检查按学号排有个学生的学号最小(检查按学号排列是否正确)有个学生的学号最大列是否正确)有个学生的学号最大(检查按学号排列是否正确)适当(检查按学
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 别墅电路施工方案(3篇)
- 地铁应急监测预案(3篇)
- 影楼选片活动策划方案(3篇)
- 拉新人活动方案策划(3篇)
- 新生创业营销方案(3篇)
- 梅州大桥施工方案(3篇)
- 汽车推广营销方案(3篇)
- 淀山湖大桥施工方案(3篇)
- 牙科营销策略方案(3篇)
- 电梯改造营销方案(3篇)
- 2026四川乐山师科投资有限责任公司招聘2人笔试备考试题及答案解析
- 2026广东东莞市塘厦镇招聘专职网格员7人考试备考题库及答案解析
- 天津市2024天津港引航中心招聘事业单位人员5人笔试历年参考题库典型考点附带答案详解
- 养鸡场安全生产责任制度范本
- 新版部编版三年级下册道德与法治第2课《幸福生活是奋斗出来的》教学课件
- Picco在休克患者治疗中的应用
- 金矿选矿项目经济效益和社会效益分析报告
- 三年级两位数乘加乘减计算练习题(每日一练共18份)
- CAN总线培训课件
- 2026春苏教版新教材小学科学三年级下册(全册)教学设计(附教材目录P187)
- 2025预制菜行业市场竞争分析及上游供应链优化与消费者习惯调研报告
评论
0/150
提交评论