我维护一个Python程序,提供有关某些主题的建议。它通过对输入数据应用复杂的算法来实现这一点。
定期更改程序代码,以解决新发现的错误,并修改基础算法。
我想使用回归测试。麻烦的是,没有办法告诉"纠正"输出是用于某个输入 - 除了通过运行程序(即使这样,只有它没有错误)。
我在下面描述了我当前的测试过程。我的问题是是否有工具可以帮助自动完成此过程(当然,如果对我正在做的事情有任何其他反馈)。
第一次程序似乎对我的所有输入案例都正确运行时,我将其输出保存在我指定用于"已验证"的文件夹中。输出。 "验证"意味着,就我所知,输出对于我的程序的给定版本是正确的。
如果我发现了一个错误,我会做出任何我认为会修复的修改。然后我在所有输入集上重新运行程序,并手动比较输出。每当输出发生变化时,我都会尽力非正式地审查这些变化,并确定是否:
在案例1中,我增加了内部版本计数器。我使用等于版本计数器的后缀标记输出文件,并将其移动到"已验证的"夹。然后我将更改提交到Mercurial存储库。
如果将来,当这个版本不再是最新版本时,我决定将其分支,我将需要这些经过验证的输出作为"正确的"这个特定版本的那些。
在案例2中,我当然试图找到新引入的bug,并修复它。这个过程一直持续到我相信与之前验证的版本相比的唯一变化是由于预期的错误修复。
当我修改代码以更改算法时,我遵循类似的过程。
答案 0 :(得分:0)
这是我可能会使用的方法。