若再加上边界数据要测试的数据组数就更多了,一般CXXUNIT系列编写的测试代码是每组测试数据(其实一组数据就对应一个测试用例)都要编写初始化代码,然后调用相应功能函数测试。这样导致:
在自动测试的整个过程中,测试用例的可维护性会影响到将来测试用例增加的难易度,良好的自测程序应能很方便的扩充测试用例。
在采用CXXUNIT系列测试工具开发测试代码时,对于一些简单的测试可以测试用例就嵌在测试代码中。但当某一个功能或函数要进行很多组数据(如边界数据)的测试时使用这种方法就得重复编写测试代码,可能每增加一个测试用例就要编写大量的重复测试代码。
举例:要测试周期会议预约功能的代码,要测试以下几组数据:
1)每日召开的周期会议
1.1)按召开次数预约的周期会议
1.2)按开始时间、终止时间预约的周期会议
2)每周召开的周期会议
……(内容和1.1、1.2一致)
3)每月召开的周期会议
……(内容和1.1、1.2一致)
4)每年召开的周期会议
……(内容和1.1、1.2一致)
随着测试数据组数的增加,将出现大量做重复动作的测试代码,这些测试代码之间唯一的不同是由于初始化的数据不一样而已。
当一个功能只需一两个测试用例时,测试用例嵌入在测试代码中可以进行控制和管理,当一个功能测试时需要大量的测试用例时(见举例),大量的测试用例嵌在代码中将很难管理,你要知道某个用例是否已经有了还得去遍历测试代码比较麻烦。
2.1测试用例目录结构
为此很有必要设计一套能良好管理和添加测试用例的体系结构。
当一个功能有很多组测试数据时,我们可以将测试用例数据全部存放在文件中,使测试用例和测试代码分离开。由于测试用例脱离测试代码而存在,可以很方便的进行管理和维护。我们可以为每个要测试的函数(或功能)建个目录,每个测试用例放在一个单独的文本文件中,将所有对应于该函数的测试数据文件全部放入该目录下,当测试数据量很大时还可以在目录下再创建相应的子目录,分类进行管理。这样可以方便测试用例的管理,而测试程序也只用专注于测试逻辑。还以测试周期会议预约功能的例子为基础进行讨论。