单元测试工具Visual Unit 简明教程(4)

上一篇 / 下一篇  2008-02-04 10:07:57

作者:未知    文章来源:网络    点击数:     更新时间:2007-2-27    
一边编写代码一边测试

  编写函数声明与定义后就可以生成测试代码:

  在头文件编写函数声明,在源文件编写空的函数实现,有返回值可以随便加一个返回语句,通过编译后就可以生成对应的测试函数。

  生成测试代码和编辑第一个测试用例:

  从函数列表选中被测试函数,生成测试函数,VU会自动弹出测试用例编辑器。

  根据函数最典型的功能,填写第一个测试用例的输入数据与预期输出,编译并运行测试工程,VU主窗口会自动弹出,显示测试结果。

  一边编码,一边测试,完成功能覆盖:

  为函数的每个功能点新建测试用例。

  编写函数代码使所有测试通过。

  也可以先编写代码,每完成一个功能点即添加测试用例来测试它。

  程序员在编码时当然需要了解程序的功能,也就是说,要了解程序在不同的输入时应该产生什么样的输出,这些就是功能测试用例。

  随时观察程序的行为:

  随时可以通过运行测试来观察程序的行为,例如,编写了计算某一个变量VAR的几行代码,可以用TEST_TRACE(VAR)宏来输出它的数值,看看结果对不对。观察程序行为对整理编程思路,提高编程效率和正确性具有重要意义,后面会进一步描述。

  快速排错:

  测试通不过时,大部分情况下都无须单步调试即可找出错误原因,后面会进一步描述。

  高效调试:

  需要单步调试时,在VU的支持下调试,可以大幅度提高调试效率,后面会进一步描述。

  代码优化:

  代码编写完成并进行功能测试后,阅读代码,修改可读性不强的代码、重复的代码、意图不清晰的代码、或其他不满意的代码。给代码添加必要的注释。

  每完成一个小的改动,就重新运行测试,以确认代码的功能未改变。

  全面测试:

  完成白盒覆盖:语句覆盖、条件覆盖应达到100%,删除不可达分支后,分支覆盖也要达到100%,删除安全的分支或分支树后,路径覆盖也要达到100%。

  打开边界测试开关,运行边界测试,可在数据窗口观察输入边界值时函数的输出。

  打开速度测试开关,运行速度测试。

  关于白盒覆盖测试用例的设计、边界测试与速度测试,后面会进一步描述。

  观察程序行为

  
程序的行为,无非就是在一定的输入时,产生了什么输出、执行了哪些代码、执行的路径是什么,这些,都可以一目了然地从主窗口的各子窗口观察到。对程序行为了然于胸,不但有助于整理编程思路,提高编程效率和正确性,也会使编程工作变得更有趣和更舒适。

  快速排错

  观察程序行为还可以实现快速排错。对比预期输出与实际输出,阅读执行代码,很容易找到错误原因。对某些关键数据,还可以使用TEST_TRACE宏输出中间结果。在很多时候,预期输出本身是错的。下例中把result = 0; 改为result = 1;后,测试仍然是失败的,因为预期输出不是625而是3125。

  快速排错可以节约很多时间,但它是事后的静态分析,如果找不到错误所在,仍然需要进行单步调试。


TAG:

 

评分:0

我来说两句

Open Toolbar