当我进行测试驱动的开发时,我在思考是否可以通过基于测试的生成代码来完全开发一个假设的程序。即是否可以让生成器创建专门用于通过测试的代码。编程语言的 future 会只是编写测试吗?
最佳答案
我认为这将是一个艰难的过程,因为至少对于此类技术的最初几代,开发人员会对生成的代码的正确性非常怀疑。因此,还必须包括人工审查。
作为我的意思的简单说明,假设您为一个函数编写了10个测试,样本输入和预期输出涵盖了您可以想到的每种情况。一个程序可以琐碎地生成通过所有这些测试的代码,而这些代码仅是基本的switch语句(您的十个输入与它们的预期输出匹配)。这段代码显然是不正确的,但是要花很多时间才能看到。
那只是一个简单的例子。不难想象,更复杂的程序可能不会生成switch语句,但仍会产生实际上并不正确的解决方案,并且以更微妙的方式可能会出错。因此,我的建议是,至少在起初,所有这些方面的技术都将受到深层次的怀疑。
关于unit-testing - 使用基于单元测试的生成代码编写的程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15178060/