好文档 - 专业文书写作范文服务资料分享网站

单元测试用例设计

天下 分享 时间: 加入收藏 我要投稿 点赞

.

功能点:

1. 左边有空格:删除;(正常输入) 2. 左边无空格:不作处理;(正常输入) 3. 全部是空格:全部删除;(正常输入) 4. 空串:不作处理;(边界输入) 5. 空指针:直接返回。(非法输入)

不一定需要针对每个功能点分别写代码,因为程序中的if、for、while等语句本身具有“如果不符合条件就跳过”的含义,所以很多功能点是可以共用代码的,例如,前4个功能点只需要相同的代码,不过,编程时对功能点的考虑还是要全面。

既然函数没有错误的关键是等价类划分正确完整且处理正确,那么测试时,只要把输入的等价类都列出来,并设定正确的预期输出,进行测试就行了。

这就是通常说的“等价类”法,从测试角度来说的“等价”,是指测试效果上的等价,即同类中一个数据测试通过,可以肯定其他数据也会测试通过。

..

.

用例设计的首要工作是设定输入。输入有哪些呢?要从正常输入、边界输入、非法输入三方面考虑,每方面进一步划分形成等价类,即要考虑:有哪些正常输入?有哪些边界输入?有哪些非法输入? 多个输入时,例如有多个参数,首先把各个参数的等价类列出来,然后要考虑参数之间是否存在特殊的组合关系。例如下面的函数: //计算某年某月某日是星期几,参数分别表示年月日 int Date(int year, int month, int day); 用例如下表(假设year的有效范围是1-9999): 输入 正常值 边界值 非法值 0 10000 0 13 0 32 组合 闰年和非闰年要保证都和2月组合; 2月要和28、29、30日组合; 12 1 31 小月要和30、31日组合; Day 10(普通) 28(非闰年二月) 29(闰年二月) 大月要和31、32日组合 Year 2000(闰年) 1 2009(非闰年) 9999 month 2(短月) 3(大月) 4(小月) 1 ..

.

30(小月)

用例的输出是比较容易被轻视的工作,但是,没有充分且正确的预期输出,用例基本上没有意义,就像医生要求病人做一大堆检查,却不看检查结果一样。预期输出要根据程序的设计功能确定正确的值。一个用例的预期输出可能有多个。

等价类法是与程序的基本特性“对数据分类处理”相匹配的方法。对于一个函数来说,如果对数据的分类正确且完整,每一个分类处理正确,那么,程序就没有问题。同样,测试时,只要依据设计功能,找出所有等价类,那么,用例就是完整的。所以,用例的完整性,本质上是指等价类是否划分正确且完整,每一类的正确输出是否均依据设计功能正确设定。

使用了等价类法后,是否需要使用其他方法呢?

等价类法从“有哪些正常输入?有哪些边界输入?有哪些非法输入?”三个方面来考虑等价类,因此,边界值法是等价类法的一部分。 常见的用例设计方法中还有正交法和错误推测法。正交法考虑数据的组合,实际上,如果程序对输入数据的组合需要判断处理,也是一种等价类划分,但正交法会产生大量的多余组合,且可能缺少必要的组合,因此不推荐采用正交法,应该根据数据的实际意义自行组合。

..

.

单独从错误推测角度去设计用例未免太不可靠,但错误推测法可以作为检查等价类是否完整的一种思路,即用等价类法设计用例后,可以考虑哪些输入比较容易产生错误,以检查是否遗漏,这只是一种检查思路,也包含在等价类法之中。总之,用例设计只需使用等价类法,但可以从多种角度检查等价类的完整性。

4.5循环测试法

在程序中多循环判断是,我们一样需要重点关注,根据循环的重量级进行。

例如一个简单循环判断:

如下图4-5,有如下几个分支需要覆盖: 1、跳过整个循环:不进入循环流程

2、仅有一次进入循环:需要进行数据构造,能够让循环运行一次

3、n次进入循环(n为循环的最大次数)

不难看出,通过上述分支的覆盖,就可以验证循环的功能以及循环设置的边界是否生效,不会出现循环没有控制好,导致实际使用的时候会多进行一次或者少进行一次循环的情况。

图4-5

..

.

4.6错误推测法

错误猜测大多源于经验,需要从边界值分析等其他技术获得帮助。这种技术猜测特定软件类型可能发生的错误类型,并且设计测试用例查出这些错误。对有经验的工程师来讲,错误猜测有时是唯一最有效发现bug的测试设计方法。

为了最好的利用现成的经验,可以列出一个错误类型的检查列表,帮助猜测错误可能发生在单元中的位置,提高错误猜测的有效性。

五、相关注意事项

5.1独立性

单元测试用例在设计和数据准备的过程中,需要保持良好的独立性,确保本测试的数据是不需要依赖其他输出的,这样减少相互影响。

5.2尽量脱离被测代码的束缚

在测试用例设计的过程中,尤其是测试用例编写在代码编写完成后进行的,一定小心被代码实现功能所影响,多考虑异常分支和异常数据。

5.3面向对象的语言单元测试特点

..

单元测试用例设计

.功能点:1.左边有空格:删除;(正常输入)2.左边无空格:不作处理;(正常输入)3.全部是空格:全部删除;(正常输入)4.空串:不作处理;(边界输入)5.空指针:直接返回。(非法输入)不一定需要针对每个功能点分别写代码,因为程序中的if、for、while等语句本身具有“如果不符合条件就跳过”的含义,所以很多功
推荐度:
点击下载文档文档为doc格式
2mqzs7j08p6trx01723y3gzju6vsnw00di0
领取福利

微信扫码领取福利

微信扫码分享