软件测试PPT第三章 测试用例的设计方法课件.ppt

上传人:小飞机 文档编号:2138434 上传时间:2023-01-17 格式:PPT 页数:203 大小:1.61MB
返回 下载 相关 举报
软件测试PPT第三章 测试用例的设计方法课件.ppt_第1页
第1页 / 共203页
软件测试PPT第三章 测试用例的设计方法课件.ppt_第2页
第2页 / 共203页
软件测试PPT第三章 测试用例的设计方法课件.ppt_第3页
第3页 / 共203页
软件测试PPT第三章 测试用例的设计方法课件.ppt_第4页
第4页 / 共203页
软件测试PPT第三章 测试用例的设计方法课件.ppt_第5页
第5页 / 共203页
点击查看更多>>
资源描述

《软件测试PPT第三章 测试用例的设计方法课件.ppt》由会员分享,可在线阅读,更多相关《软件测试PPT第三章 测试用例的设计方法课件.ppt(203页珍藏版)》请在三一办公上搜索。

1、.,软件测试,.,3.1 软件测试用例的概述3.2 黑合测试用例的设计3.3 白合测试用例的设计,第三章 软件测试用例的设计,.,3.1.1 测试用例的基本概念3.1.2 测试用例的设计原则与特性3.1.3 测试用例的编制,3.1 测试用例的基本概念,.,1、什么是测试用例测试用例(Test Case)是为达到最佳的测试效果或高效的揭露隐藏的错误而精选的少量有代表性或特殊性测试数据。软件测试的灵魂-测试用例 例:测试Yahoo邮箱的登录程序,假设存在一用户为user,密码为12345。,3.1.1 测试用例的概念,.,3.1.1 测试用例的概念,.,工程硕士,6,测试用例包括测试环境、测试步骤

2、、测试数据和预期结果。即测试用例=输入+输出+测试环境+测试步骤输入:测试数据和操作步骤输出:期望结果测试环境:软硬件环境配置,3.1.1 测试用例的概念,.,2、编制测试用例的重要性为什么要做测试用例,主要原因有如下几点:完全测试是不可能的;输入量太大;输出结果太多;软件实现路径太多;软件说明书没有客观标准,软件缺陷的标准也不同。,3.1.1 测试用例的概念,.,使用测试用例的好处:可以避免盲目测试并提高测试效率。使软件测试的实施重点突出、目的明确。在软件版本更新后只需修正少部分的测试用例便可展开测试工作,降低工作强度、缩短项目周期。测试用例的通用化和复用化则使软件测试易于开展。,3.1.1

3、 测试用例的概念,.,测试用例的作用 指导测试的实施 规划测试数据的准备 评估测试结果的度量基准 分析缺陷的标准 编写测试脚本的设计规格说明书,3.1.1 测试用例的概念,.,1、测试用例的设计原则 保证测试用例的明确性。测试人员要尽量避免测试用例存在含糊的因素,否则会影响测试工作进行与测试结果的准确性(模棱两可)。在测试过程中,测试用例的测试结果是唯一的,即通过、没通过或未进行测试。如果测试没有通过,一般会生成相应的测试错误报告;如果测试没有进行,也会生成相应的原因说明报告,如测试用例本身具有错误性、测试用例的不适用性等等。,3.1.2 测试用例的设计原则与特性,.,保证测试用例的代表性。尽

4、量将具有相似功能的测试用例抽象合并,使一个测试用例具有测试一类或一系列的系统需求。保证测试用例的简洁性。冗长与复杂的测试用例是不应该出现的,否则可读性差、不利于测试人员理解和操作。简洁的测试用例可以让测试过程目的明确,让测试结果具有唯一性。,3.1.2 测试用例的设计原则与特性,.,2、测试用例的特性 有效性:测试用例是测试人员测试过程中的重要参考依据,不同的测试人员根据相同的测试用例所得到的输出应该是一致的。可复用性:良好的测试用例具有重复使用的功能,这样就可以大大地节约测试的时间,提高测试的效率。,3.1.2 测试用例的设计原则与特性,.,易组织性:测试用例可能有成千上万个,有效地组织这些

5、测试用例,分门别类地提供给测试人员参考和使用,才是一个好的测试计划。可评估性:从测试管理的角度,测试用例的通过率和软件缺陷的数目是软件产品质量好坏的测试标准。可管理性:测试用例可以作为检验测试人员进度、工作量以及跟踪/管理测试人员工作效率的因素。,3.1.2 测试用例的设计原则与特性,.,14,Good Test case,有效性,仿效性,经济性,修改性,测试用例是否能够发现缺陷或者至少可能发现缺陷。,测试用例的代表程度,可测试多项内容,因而减少测试用例数量。,实现、调试和运行测试用例的成本,修改和维护测试用例的难易程度,3、测试用例的度量标准,3.1.2 测试用例的设计原则与特性,.,1、测

