论文部分内容阅读
重构是一种不改变软件可观察行为的修改,它已经成为软件开发维护中一项重要且频繁的活动。从微型的开发到大型的开发,重构的使用非常广泛。目前,代码重构已经有了许多自动化工具的支持。然而,由于重构的复杂性,许多重构工具都存在缺陷。使用自动重构工具可能会改变软件行为,软件重构前后行为可能会不一致。保证软件在重构前后的行为一致已经成为了人们关注的热点。测试是一种有效的保证重构行为的方法。对重构前后的程序分别进行测试,通过对比重构前后测试运行的结果,可以有效地检测软件重构的行为是否发生了变化。但是在实际的软件开发中,人们常常会面临测试用例缺失,测试用例不充分或者测试用例运行时间过长的问题。影响分析是一种评估修改对软件潜在影响的技术。通过输入修改集,影响分析技术可以评估修改对软件潜在影响,告知使用者修改到底影响了哪些软件实体,哪些实体需要一起修改才能使软件一致。修改影响分析的目的就是找出软件修改直接影响或间接影响的软件实体。本文提出了一种对重构进行修改影响分析的计算方法。该方法将重构行为分解为一组原子变化,并使用影响分析技术分别对这些原子变化进行分析,然后将这些分析结果进行组合,从而得到重构对软件的潜在影响,进而获得重构过程影响的软件实体。该方法充分考虑了重构前后软件的程序依赖图的结构可能会发生改变的问题,对重构后的程序进行影响分析,能够有效检测一些改变软件行为的不当重构。论文还探讨了重构影响分析技术在推荐测试点方面的应用,实例研究显示推荐测试点可以增强测试的充分性。针对回归测试费时的问题,论文还实例分析了重构影响分析技术在测试用例排序方面的应用。