论文部分内容阅读
随着计算机技术的飞速发展,软件系统的数量越来越多,规模越来越大,复杂程度越来越高。在一些大型、长生命周期的软件测试和维护过程中,手工分析已经变得越来越不可行,越来越多的工作需要理论、技术和工具的支持。软件测试技术和程序分析技术已成为软件领域的一个十分重要而又及其迫切的研究领域。对一个软件进行大规模测试后,对软件进行了某种小小的修改,是否要对程序进行重新测试,是一个值得重视的问题。从程序切片的角度去考虑这个问题,首先应该找到程序新旧版本之间的不同之处。比较两者的切片和依赖图,对那些具有相同切片的特点不用考虑。将那些在新版本依赖图中出现,而在旧版本依赖图中不出现的结点,标记出来,称为“影响点”,计算它的静态切片和前向切片,取二者的交集。这样,如果要对程序进行重测试,仅仅需要对此交集进行测试,因而减少了工作量的消耗。近几年来,出现了一些新的技术,这些技术对软件测试产生了十分重要的影响。其中一种技术就是对基于状态的系统进行建模的技术。值得注意的是,基于状态的系统能够用形式化描述语言来建模,比如UML状态图,可扩展的有限状态机(EFSM),规格描述语言(SDL),虚拟有限自动机(VFSM)和ESTELLE。系统建模减少了二义性,误解和对系统规格说明的不确切的理解。然而现代的系统趋向于大型和复杂,以至于它们非常难以理解、修改和调试。继而就产生了对分析系统特别是关于某个特殊系统功能的分析的需求,例如某个系统的特殊特征,一条需求或一个改变。在软件系统的维护阶段,软件开发人员必须识别关注的某个功能的部分模型,使得这些模型显得十分重要。同时,能够简化和减少模型的技术也很必要,因为它们使得理解和分析更加容易些。基于依赖性分析的UML状态图切片系统主要应用于回归测试中。它的主要功能包括:对C++源程序进行静态分析和预处理;进行数据依赖和控制分析;根据切片标准和读取UML状态图,对状态图进行切片;进行回归测试,最后生成测试报告。通过依赖性分析的UML状态图切片系统,开发人员和测试人员可以了解在源代码级别上的UML状态图建模,在回归测试时利用UML状态图的切片结果得到修改后影响的范围,使之能够更有效的进行选择性回归测试,从而提高软件测试效率,降低回归测试成本。