6、试用例编制的依据需求说明以及相关文档;设计说明及相关文档(概要设计,详细设计等);与开发组交流的记录(可以是开发人员的一个解释);基本成型的UI;编写测试用例的文档模板和符合内部的规范要求。测试用例有相关的编制标准,如ANSI/IEEE829-1983标准中列出的关于软件测试用例的相关编制规范和模板。,3.1.3 测试用例的编制,.,2、测试用例的编制过程 分析软件程序的工作流程。目的是了解用户与系统交互时的操作和步骤,以确定与描述测试软件所需的测试用例。,3.1.3 测试用例的编制,.,确定并制定测试用例 目的是为每项测试需求编写适当的测试用例。软件测试用例主要根据测试用例编写要素,结合相应

7、的软件需求文档,在掌握一定测试用例设计方法的基础上,设计出比较全面、合理的测试用例,并生成规范的测试用例表。如果测试过以前的版本,则测试用例已经存在,应复审这些测试用例。,3.1.3 测试用例的编制,.,确定测试用例数据 根据测试用例表的内容,确定支持这些测试用例的实际值。测试用例数据一般包括:用作输入的数据值 用作预期结果的数据值 用作支持测试用例所需的数据 测试用例的修改更新 测试用例在形成文档后还需要不断完善,缘故在于:在测试过程中发现设计测试用例时考虑不周;在软件交付使用后反馈的软件缺陷,而缺陷又是因测试用例存在漏洞造成;软件自身的新增功能以及软件版本的更新,测试用例也必须配套修改更新

8、。,3.1.3 测试用例的编制,.,3、测试用例的管理 测试管理软件的主要功能有三个:记录测试用例文档的关键内容、可供测试实施时及时输入测试情况、实现自动生成测试结果文档。,3.1.3 测试用例的编制,.,4、测试用例的文档 测试用例文档由简介和测试用例两部分组成。测试用例的文档模板。用于描述输入、动作、时间和一个期望结果。测试用例的基本要素。包括测试用例编号、测试标题、测试模块、用例级别、测试环境、测试输入、执行操作、预期结果。不同的公司会有不同的测试用例模板。,3.1.3 测试用例的编制,.,用例编号:每个测试用例都有唯一的标识号,用以区别其他测试用例。测试用例的编号有一定的规则:项目名称

9、测试阶段类型(系统测试阶段)编号,如PROJECT1-ST-001,定义测试用例编号,是为了便于查找与跟踪测试用例。测试标题:测试用例标题应清楚表达测试用例的用途,如“测试用户登录时输入错误密码时,软件的响应情况”。测试模块:指明并简单描述测试用例是用来测试哪些项目、子项目或软件特性的。,3.1.3 测试用例的编制,.,用例级别:测试用例的优先级别,可以粗略地分为“高”和“低”两个级别,也可以分为“高”、“中”、“低”三个级别。一般来说,软件需求的优先级和测试用例的优先级一致,即如果软件需求的优先级为“高”,该需求的测试用例的优先级也为“高”;反之亦然。测试环境:执行测试用例所需的硬软件环境。

10、在整个测试模块中需要对应说明整个测试的特殊环境要求,在单个测试用例的测试环境需要表述该测试用例所单独需要的特殊环境要求。,3.1.3 测试用例的编制,.,测试输入:用来执行测试用例的输入要求。输入可以是数据、文件或具体操作。根据需求中的输入条件,确定测试用例的输入,测试用例的输入对软件需求当中的输入有很大的依赖性,如果软件需求中没有很好的定义需求的输入,那么测试用例设计中会遇到很大的障碍。执行操作:执行测试用例所需的每一步操作。对于复杂的测试用例,测试用例的输入需要分为几个步骤完成,这部分内容在操作步骤中详细列出。,3.1.3 测试用例的编制,.,预期结果:描述被测项目或特性所希望或要求达到的

11、输出或指标。一般来说,预期结果主要根据软件需求中的输出得出,如果在实际测试过程中,得到的实际测试结果与预期结果不符,那么测试不通过;反之则测试通过。,3.1.3 测试用例的编制,.,测试用例的基本要素,3.1.3 测试用例的编制,.,工程硕士,26,测试用例的内容(示例),3.1.3 测试用例的编制,.,工程硕士,27,测试用例模板(示例),3.1.3 测试用例的编制,.,测试用例是测试工作的核心,应该尽量设计的周密细致,这样才能更好的保证测试工作的质量。以一个实现登录功能的小程序为例,它允许用户选择城市和地区,输入自己的账号和密码。如图1-9所示,通过Alt-F4组合键和“Exit”按钮来终

12、止程序,Tab键在区域中间移动。,.,登录窗口,根据组成页面的具体元素,做了比较全面的测试用例。,.,(1)下拉框和输入框测试用例,.,(2)功能测试用例,.,(3)各种错误数据的测试,.,(4)特殊测试,.,3.2.1 等价类测试用例设计法3.2.2 边界分析测试用例设计法3.2.3 决策表测试用例设计法3.2.4 因果图测试用例设计法3.2.5 错误猜测测试用例设计法3.2.6 业务流程图测试用例设计法3.2.7 黑盒测试用例设计方法的应用,3.2 黑合测试用例的设计,.,常用的黑盒测试用例设计方法主要有以下几种:边界值分析 等价类 决策表 因果图法 错误猜测法 流程图法,3.2 黑合测试

13、用例的设计,.,1、等价类测试用例设计的基本思想 等价类测试法是将不能穷举的测试过程进行合理分类,从而保证设计出来的测试用例具有完整性和代表性。等价类测试法是把所有可能的输入数据(即程序的输入域)划分成若干子集(等价类),从每一个子集中选取少数具有代表性的数据作为测试用例。每个子集中的输入具有相同揭示程序问题的能力,进而达到尽可能完备同时又可避免冗余的测试。在分析需求规格说明书的基础上划分等价类,是等价类测试用例设计的前提。,3.2.1 等价类测试用例设计法,.,所谓等价类是指输入域的某个子集,所有等价类的并集就是整个输入域。在等价类中,各个输入数据对于揭露程序中的错误都是等效的,具有等价特性

14、。因此,测试等价类中的代表值等价于对该类中其它值的测试,即如果某等价类中的一个用例发现了错误,该等价类中的其它用例也能发现同样的错误;反之,如果等价类中的一个用例没有发现错误,该等价类中的其它用例也不会查出错误。,3.2.1 等价类测试用例设计法,.,2、有效等价类与无效等价类 软件不能只接收合理有效的数据,还应具有处理异常数据的功能,才能确保软件具有更高的可靠性。因此,在划分等价类的过程中,不但要考虑有效等价类划分,同时也要考虑无效等价类划分。有效等价类是指对需求规格说明书来说,合理、有意义的输入数据所构成的集合。利用有效等价类可以检验程序是否满足规格说明所规定的功能和性能。无效等价类则和有

15、效等价类相反,对需求规格说明书是无意义的、不合理的输入数据所构成的集合,即不满足程序输入要求或者无效的输入数据所构成的集合。利用无效等价类可以检验程序异常情况的处理。,3.2.1 等价类测试用例设计法,.,39,3、等价类划分的原则如果输入条件规定了一个取值范围,就应确定一个有效等价类和两个无效等价类;如果输入条件规定了取值的个数,就应确定一个有效等价类和两个无效等价类;如果输入条件是一个布尔表达式的条件,可以确定一个有效等价类和一个无效等价类如果输入条件规定了一个输入值的集合,而且程序会对每个值进行不同处理,就应为每个输入值确定一个有效等价类和一个无效等价类;如果输入条件规定了“必须是”的情

16、况,就应确定一个有效等价类和若干无效等价类;如果程序未等同地处理等价类中的元素,应将这个等价类再划分为小一些的等价类。,3.2.1 等价类测试用例设计法,.,40,4、等价类测试用例设计的步骤划分等价类;为每一个有效等价类和无效等价类规定一个唯一的编号;设计一个测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类,重复这一步直到所有有效等价类均被测试用例所覆盖;设计一个测试用例,使其只覆盖一个无效等价类,重复这一步,直到所有无效等价类均被覆盖。,3.2.1 等价类测试用例设计法,.,5、等价类表示 在确立了等价类之后,建立等价类表,列出所有划分出的等价类,如表所示。,等价类表,3.2.1 等价类测

17、试用例设计法,.,42,求三角形面积(仅判断是否是三角形),某程序实现如下功能:输入三个整数a,b,c,输出以a,b,c为三边的三角形面积(1a,b,c100),结果保留2位小数。,3.2.1 等价类测试用例设计法,.,43,3.2.1 等价类测试用例设计法,.,6、常见等价类划分形式 针对是否对无效数据进行测试,可以将等价类分为标准等价类、健壮等价类和对等区间等价类。(1)标准(简单)等价类 标准等价类不考虑无效数据,测试用例使用每个等价类中的一个值。通常,标准等价类测试用例的数量和最大等价类中元素的数目相等。,3.2.1 等价类测试用例设计法,.,NextDate 函数包含三个变量:mon

