CS5040 中级数据结构与算法

Chapter 3 Programming Tutorials

| 关于   «  14. 变异覆盖率高级示例   ::   目录   ::   16. 为代码覆盖率进行测试(Testing for Code Coverage)  »

15. 测试(Testing)

15.1. 测试与调试(Testing vs. Debugging)

当我们"编写程序"时,实际上大部分时间都花在测试 和调试上。 这是两件不同的事情。 测试 指确定程序是否 按我们的意图运行。 调试 指在 确定程序没有按意图运行后对其进行修正。 因此,我们只能在测试并确定 存在需要修正的问题之后进行调试。 调试来修复已知问题有时非常困难,但 通常有一定的机械性。 测试需要很多技巧和同理心,以便想全 程序可能出错的种种方式(特别是, 所有可能影响程序行为的输入路径)。

为了让你对测试有多难有个概念,尝试做下面的 练习。 你的目标是提出一系列"测试",即程序的输入, 使程序中的各个路径 都被执行(也就是产生"代码覆盖率")。 这里的输入被当作三角形的边长,程序 应该把这些边长分类为三角形的类型。 你可能会发现,要想出各种 能使代码覆盖率甚至达到 50% 的输入集合相当有挑战性。

   «  14. 变异覆盖率高级示例   ::   目录   ::   16. 为代码覆盖率进行测试(Testing for Code Coverage)  »

关闭窗口