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. |