18、th(月份)、day(日期)和 year(年),函数的输出为输入日期后一天的日期。例如,输入为2007年9月9日,则函数的输出为2007年9月10日。要求输入变量 month、day和year均为整数值,并且满足下列条件:(1)1month12(2)1day31(3)1912year2050,3.2.1 等价类测试用例设计法,.,NextDate函数的标准等价类有三个有效等价类:M1month:1month12 D1day:1day31 Y1year:1912year2050,3.2.1 等价类测试用例设计法,.,(2)健壮等价类 NextDate函数的主要特点是输入变量之间的逻辑关系比较复杂

19、,原因有两个:一个是输入域的复杂性,另一个是闰年的规则。例如变量year和变量month取不同的值,对应的变量day会有不同的取值范围,day值的范围可能是130或131,也可能是128或129。,3.2.1 等价类测试用例设计法,.,(2)健壮等价类 健壮等价类应考虑无效等价类,若三个输入中有一个条件无效,那么NextDate 函数都应产生一个输出,来指明相应的变量超出取值范围,例如month的值不在 112 范围当中。显然还存在着大量的year、month、day的无效组合,NextDate 函数将这些组合统一输出为:“无效输入日期”。M2month:month12 D2day:day31

20、 Y2year:year2050,3.2.1 等价类测试用例设计法,.,(2)健壮等价类 在标准等价类中,既没有考虑2月份的天数问题,也没有考虑闰年的问题,月份只包含了30天和31天两种情况。在健壮等价类划分中,考虑2月份天数。关于每个月份的天数,可以详细划分为以下等价类:M1month:month有30天 M2month:month有31天 M3month:month是2月 D1day:1day27 D2day:day28 D3day:day29 D4day:day30 D5day:day31 Y1year:year是闰年 Y2year:year不是闰年,3.2.1 等价类测试用例设计法,.

21、,NextDate函数健壮等价类测试用例,3.2.1 等价类测试用例设计法,.,(3)弱健壮等价类测试 弱健壮等价类主要是考虑无效等价类。对有效输入,测试用例从每个有效等价类中取一个值;对无效输入,一个测试用例有一个无效值,其他值均取有效值。,3.2.1 等价类测试用例设计法,.,NextDate函数弱健壮等价类测试用例,3.2.1 等价类测试用例设计法,.,(4)强健壮等价类测试 强健壮等价类则考虑更多的无效值。强健壮等价类中的无效测试用例可以包含多个无效值,即含有多个缺陷假设。因为NextDate函数有三个变量,所以对应的强健壮等价类测试用例可以包含一个无效值,两个无效值或三个无效值。,3

22、.2.1 等价类测试用例设计法,.,NextDate函数强健壮等价类测试用例,3.2.1 等价类测试用例设计法,.,(5)对等区间等价类 对等区间等价类是非常规的形式化方法,它将被测对象的输入/输出划分成一些区间,被测软件对一个特定区间的任何值都是等价的。测试区间的数据不只是函数/过程的参数,也可以是程序可以访问的全局变量、系统资源等,且变量或资源可以是以时间形式存在的数据,或以状态形式存在的输入/输出序列。对等区间等价类划分的前提是位于单个区间的所有值对测试都是对等的,应为每个区间的一个值设计一个测试用例。,3.2.1 等价类测试用例设计法,.,平方根函数要求当输入值为0或大于0时,返回输入

23、数的平方根;当输入值小于0时,显示“平方根错误”。考虑平方根函数的测试用例区间,可以划分出两个输入区间和两个输出区间。,区间划分,3.2.1 等价类测试用例设计法,.,通过分析,可以用两个测试用例来测试4个区间:测试用例1:输入4,返回2/区间和A 测试用例2:输入-4,输出“平方根错误,输入值小于0”/区间和B 当软件变得更加复杂时,对等区间的确定就较难,区间之间的相互依赖性就越强,使用对等区间等价类划分设计测试用例技术的难度增加。,3.2.1 等价类测试用例设计法,.,58,NextDate(月,日,年)是三个变量的函数。函数返回输入日期的下一个日期。变量月份,日期和年都是整数值,且满足下

