这是一个困难的,开放式的问题,我知道,但我想我扔在地上,看看如果任何人有任何有趣的建议。我应该如何测试代码生成器?
我已经开发出一种码生成器,其将我们Python接口我们的C++代码(通过SWIG生成),并产生以暴露此作为Web服务所需的代码。当我开发这个代码时,我使用TDD做了它,但是我发现我的测试很脆弱。因为每个测试基本上是想验证的输入给定码位(这恰好是一个C++头)我得到的输出给定码位我写了一个小引擎,从XML输入文件读取测试定义和生成测试来自这些期望的案例。
问题是我害怕去修改代码。这一点以及单元测试自己的事实是:复杂的,而b:脆弱的。
所以我试图想其他办法解决这个问题,这让我觉得我也许解决了错误的方式。也许我需要更多地关注结果,IE:我生成的代码实际上是否运行并执行我想要的代码,而不是代码是否按照我希望的方式运行。
有没有人有过类似的东西,他们会关心分享的任何经验?
我实际上面临着同样的问题,下面的答案都不能令人满意。当然,您可以单元测试代码生成器的各个部分。问题是你怎么知道生成的代码是正确的,即没有回归或类似的东西,因此如何为生成的代码编写自动化测试(无论它们是否称为单元测试或集成测试)? – 2009-11-30 15:58:39
@詹姆斯:那里没有简单的答案......我刚刚重读了这个问题,当时我的回应和所有问题都回来了。我可能会在接下来的几周内再次发布这款游戏,因为我会时不时地遇到各种各样的回归消息,并且发现这些消息越来越关键。 – jkp 2009-11-30 21:46:58