我不能对代码的某些部分使用单元测试,所以我回到了回归测试.
我想检查一下修改后我的程序是否以相同的方式运行.
行为我的意思主要是数据结构的状态.
到目前为止,我将它们序列化为人类可读的文本格式,并在第一次运行时转储到某些文件中.然后在下一个转储中,我可以比较状态是否改变.
如果更改来自新功能而不是来自错误,请更新它.
我想检查一下修改后我的程序是否以相同的方式运行.
行为我的意思主要是数据结构的状态.
到目前为止,我将它们序列化为人类可读的文本格式,并在第一次运行时转储到某些文件中.然后在下一个转储中,我可以比较状态是否改变.
如果更改来自新功能而不是来自错误,请更新它.
我可以使用库(C)来组织所有这些.你知道任何?
与转储文件一起,它将提供廉价,大规模的单元测试.
最麻烦的是序列化程序.有时我只是转储内存状态,但是当它不同时,很难进行逆向工程.所以我转向另一种方法.现在,在比较阶段,我将内存转储读入“幻像”对象,并运行专门的diff方法(operator ==,带有丰富的错误报告),有时比序列化为人类可读的文本格式更容易编写.
基本上我觉得要重新发明轮子,所以我的问题很普遍:
你如何进行回归测试(如果你这样做)?
你使用任何库/工具包吗?
你有没有为自己的需求实现一个?
只是出于好奇:你有没有想过进行回归测试,但有些东西阻止了你?
解决方法
你可以看看
the Boost Test Library
.我从未使用它,但它可能满足你的欲望.
.我从未使用它,但它可能满足你的欲望.
当我工作时,我通常在我们的测试跟踪器中编写简单的测试用例,以使回归测试尽可能简单(特别是对于不是我的人:).