作为我在C++的课程的一部分,学生们必须解决作业。每个解决方案应使用相同的功能和相同的参数(函数名称、返回值、传递参数)实现相同的函数。只有里面的代码是不同的。
因此,我正在考虑一种有效的方法来测试所有的解决方案(大约30个)。也许最好的方法是编写一个单元测试以及一个shell脚本(或类似的脚本),它使用单元测试一次编译每个解决方案并运行它。
但也许有一个不同的更好的解决方案来解决这个问题。
发布于 2011-04-26 13:56:38
单元测试是最有效的自动化测试类型之一的原因是因为投资回报相对较小(与其他类型的测试相比),所以对我来说,编写一套验证测试是非常有意义的。
您甚至可以给学生提供测试套件,而不是用散文编写的规范。这可以向他们介绍测试驱动开发的概念(尽管我们通常倾向于迭代地编写测试,而不是批量编写)。
发布于 2011-04-26 14:12:46
是的,单元测试是大多数情况下显而易见的解决方案。
编译器警告和静态分析也很有用。
在给定一组参数的情况下,为程序的执行计时是另一个相当自动化的选项--取决于您对评估感兴趣的内容。
创建具有良好诊断功能的基类(如果您愿意,可以将实现替换为您的评估)是另一种选择。您还可以提供它们必须使用的接口,并保留两个实现。然后像往常一样使用诊断实现来执行这些程序。这取决于你要找的是什么。
发布于 2011-04-26 13:43:56
也许我遗漏了一些显而易见的东西,但仅仅使用边界测试参数值多次运行代码还不够吗?
https://stackoverflow.com/questions/5786400
复制相似问题