项目:NextDate()函数-等价类、边界值法(student)

更新时间:2023-10-02 11:54:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

项目:NextDate( )函数测试

需求:NextDate 函数包含三个变量:month 、 day 和 year ,函数的输出为输入日期后一天的日期。 例如,输入为 2006年3月 7日,则函数的输出为 2006年3月8日 。要求输入变量 month 、 day 和 year 均为整数值,并且满足下列条件: ①1≤month≤12 ②1≤day≤31 ③1912≤year≤2050 要求:黑盒测试、等价类划分法、边界值分析法

分析:此函数的主要特点是输入变量之间的逻辑关系比较复杂。复杂性的来源有两个:一个是输入域的复杂性,另一个是指闰年的规则。例如变量year和变量month取不同的值,对应的变量day会有不同的取值范围,day值的范围可能是1~30或1~31,也可能是1~28或1~29。

一、 等价类划分法设计测试用例

1、简单等价类划分测试NextDate函数 分析:

(1) 有效等价类

知识点:有效等价类是指对软件规格说明而言,由有意义的、合理的输入数据所组成的集合。利用有效等价类,能够检验程序是否实现了规格说明中预先规定的功能和性能。

简单等价类划分测试NextDate函数可以划分以下三种有效等价类: M1={month:1≤month≤12} D1={day:1≤day≤31}

Y1={year:1912≤year≤2050} (2)无效等价类

知识点:无效等价类是指对软件规格说明而言,由无意义的、不合理的输入数据所构成的集合。利用无效等价类,可以鉴别程序异常处理的情况,检查被测对象的功能和性能的实现是否有不符合规格说明要求的地方。

若条件M1,D1,Y1中任何一个条件无效,那么NextDate 函数都会产生一个输出,指明相应的变量超出取值范围,例如month 的值不在 1~12 范围当中。

显然还存在着大量的 year 、 month 、 day 的无效组合, NextDate 函数将这些组合统一输出为:“无效输入日期”。 “year不在1912~2050中,请重新输入”, “month不在1~12中,请重新输入”,“day不在1~31中,请重新输入”。

其无效等价类为: M2={month:month<1} M3={month:month>12} D2={day:day<1} D3={day:day>31} Y2={year:year<1912} Y3={year:year>2050}

(3)等价类划分法的测试用例设计具体过程

知识点: (1) 首先为等价类表中的每一个等价类分别规定一个唯一的编号。 (2) 设计一个新的测试用例,使它能够尽量覆盖尚未覆盖的有效等价类。重复这个步骤,直到所有的有效等价类均被测试用例所覆盖。

(3) 设计一个新的测试用例,使它仅覆盖一个尚未覆盖的无效等价类。重复这一步骤,直到所有的无效等价类均被测试用例所覆盖。

(1)根据输入条件的要求划分等价类,列出等价类表并编号, 第一步:划分等价类

输入以及外部条件 有效等价类 编号 无效等价类 编号 (2)设计测试用例,覆盖等价类。 第二步:为有效等价类设计测试用例

编号 测试数据 预期输出 year 覆盖等价类编号 mouth T1 day 第三步:为每一个无效等价类至少设计一个测试用例

编号 测试数据 预期输出 year mouth T2 T3 T4 T5 T6 T7 day 覆盖等价类编号 (3)执行测试用例,填写测试结果 编号 测试数据 预期输出 year 实际输出 mouth T1 T2 T3 T4 day

T5 T6 T7 (4) 填写软件缺陷报告。简单软件缺陷报告格式如下: 测试模块: NextDate()函数 开 发 者: 测 试 员: 测试日期: 2013年 月 日 测试方法: 黑盒测试、功能测试、等价类划分法 软件缺陷列表 缺陷ID 缺陷详细信息 BUG1 BUG2 BUG3 BUG4

分析:结果过多的关注于对无效等价类的测试,遗漏了很多NextDate问题需测试的关键点,比如平年闰年、二月、大小月、月底等等。

此函数的主要特点是输入变量之间的逻辑关系比较复杂。复杂性的来源有两个:一个是输入域的复杂性,另一个是指闰年的规则。例如变量year和变量month取不同的值,对应的变量day会有不同的取值范围,day值的范围可能是1~30或1~31,也可能是1~28或1~29。

思考:如何改进?

2、改进等价类划分测试NextDate函数

在简单等价类划分测试NextDate函数中,没有考虑2月份的天数问题,也没有考虑闰年的问题,月份只包含了30天和31天两种情况。在改进等价类划分测试NextDate函数中,要考虑2月份天数的问题。

关于每个月份的天数问题,可以详细划分为以下等价类: M1={month=4,6,9,11:month有30天}

M2={month=1,3,5,7,8,10:month有31天, 除去12月} M3={month=2:month是2月} M4={month=12:month是12月} D1={day:1≤day≤27} D2={day:day=28} D3={day:day=29} D4={day:day=30} D5={day:day=31}

Y1={year:1912≤year≤2050} Y2={year:year是闰年} Y3={year:year不是闰年}

(1)根据输入条件的要求划分等价类,列出等价类表并编号, 第一步:划分等价类 输入以及外部条件 有效等价类 编号 无效等价类 编号 (2)设计测试用例,覆盖等价类。 第二步:设计测试用例

编号 测试数据 预期输出 year 覆盖等价类编号 mouth P1 P2 P3 day

P4 P5 P6 P7 P8 P9 P10 P11 P12 P13 P14 P15 (3)执行测试用例,填写测试结果

编号 测试数据 预期输出 year 实际输出 mouth P1 P2 P3 P4 P5 P6 P7 P8 P9 day

P10 P11 P12 P13 P14 P15

(4) 填写软件缺陷报告。简单软件缺陷报告格式如下: 测试模块: NextDate()函数 开 发 者: 测 试 员: 测试日期: 2013年 月 日 测试方法: 黑盒测试、功能测试、改进的等价类划分法 软件缺陷列表 缺陷ID 缺陷详细信息 BUG1 BUG2 BUG3 BUG4

二、用边界值测试方法设计测试用例

知识点:边界值分析法是对输入或输出的边界值进行测试的一种黑盒测试方法。通常,边界值分析法可作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。在测试用例设计中,需要对输入的条件进行分析并且找出其中的边界值条件,通过对这些边界值的测试查找出更多的错误。提出边界值条件时,一定要测试临近边界的有效数据,同时测试刚超过边界的无效数据。

用健壮性测试法设计测试用例,按照下列步骤进行: (1)分析各变量的取值,确定边界

健壮性测试时,各变量分别取:略小于最小值、最小值、略高于最小值、正常值、略低于最大值、最大值和略大于最大值。

month:___________________________________________________ day: ___________________________________________________ year: ____________________________________________________ 测试用例数

有n个变量的程序,其边界值分析会产生6n+1个测试用例。这里有3个变量,因此会产生_______个测试用例。 (2)设计测试用例。

NextDate函数的复杂性来源于两个方面:一是输入域的复杂性(即输入变量之间逻辑关系的复杂性),二是确定闰年的规则。但是在进行健壮性测试时,没有考虑输入变量之间的逻辑关系,也没有考虑和闰年相关的问题,因此在设计测试用例时存在遗漏问题,比如和判断闰年相关的日期:2008.2.29、1999.2.28等。

NextDate函数测试用例

编号 测试数据 预期输出 year mouth L1 L2 L3 L4 L5 L6 L7 L8 L9 day

L10 L11 L12 L13 L14 L15 L16 L17 L18 L19 (3)执行测试用例,填写测试结果

编号 测试数据 预期输出 year 实际输出 mouth L1 L2 L3 L4 L5 L6 L7 L8 L9 L10 L11 day

L12 L13 L14 L15 L16 L17 L18 L19

(4) 填写软件缺陷报告。简单软件缺陷报告格式如下: 测试模块: NextDate()函数 开 发 者: 测 试 员: 测试日期: 2013年 月 日 测试方法: 黑盒测试、功能测试、边界值分析法 软件缺陷列表 缺陷ID 缺陷详细信息 BUG1 BUG2 BUG3 BUG4 说明:边界值分析法强调“独立”和“物理量”即如果被测程序是多个独立变量的函数,这些变量受物理量的限制,则很适合采用边界值法,例如:采用边界值法分析NextDate问题时这些测试用例是不充分的,没强调2月闰年等问题。这里的真正问题是,月、日、年和变量之间存在依赖关系,而边界值分析假设变量是完全独立的。

思考:如何根据变量间的逻辑依赖关系设计测试输入数据,排除不可能的数据组合,解决了定义域的依赖问题。引入:因果图,决策表法。

本文来源:https://www.bwwdw.com/article/qp5d.html

Top