论文部分内容阅读
软件工程是现代软件设计的重要方法,是高质量、高可靠性软件设计的基础。软件测试是软件工程的重要内容,软件测试是发现软件错误、提高软件可靠性的重要手段。回归测试是软件修改后以确认修改的正确性而进行的测试工作,因而其执行测试用例的过程与前面的开发过程中的软件测试过程相同,只是所执行的测试用例的集合可能不同。 在回归测试中“重测所有”不管在成本还是在时间上都是不可行,尤其是在修改很小部分时“重测所有”就造成成本浪费,但修改可能会影响到其他的部分,因此,软件开发人员需要一种机制来理解一个修改是怎样来影响系统的其它部分,我们把这种机制称为修改影响分析。它使得软件开发人员知道一个特定的修改会多大范围影响系统,从而让他们知道只需要测试那些修改的和修改所影响的部件,以到达减少测试成本。 本文针对面向对象方法的特性,我们采用类成员分析方法找出类成员之间关系。首先定义了类的数据依赖和控制依赖,并对类的成员进行粒度分析,构造比较精准的成员依赖图,然后提出各种修改类型算法来找出程序修改所影响的类和类成员。这样在程序回归测试中,就只要重新测试受影响的成员,以达到减少测试成本。通过与White和Rothermel等算法比较,它比在类之间作修改影响分析要精确,比语句级分析中构造依赖模型要简单。 本文主要成果包括提出基于类成员依赖图的面向对象软件的修改影响分析算法,设计了一个Java源程序分析框架和实现了修改影响分析原形系统工具(ChAT)。本文的研究能帮助程序开发人员在回归测试中确定需要重测的类和方法和成本估算及制定进度计划。