`
liyiye
  • 浏览: 416431 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

(六)白盒测试实例--单元测试的步骤

阅读更多

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

单元测试的步骤:

1、  理解需求和设计

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

举例:

  1. /*
  2.  * 判断三条边是否能够组成三角形
  3.  * 返回值:true-是; false-否
  4. */
  5. bool isTriangle(int a, int b, int c);

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

  1. /*
  2.  * 判断三条边是否合法(即:判断三条边都在合法的范围内)
  3.  * 返回值:true-是; false-否
  4. */
  5. bool isLegal(int a, int b, int c);

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

 

2、  概览源代码

浏览一下源代码,主要任务:

(1)初步检查源代码的编码风格与规范

(2)大致估算测试工作量,比如:需要多少的测试用例、需要写多少的驱动模块和装模块等。

(3)确定模块的复杂程度,初步制定测试的优先级等。

3、  精读源代码

认真阅读和分析代码,主要任务:

(1)理解代码的业务逻辑。

(2)检查代码与设计是否相符,如果详细设计没有该模块的流程图的话,先去画出流程图。

(3)仔细研究逻辑复杂的模块

(4)可以采用一些检查列表来检查程序可能会出现的问题。如果没有检查列表,那么,可以根据程序的特点,有针对性地检查容易出问题的地方(记得把经验总结下来供下次使用)。

4、  设计测试用例

综合运用白盒测试方法(和结合黑盒测试方法)来设计测试用例,包括功能测试、性能测试等,要达到一定的测试覆盖率。在设计测试用例的过程中,流程图或控制流图是分析的好帮手。

5、  搭建单元测试环境

使用XUnit或自己写的框架将有助于单元测试的实施。在这个阶段主要就是写桩模块和驱动模块,第4步所设计的测试用例是通过驱动模块传递给被测试模块的,然后驱动模块想办法获取被测试模块对数据的处理结果,并判定返回的实际结果与测试用例的预期结果是否一致,通过测试框架来记录执行的结果,对于出现的错误,还需要统计错误的信息,供执行完之后分析。

 搭建单元测试环境要避免在main函数中使用printf和scanf函数来跟测试人员交互来达到获取测试用例数据的信息。这样的测试还是没有摆脱手工测试方式,效率是低下的。同时,对于测试结果是否通过测试也不要使用printf方式打印被测试函数的返回结果值,避免要人工去检查结果。

6、  执行测试

 运行写好的驱动模块完成对被测试模块的测试。

7、  补充和完善测试用例

单元测试也是个循序渐进的过程,可能一开始考虑的不够全面,或预期的覆盖标准太低,需要在测试过程中不断补充测试用例,直到满足要求为止。

8、  分析结果,给出评价

根据测试的结果分析、查找错误的原因,并找到解决的办法。测试结束之后,根据测试过程的数据统计,给出被测试对象评价

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics