节点文献
基于依赖性分析的UML状态图切片在回归测试中的应用
UML Statechart Slicing Based on Dependency Analysis in the Regression Testing
【作者】 王曦;
【导师】 卢炎生;
【作者基本信息】 华中科技大学 , 计算机软件与理论, 2006, 硕士
【摘要】 随着计算机技术的飞速发展,软件系统的数量越来越多,规模越来越大,复杂程度越来越高。在一些大型、长生命周期的软件测试和维护过程中,手工分析已经变得越来越不可行,越来越多的工作需要理论、技术和工具的支持。软件测试技术和程序分析技术已成为软件领域的一个十分重要而又及其迫切的研究领域。对一个软件进行大规模测试后,对软件进行了某种小小的修改,是否要对程序进行重新测试,是一个值得重视的问题。从程序切片的角度去考虑这个问题,首先应该找到程序新旧版本之间的不同之处。比较两者的切片和依赖图,对那些具有相同切片的特点不用考虑。将那些在新版本依赖图中出现,而在旧版本依赖图中不出现的结点,标记出来,称为“影响点”,计算它的静态切片和前向切片,取二者的交集。这样,如果要对程序进行重测试,仅仅需要对此交集进行测试,因而减少了工作量的消耗。近几年来,出现了一些新的技术,这些技术对软件测试产生了十分重要的影响。其中一种技术就是对基于状态的系统进行建模的技术。值得注意的是,基于状态的系统能够用形式化描述语言来建模,比如UML状态图,可扩展的有限状态机(EFSM),规格描述语言(SDL),虚拟有限自动机(VFSM)和ESTELLE。系统建模减少了二义性,误解和对系统规格说明的不确切的理解。然而现代的系统趋向于大型和复杂,以至于它们非常难以理解、修改和调试。继而就产生了对分析系统特别是关于某个特殊系统功能的分析的需求,例如某个系统的特殊特征,一条需求或一个改变。在软件系统的维护阶段,软件开发人员必须识别关注的某个功能的部分模型,使得这些模型显得十分重要。同时,能够简化和减少模型的技术也很必要,因为它们使得理解和分析更加容易些。基于依赖性分析的UML状态图切片系统主要应用于回归测试中。它的主要功能包括:对C++源程序进行静态分析和预处理;进行数据依赖和控制分析;根据切片标准和读取UML状态图,对状态图进行切片;进行回归测试,最后生成测试报告。通过依赖性分析的UML状态图切片系统,开发人员和测试人员可以了解在源代码级别上的UML状态图建模,在回归测试时利用UML状态图的切片结果得到修改后影响的范围,使之能够更有效的进行选择性回归测试,从而提高软件测试效率,降低回归测试成本。
【Abstract】 As the fast development of computer technology, the number of the software system is increasing, as well as the size and complexity.In the process of large, long-term software testing and maintenance, handwork analysis is bebcoming useless.More and more work depend on the theory, techonology and tools.Software testing and code analysis come to an important and urgent research fields.After a large-scale test of a software, which was slightly revised, it is worthy attaching importance to the question wheather it is necessary to re-test the whole program.Considering the question from the view of program slicing, the first thing we should do is to find the differences between the new and old version.Compare the slice and dependence diagram of the old and new, that of the same features can be neglected. Those nodes that appear in the dependence diagram of the new version while didn’t appear in the old are called"affect point". Compute the union set of the static slice and forwardwalk slice.Thus what we need to do is to test the union set when retesting the whole program so that we can reduce the cost of testing.In recent years, several new technologies have emerged, which have made a significant impact on new way of software development. One of these technologies is a development of modeling techiniques to model state-based software systems. Typically, state-based systems can be modeled using formal decription languages like State Chart, Extended Finite State Machine(EFSM), Specification Description Languange(SDL), Virtual Finite State Machine(VFSM), and ESTELLE.System modeling reduces ambiguity, misunderstanding, and misinterpretation of system specifications. However, modern systems tend to be very large and complex and, as a result, they are hard to understand, difficult to modify and debug. Frequently, there is a need to analyze a model with respect to particular system functionality only, e.g. a particular system feature, a requirement of interest or a transition. This becomes important especially during maintenance of software systems where developers have to identify parts of the model that relates to a functionality of interest. Thus, there is a need for techniques that can simplify and reduce models so that they are easier to comprehend and analyze.The UML Statechart Diagram Slicing that based on the dependency analysis is mainly applied to the field of regression tesing.The main function that the system performs are static analysis of the C++ codes, dependency analysis, UML statechart slicing, regression testing and testing result report.Through the UML Statechart Diagram Slicing System, it helps the developers and testers understand the modeling of the source code.The slicing result gives a range of the modified part of the system when doing regression testing.It increases the efficiency of the approach of regression testing that we choose and decreases the cost of regression testing.
【Key words】 UML; UML Statechart Diagram; Slice; Dependency Analysis; Regression Testing;
- 【网络出版投稿人】 华中科技大学 【网络出版年期】2008年 03期
- 【分类号】TP311.52
- 【被引频次】3
- 【下载频次】193