24、面的条件:1月份=12,1=日期=31,1900=年=2060 两种不同的等价类划分方法,等价类测试示例:NextDate问题,.,59,方法1,测试用例覆盖等价类1,2,3:测试输入=(2006,6,16),预期结果=(2006,6,17)覆盖等价类4,2,3:测试输入=(1890,4,10),预期结果=“输入错误!”覆盖等价类5,2,3:测试输入=(2062,4,10),预期结果=“输入错误!”覆盖等价类1,6,3:测试输入=(2006,-2,16),预期结果=“输入错误!”覆盖等价类1,7,3:测试输入=(2006,13,16),预期结果=“输入错误!”覆盖等价类1,2,8:测试输入=(

25、2006,6,0),预期结果=“输入错误!”覆盖等价类1,2,9:测试输入=(2006,4,33),预期结果=“输入错误!”,.,60,方法2,测试用例覆盖等价类1,3,7:测试输入=(2000,7,16),预期结果=(2000,7,17)覆盖等价类2,4,8:测试输入=(2006,4,29),预期结果=(2006,4,30)覆盖等价类1,5,9:测试输入=(2000,2,30),预期结果=“输入错误!”覆盖等价类2,6,10:测试输入=(2001,12,31),预期结果=(2002,1,1)覆盖等价类11,3,7:测试输入=(1830,3,19),预期结果=“输入错误!”,.,61,方法2(

26、续),测试用例(续)覆盖等价类12,3,7:测试输入=(3000,3,19),预期结果=“输入错误!”覆盖等价类1,13,7:测试输入=(2004,-2,10),预期结果=“输入错误!”覆盖等价类1,14,7:测试输入=(2004,15,10),预期结果=输入错误!”覆盖等价类1,3,15:测试输入=(2004,8,-2),预期结果=“输入错误!”覆盖等价类1,3,16:测试输入=(2004,8,38),预期结果=“输入错误!”,。,.,62,讨论每种结果都覆盖了一些应该测试的功能点 第一种方法:过多关注无效等价类的测试,遗漏了较多NextDate问题蕴含的逻辑,如平年和闰年、二月和大小月、月

27、底等;第二种方法:在第一种方法的基础上,增加了对二月、年底等的测试,同时要考虑NextDate的逻辑知识,测试用例涵盖了大部分需测试的要点,但仍有些遗漏,例如年底、平年的二月等如果程序未等同地处理等价类中的元素,应将这个等价类再划分为小一些的等价类。,3.2.1 等价类测试用例设计法,.,63,等价类测试示例:加法器,一个c语言程序,功能是计算1100之间的整数的和,#include void main(void)int a;/加数int b;/加数int c;/和while(1)printf(“请输入两个1到100之间的整数:”);fflush(stdin);/清空输入缓冲区scanf(“%

28、d%d”,(1)无效等价类 1,(2)有效等价类 1100之间,(3)无效等价类 100,A,B,+,=,.,64,加法器等价类扩展,除了考虑数据的输入范围,还要考虑输入数据的类型,.,65,加法器测试用例,.,3.某软件要求输入以年月表示的日期,日期限定在1998年1月2068年12月,并规定日期由6位数字字符组成,前4位表示年,后2位表示月。现用等价类划分法对输入日期进行黑合测试,测试用例的等价类如下表,试设计测试用例,以覆盖所有的等价类。,.,覆盖所有的等价类的测试用例如下表。,.,1、边界值分析法的思想 边界值分析法(Boundary Value Analysis,BVA)是对等价类测

29、试用例设计法的补充,不是选择等价类中的元素,而是选择等价类边界的数据。在测试过程中,往往忽略边界的条件,而软件中的大量错误是发生在输入或输出范围的边界上。因此针对各种边界设计测试用例,以查出更多的错误。,3.2.2 边界值分析测试用例设计法,.,1、边界值分析法的思想 如创建一个含有10个元素的一维数组的VB程序:Dim data(10)as Integer Dim i as Integer For i=1 to 10 data(i)=1 Next i,3.2.2 边界值分析测试用例设计法,.,1、边界值分析法的思想 在Basic语言中,定义数组的第一个元素所对应的下标是0而不是1。因此,程序

30、运行结束后,数组中成员的赋值情况如下:data(0)=0,data(1)=1,data(2)=1,.,data(10)=1 当其他程序员使用该数组时,可能会造成软件的缺陷或错误的产生。边界值分析方法设计的测试用例,就是着重测试的边界情况。,3.2.2 边界值分析测试用例设计法,.,71,边界值测试用例的取值在输入变量的最小值、略高于最小值、正常值、略低于最大值和最大值处。,有效输入区域,函数F有两个变量X1和 X2,F实现为一个程序,完成某功能,X1和 X2的值域分别为a,b和c,d,3.2.2 边界值分析测试用例设计法,.,2、边界值分析法的原则 边界值分析法应遵循以下几条原则:如果输入条件

31、规定了值的范围,应选取刚达到及刚超过范围边界的值作为测试输入数据。如果输入条件规定了值的个数,则用最大个数、最小个数、比最小个数少1、比最大个数多1的数作为测试数据。根据规格说明的每一个输出条件,分别使用以上两个原则。,3.2.2 边界值分析测试用例设计法,.,2、边界值分析法的原则 如果规格说明给出的输入域或输出域是有序集合(如有序表、顺序文件等),应选取集合的第一个元素和最后一个元素作为测试用例。如果程序中使用了一个内部数据结构,应选择该内部数据结构的边界值作为测试用例。分析规格说明,找出其他可能的边界条件。,3.2.2 边界值分析测试用例设计法,.,74,3、基于单缺陷假设边界值 单缺陷

