自动生成大量的用例,然后手工修改
听起来很不错吧?看看两个例子:
这两个函数的参数类型完全一样,都是字符串,第一个函数的功能是删除字符串左边的空格,第二个函数的功能是检查用户名的合法性并删除非法字符。工具不可能自动了解这种基本的差别,生成的用例多数是垃圾。选择、修改比直接设定更加费时。
前面介绍的是简单数据类型,对于复杂数据类型,就更糟了,例如,参数是一个结构,有100个域。工具不知道哪个域需要初始化,哪个域需要判断输出,会生成海量垃圾。
2、高效率测试:四两拔千斤
上面介绍了一些似是而非的高效率方法,那么,怎样才能真正高效率测试呢?真正的高效率,不能忽略人的智慧这一关键因素。
由于工具不可能自动了解代码的设计功能,只有人才了解,因此,只有人的智慧及时介入,工具才能做正确的事情,才能达到真正的高效率。
测试的主要工作在于用例,这方面,工具可以完成大量自动化的工作,主要包括:生成测试代码,生成测试用例,找出遗漏用例。
生成测试代码
生成过程应该支持人工及时介入,指定需要初始化和判断输出的数据,这样,就可以避免遗漏,也可以避免生成垃圾。
上图是生成测试代码的界面,人工可以指定需要初始化和判断输出的数据。