白盒测试 (4)

 白盒测试黑盒测试的过程和方法是有一些区别的。

  单元测试的步骤:

  1、 理解需求和设计

  理解设计是很重要的,特别是要搞清楚被测试模块在整个软件中所处的位置,这对测试的内容将会有很大的影响。需要记住的一个原则就是:好的设计,各模块只负责完成自己的事情,层次与分工是很明确的。在单元测试的时候,可以不用测试不属于被测试模块所负责的功能,以减少测试用例的冗余,集成测试的时候会有机会测试到的。

  举例:

  1. /*

  2.

  3. * 判断三条边是否能够组成三角形

  4.

  5. * 返回值:true-是; false-否

  6.

  7. */

  8.

  9. bool isTriangle(int a, int b, int c);

 

  测试该函数的时候,只需要测试三条边(在合法的取值范围内的整数)是否能够满足两边之和是否大于第三边的功能,而不需要测试三条边是否在合法的范围(0, 200)之间的整数,因为调用该函数之前,一定要先通过下面函数的检查,要是检查不通过,就不会执行isTriangle函数。

  1. /*

  2.

  3. * 判断三条边是否合法(即:判断三条边都在合法的范围内)

  4.

  5. * 返回值:true-是; false-否

  6.

  7. */

  8.

  9. bool isLegal(int a, int b, int c);

 

  所以,单元测试主要是关注本单元的内部逻辑,而不用关注整个业务的逻辑,因为会有别的模块去完成相关的功能。

白盒测试实例之七——单元测试的尝试

关键字:白盒测试单元测试软件测试

  以测试isOutOfRange函数为例,首先知道该函数在整个软件架构中处于最底层(叶子),所以对它进行测试并不需要写桩模块,只需要写驱动模块。要注意的问题是:对于测试结果是否通过测试不要使用printf方式打印被测试函数的返回结果值,否则就需要人工去检查结果了。

  使用边界值的方法可以得到5个测试用例,写的驱动模块代码如下:

  TestTriangle.cpp:

  1. /*

  2. * Copyright (c) 2008, 胡添发(hutianfa@163.com)

  3. *

  4. * 单元测试与集成测试

  5. *

  6. */

  7. #include "Triangle.h"

  8. /*

  9. * 测试isOutOfRange函数,使用边界值的方法(0,1,5,199,200)

  10. *

  11. */

  12. void testIsOutOfRange_try()

  13. {

  14. if(isOutOfRange(0) == true)

  15. {

  16. printf("pass!\n");

  17. }

  18. else

  19. {

  20. printf("fail!\n");

  21. }

  22.

  23. if(isOutOfRange(1) == false)

  24. {

  25. printf("pass!\n");

  26. }

  27. else

  28. {

  29. printf("fail!\n");

  30. }

  31.

  32. }

  33.

  34.

  35. void main()

  36. {

  37. testIsOutOfRange_try();

  38. }

 

  小知识:做单元测试的时候,一般不直接在main函数中写所有的测试代码,否则的话,main函数将会非常庞大。正确的做法:针对每个函数分别创建一个或若干个(函数比较复杂时)测试函数,测试函数的名称习惯以test开头。

  写到这里发现重复的代码太多了,而且如果测试用例数量很多的话,对于测试结果的检查也将是很大的工作量。在测试有错误的时候,这样的单元测试结果也很难获得更多关于错误的信息。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyxsjp.html