32、假设:失效极少是由两个(或多个)缺陷同时发生而引起的。边界值分析的测试用例:通常一个输入变量取边界值,而其它变量则正常值。每个变量重复进行,对于一个n变量函数,边界值分析产生4n+1个测试用例。,3.2.2 边界值分析测试用例设计法,.,75,3、基于单缺陷假设边界值,如何设定边界值?,根据上下文(语境)人工创建,3.2.2 边界值分析测试用例设计法,.,实现计算一个含有两个整数自变量X和Y函数的程序,X的取值域为4,24,Y的取值域为2,20,根据单缺陷假设边界值测试用例的设计原则,给出边界值分析法的测试用例。若X取正常值14,Y取2、3、19和20,则测试用例有(14,2)、(14,3)、

33、(14,19)和(14,20)。若Y取正常值11,X取4、5、23和24,则测试用例有(4,11)、(5,11)、(23,11)和(24,11)。若X和Y均取正常值,则测试用例有(14,11)。对所有的测试用例,预期结果都是一个数值。,3.2.2 边界值分析测试用例设计法,.,4、基于单缺陷假设健壮边界值测试思想:测试用例除了最小值、略高于最小值、正常值、略低于最大值和最大值处取输入变量的值,还要在略超过最大值以及略小于最小值之处值。如果被测变量个数为n,则测试用例个数为6n1。,a,b,c,d,X2,X1,观察例外情况处理关心预期的输出,3.2.2 边界值分析测试用例设计法,.,5、基于多缺

34、陷假设边界值测试多缺陷假设:失效可能是由两个(或多个)缺陷同时发生而引起的。测试思想:首先取每个变量的最小值、略高于最小值、正常值、略低于最大值和最大值的集合进行测试,然后对这些集合进行笛卡儿乘积计算,生成测试用例。即取各变量的不同边界值的组合,产生5的n次幂个用例。,78,a,b,c,d,X2,X1,最坏情况,3.2.2 边界值分析测试用例设计法,.,6、基于多缺陷假设健壮边界值测试测试思想:首先对于每个变量进行最小值、略高于最小值、正常值、略低于最大值、最大值以及略超过最大值和略小于最小值的集合的测试,然后对这些集合进行笛卡儿乘积计算,生成测试用例。即取各变量的不同边界值的组合,产生7的n

35、次幂个用例。,79,a,b,c,d,X2,X1,健壮最坏情况测试,3.2.2 边界值分析测试用例设计法,.,以三角形问题为例,要求输入三个整数a、b、c,分别作为三角形的三条边,取值范围在1100之间,判断由三条边构成的三角形类型为等边三角形、等腰三角形、一般三角形(包括直角三角形)以及非三角形。如表所示给出了边界值分析测试用例。,3.2.2 边界值分析测试用例设计法,.,基于单缺陷假设边界值的测试用例,3.2.2 边界值分析测试用例设计法,.,82,某选课系统中规定每门课程的选修人数在20,60之间,小于20人不开设该门选修课,大于60人不接受后面的选课要求。测试设计输入变量:选课人数测试输

36、入选课人数分别为19,20,21,59,60和61等几个边界点一个正常值点40,3.2.2 边界值分析测试用例设计法,.,83,边界值测试举例NextDate问题,NextDate(年,月,日)是三个变量的函数。函数返回输入日期的下一个日期。变量年份,月份,日期都是整数值,且满足下面的条件:1900年2060,1月12,1日31测试设计三个输入变量:年,月,日年的边界值:1899,1900,1901,1980,2059,2060,2061月的边界值:0,1,2,7,11,12,13日的边界值:0,1,2,15,30,31,32,3.2.2 边界值分析测试用例设计法,.,84,边界值测试小结,错

37、误隐含在角落,边界值最容易出现问题。边界值测试的局限:边界值分析假设变量是独立的,没有相互依赖关系。未考虑函数的性质及变量的语义。如果输入变量之间不是真正独立的,由边界值而得的测试用例不够充分。不仅要考虑输入空间,还要考虑输出空间。健壮性测试是测试内部变量的一种好的选择:循环控制变量、索引和指针等。注意单缺陷假设和多缺陷假设。,NextDate的月、日和年之间存在依赖关系,例如2月和闰年(1912年2月31日?),3.2.2 边界值分析测试法,.,85,采用边界值技术测试加法器功能:计算两个1100之间的整数的和。程序:,#include void main(void)int a;/加数int

