接Visual Unit 2 是什么样的工具?(上)
四、黑盒、白盒、自动相结合,实现彻底测试
白盒覆盖基于现有代码,不能发现代码缺失形成的错误。另外,用例必须反映程序的功能,纯粹从白盒角度来设计用例,会犯“跟着代码走”的错误,使测试失去意义。VU2在实践中总结出实现彻底测试的“三步法”:
1、根据功能设计用例,自动将数据集中便于检查
VU2主张首先根据功能设计测试用例,这是黑盒方法。VU2还会将数据集中到如下图所示的界面,便于检查各种输入的值及值的组合是否得于覆盖。这将保证用例不会脱离程序功能,并有效发现代码缺失错误。
2、根据未覆盖逻辑单位,使用用例设计器找出遗漏用例
在1的基础上,查看未覆盖的语句、条件、MC/DC、分支、路径等,使用用例设计器找出遗漏用例,实现高覆盖,这是白盒方法。
3、执行自动生成的边界测试用例
程序员和测试员都容易遗漏边界和非法输入,这类输入常会引起崩溃、异常、超时之类的极端错误,容易被自动用例发现,这是自动方法。由于工具不可能自动了解代码功能,自动用例易于发现极端错误,却难于发现普通功能错误,因此,VU2虽然具有强大的生成全自动用例的功能,但并不以此误导用户,并将自动用例测试称为边界测试,实际上,边界测试的数据是可以自定义的。下图为定义边界值的界面:
“三步法”黑盒、白盒、自动相结合,互相补充又避免了重复工作,高度保证测试质量,同时具有极高的效率。
五、方便的回归测试
回归测试快速检查代码修改是否破坏原有功能,是否导致关联代码产生错误。下图中,选中一个函数,即可重新执行该函数的测试;选中一个类或文件,即可执行该类或文件的全部测试;选中“All”,即可执行整个工程的全部测试。
六、快速排查错误,支持可视编程
测试输出不仅报告测试是否通过,而且列出用例的输入输出和所执行的代码,程序行为一目了然(程序行为就是什么输入执行了哪些代码产生了什么输出)。下图中,黑色代码是当前用例所执行过的,红色为未执行过的,逻辑结构图中也可以快捷地查看当前用例所执行的代码。
对比输入输出和所执行的代码,易于找出错误原因,必要时可以直接启动调试。VU支持使用用户自己的调试器进行调试,并自动增强了调试器功能,包括:点击失败的测试自动选择对应输入、在数据表格中选择调试输入、支持无限后退和重复、支持调试过程中切换输入。
如果程序员边开发边测试,测试输出使程序行为完全可视,便于程序员整理和调整编程思路,提高开发效率,降低劳动强度,实现可视编程(在程序行为可视环境下的编程)。
七、完整的统计、易于浏览的报告
可以按“未测”、“已测”、“错误”、“欠缺”等类别便利地查看各个类/文件,或全部测试的统计结果,未测统计还提供函数的复杂度和测试价值。“欠缺”是指白盒覆盖率没有达到所设定的标准,该标准可修改。下图是已测统计:
提供HTML格式的测试报告,如果需要其他格式可按要求定制。测试报告可导出,用普通浏览器查看,便于存档和管理层审核。下面三幅图分别为:测试报告首页、一个类或文件、一个函数的测试报告: