重构非回归测试时如何保护自己?

时间:2010-09-30 12:39:57

标签: testing refactoring

重构非回归测试时是否有特定的技巧需要考虑?代码通常很简单,但显然没有包含在测试套件的安全网中......

在构建非回归测试时,我首先要确保它确实表现出我想要纠正的问题,当然。但是如果我稍后再回到这个测试,因为我想重构它(例如我刚刚添加了另一个非常类似的测试),我通常不能将测试代码放回到展示第一个问题的状态。所以我无法确定测试一旦重构,仍然在代码中运行相同的路径。

是否有特定的技巧来处理这个问题,除非要特别小心?

2 个答案:

答案 0 :(得分:1)

这不是一个大问题。测试测试代码,代码测试测试。虽然有可能犯一个笨拙的错误导致测试在所有情况下开始通过,但这不太可能。您将一次又一次地运行测试,因此测试和他们测试的代码会得到很多练习,当事情变得更糟时,测试通常会失败。

当然,要小心;当然,在重构之前和之后立即运行测试。如果您对重构感到不舒服,请以允许您查看测试工作的方式(传递失败)来执行此操作。找到一种可靠的方法来在重构之前使每个测试失败,并将其写下来。获得绿色 - 所有测试通过 - 然后重构测试。运行测试;还是绿色的?好。 (如果不是,当然可以通过重新开始获得绿色)。执行使原始未重构测试失败的更改。红色?和以前一样的失败?然后恢复工作代码,再次检查绿色。检查一下,然后转到下一个任务。

答案 1 :(得分:0)

尝试不仅要在自动化测试中包含正面案例,还要包括负面案例(以及适当的处理程序)。

此外,您可以尝试使用断点运行重构的自动化测试,并通过调试器监督它继续运行您希望它运行的所有路径。