有时,我会看到if语句可以用更好的方式编写。通常这些是我们有多层嵌套if语句的情况,我已经确定了一种更简单的方法来重写if语句块。 当然,最大的担忧是在某些情况下生成的代码将具有不同的代码流。
如何比较两个代码块并确定代码流是相同还是不同? 有没有办法用静态分析工具支持这种分析?还有其他可能有帮助的技术吗?
答案 0 :(得分:2)
找到一些方法来练习您想要重构的代码的所有可能路径。你可以
无论哪种方式,使用代码覆盖率工具来验证您是否具有完整的陈述和决策覆盖范围。使用覆盖工具报告在覆盖运行期间执行每个语句的次数。您甚至可以获得实际生成代码路径图的trucov。
进行重构。
再次运行coverage工具并比较重构前后的语句执行计数。如果任何语句执行计数发生更改,则流程必须已更改。相反的情况并非如此,但对于实际应用来说,它可能已接近真实。或者,如果你有trucov工作,比较之前和之后的执行图表;这将是决定性的。