我在我的教学大纲的一个部分中看到了白盒测试中的跟踪表,在另一个部分中分别在模拟测试中列出了。请任何人澄清跟踪表是否通常被认为是一种或两种类型的测试的一部分?
我对此进行了彻底的研究,但没有发现任何能解决这一模糊性的问题。例如:http://www.101computing.net/trace-table/中
和
http://theteacher.info/index.php/2-3-producing-robust-programs/notes/5287-the-purpose-of-testing
跟踪表被列为一种尝试运行的技术。
教学大纲(http://www.cambridgeinternational.org/images/202629-2017-2019-syllabus.pdf)包含一个歧义,我希望得到一些帮助,为我的学生澄清。
发布于 2018-05-26 09:12:26
跟踪表只是一个逐行日志,包括源代码的行号和变量内容。这显然是一种白盒技术,因为它强耦合到每个被测试方法的实现内部。这是一种非常古老的测试(和调试)技术,我猜>40年前,它是为过程代码设计的,您的链接仍然提到它是一种经常使用铅笔和纸张的技术。今天,人们通常使用调试器,并使用调试器的跟踪和监视功能逐行或逐语句地遍历代码。
这个术语并不是严格定义的,但是在链接的上下文中,它可能意味着从一个更大的程序中取出一些代码,并使用一些可管理的输入数据来运行它。“用一张纸执行”也被提到了,但IMHO不一定是术语“试运行”定义的一部分。这也是一个非常古老的术语和方法,与前者的年龄相似。现代的等价物是单元测试,它使干燥运行无痛、可重复和有效,不需要任何铅笔和纸张。
现在,单元测试可以与使用调试器逐步遍历代码结合使用,这是一种有效的技术来理解代码所做的事情,特别是在搜索错误时。它通常比在复杂程序的上下文中使用调试器更有效。但是,单元测试也(实际上更经常)是在没有调试器的情况下使用的,这些用法是正交的。
对于试图利用纸面上的跟踪表来说,这就更有道理了:在一个庞大而复杂的代码部分的上下文中,这很快就变得无法管理了。因此,最好在尝试运行的场景中使用它。
所以简而言之
最后要指出的一点是:如果教学大纲提到了模拟测试,而不是将单元测试作为一种基本测试技术,则可能会通过更新而得到改进。
https://softwareengineering.stackexchange.com/questions/371594
复制相似问题