38、 b;/加数int c;/和while(1)printf(“请输入两个1到100之间的整数:”);fflush(stdin);/清空输入缓冲区scanf(“%d%d”,测试用例:1 1+12 100+1003 0+04 101+101,?,A,B,+,=,.,1.决策表及其测试思想 决策表是分析和表达多个逻辑条件下执行不同操作的工具,可以把复杂的逻辑关系与多种条件组合表达得极为具体而又明确。决策表最突出的优点是,能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏,利用决策表能够设计出完整的测试用例集合。,3.2.3 基于决策表测试用例设计法,.,1.决策表及其测试思想 测试思想是根

39、据逻辑条件取值的组合所构成的多种情况,分别执行不同的操作,构造相应的测试用例。在所有的黑盒测试方法中,基于决策表(也称判定表)的测试是最为严格、最具有逻辑性的测试方法。,3.2.3 基于决策表测试用例设计法,.,2、决策表的组成及其适用性 决策表适合描述不同条件集合下采取行动的若干组合的情况,它通常由四个部分组成。条件桩:用于列出问题的所有条件,且列出条件的先后次序可任意。动作桩:用于列出问题规定的可能采取的操作,且操作的排列次序没有约束。条件项:用于针对条件桩给出的条件列出所有可能的取值。,3.2.3 基于决策表测试用例设计法,.,2、决策表的组成及其适用性 动作项:用于列出在条件项的各组取

40、值情况下应该采取的动作,与条件项紧密相关。,3.2.3 基于决策表测试用例设计法,.,2、决策表的组成及其适用性 而任何一个条件组合的特定取值及其相应要执行的操作称为一条规则,在决策表中贯穿条件项和动作项的一列就是一条规则。显然,决策表中列出多少组条件取值,也就有多少条规则,即条件项和动作项有多少列。,3.2.3 基于决策表测试用例设计法,.,2、决策表的组成及其适用性 决策表法一般适用于下列情况:(1)规格说明以决策表形式给出或很容易转换成决策表。(2)条件的排列顺序不会也不应影响执行的操作。(3)规则的排列顺序不会也不应影响执行的操作。,3.2.3 基于决策表测试用例设计法,.,2、决策表

41、的组成及其适用性(4)每当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则。(5)如果某一规则得到满足要执行多个操作,操作的执行与顺序无关。,3.2.3 基于决策表测试用例设计法,.,3、决策表的建立与分类 根据规格说明,建立决策表的步骤为:(1)分析需求,确定条件桩和动作桩(2)填入所有的条件桩和动作桩(3)根据逻辑关系,填入条件项的值(4)根据需求,填入相应动作项的值(5)重复3、4直到所有逻辑关系被遍历完毕(根据条件数和条件取值,确定规则数)(6)化简即合并相似规则(相同动作)。,3.2.3 基于决策表测试用例设计法,.,3、决策表的建立与分类 根据条件可取值数,决策表可分

42、为有限项决策表和扩展项决策表。有限项决策表中的每个条件只有两个值,如Y/N、T/F、1/0 等;扩展项决策表中的每个条件的取值有多个(大于2个)。,3.2.3 基于决策表测试用例设计法,.,建立决策表示例:如果某产品销售好并且库存低,则增加该产品的生产;如果该产品销售好,但库存量不低,则继续生产;若该产品销售不好,但库存量低,则继续生产;若该产品销售不好,且库存量不低,则停止生产。该问题中有2个条件(销售、库存)、3个动作(增加生产、继续生产和停止生产),而每个条件可以有两个取值(销售好与不好、库存低与不低),所以有有22=4种规则。,3.2.3 基于决策表测试用例设计法,.,产品销售问题的决

43、策表,3.2.3 基于决策表测试用例设计法,.,4、不相关项的合并 通过合并具有相同动作结果的相似规则,减少规则数量,进而减少测试用例的个数。所谓相似规则是指在其它条件不变时,某一条件无论取何值,都产生相同动作的规则集。而所有相似规则可以合并为一个规则。,3.2.3 基于决策表测试用例设计法,.,4、不相关项的合并,3.2.3 基于决策表测试用例设计法,.,4、不相关项的合并 当第二、三个条件为“Y”时,第一个条件无论取何值都会产生相同的动作,所以可以将第一条规则和第五条规则利用不相关项进行合并,3.2.3 基于决策表测试用例设计法,.,4、不相关项的合并 规则数降低到4,相应的测试用例数也降

44、低到4。不相关项用“-”表示。,3.2.3 基于决策表测试用例设计法,.,三角形问题示例:有一判断由三条边构成的三角形类型(类型有等边三角形、等腰三角形、一般三角形(包括直角三角形)以及非三角形)的程序,要求输入三个整数a、b、c,分别作为三角形的三条边,取值范围在1100之间的整数。运用有限项决策表方法设计测试用例。,3.2.3 基于决策表测试用例设计法,.,由题意可知:运用决策表方法设计测试用例时,有六个条件桩:ab+c、ba+c、cb+a、a=b、a=c和b=c,有五个动作桩:非三角形、不等边三角形、等腰三角形、等边三角形和不可能出现的三个数。且由于每个条件只有两个值(F和T),因此由决

45、策表方法建立的决策表是有限项决策表,即有26=64条规则。特别地,当ab+c为F时,另外的条件无论是F还是T,产生的动作项是相同的,所以构成的条件项是不相关项,即可把25=32规则合并为一个。当ab+c为T、ba+c为F时,另外的条件无论是F还是T,产生的动作项是相同的,所以构成的条件项是不相关项,即可把24=16规则合并为一个。当ab+c为T、ba+c为T、cb+a为F时,另外的条件无论是F还是T,产生的动作项是相同的,所以构成的条件项是不相关项,即可把23=8规则合并为一个。因此共有11条规则需要设计测试用例,如下图所示。,3.2.3 基于决策表测试用例设计法,.,测试用例:规则1:测试输

46、入=(60,16,26),预期结果:非三角形规则2:测试输入=(50,50,0),预期结果:非三角形规则3:测试输入=(0,0,0),预期结果:非三角形规则4:测试输入=(60,60,60),预期结果:等边三角形规则5:这种组合在现实中不可能存在规则6:这种组合在现实中不可能存在,3.2.3 基于决策表测试用例设计法,.,104,规则7:测试输入=(60,60,26),预期结果:等腰三角形规则8:这种组合在现实中不可能存在规则9:测试输入=(60,26,60),预期结果:等腰三角形.规则10:测试输入=(26,60,60),预期结果:等腰三角形规则11:测试输入=(30,40,50),预期结果

47、:不等边三角形,3.2.3 基于决策表测试用例设计法,.,105,扩展项决策表NextDate问题示例,条件桩:M1=月份:每月有30天 M2=月份:每月有31天 M3=月份:2月 D1=日期:1日期28 D2=日期:日期=29 D3=日期:日期=30 D4=日期:日期=31 Y1=年:1900年2060动作桩:A1=输出下一个日期 A2=不可能 如果选择有限项决策表,那么表中会存在256条规则,.,106,扩展项决策表NextDate问题,.,107,扩展项决策表NextDate问题,NextDate问题的扩展项决策表:,日期:D1=从1到27D2=28D3=29D4=30D5=31,年:Y

48、1=闰年Y2=平年,月份:M1=31天的月,除去12月M2=30天的月M3=2月M4=12月,.,108,扩展项决策表NextDate测试用例,测试用例规则1:测试输入=(2007,7,19),预期结果=“2007-7-20”规则2:测试输入=(2007,7,31),预期结果=“2007-8-1”规则3:测试输入=(2007,9,25),预期结果=“2007-9-26”规则4:测试输入=(2007,9,30),预期结果=“2007-10-1”规则5:测试输入=(2007,11,31),预期结果=“日期输入错误”规则6:测试输入=(2000,2,15),预期结果=“2000-2-16”,.,10

49、9,扩展项决策表NextDate测试用例,测试用例规则7:测试输入=(2000,2,29),预期结果=“2000-3-1”规则8:测试输入=(2000,2,30),预期结果=“日期输入错误”规则9:测试输入=(2007,2,15),预期结果=“2007-2-16”规则10:测试输入=(2007,2,28),预期结果=“2007-3-1”规则11:测试输入=(2007,2,29),预期结果=“日期输入错误”规则12:测试输入=(2006,12,16),预期结果=“2006-12-17”规则13:测试输入=(2006,12,31),预期结果=“2007-1-1”,.,决策表小结适用于以下类型的应用

50、程序:if-then-else逻辑突出的程序输入变量之间存在逻辑关系输入与输出之间存在因果关系具有较高的环复杂度基于决策表的测试是严格的测试。在各输入变量之间真正独立的条件下,无法体现其逻辑严谨的优势 可使用多种方式,如扩展项决策表、代数简化表增加决策表的伸缩性。,3.2.3 基于决策表测试用例设计法,.,1、因果图法及其基本符号 等价类划分法和边界值分析法着重考虑输入条件,而没有考虑到输入条件的各种组合;基于决策表法考虑输入条件的各种组合,但没有考虑到各个输入条件之间的相互制约关系。因此,必须考虑采用一种适合于多种输入条件的组合,又考虑到各个输入条件之间的相互制约关系,相应产生多个动作的形式

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号