我正在研究一个测试覆盖率非常低的小型C#(。NET 4.0,某些Silverlight)(约70kLOC,包括生成的)。该代码本身的工作方式是通过了用户接受性测试,但是它很脆弱,并且在某些方面没有很好的考虑。我想使用常见的疑问(NMock,NUnit,StatLight表示Silverlight位)在旧代码周围添加可靠的单元测试范围。
我通常的方法是开始进行项目,单元测试和重构,直到对代码状态感到满意为止。我过去已经做过很多次了,而且效果很好。
但是,这次我正在考虑使用测试生成器(尤其是Pex)创建测试框架,然后手动对其进行充实。
我的问题是:过去在遗留代码库上开始工作时是否使用过单元测试生成器?如果是,您会推荐它们吗?
我担心的是,生成的测试将错过代码库的语义细微差别,导致可怕的情况是出于覆盖率指标而进行测试,而不是清楚地表达代码中预期行为的测试。
我尝试了一次PeX,结果令人满意,YMMV并不令人满意。不要指望这样的工具可以“理解”您的代码及其功能要求-它不仅会错过“语义上的细微差别”,还会错过整个语义。此外,当您从旧代码库开始时,通常不会首先从单元测试开始,而要从系统或集成测试开始。绝对不是PeX创建的目的。
—
布朗