162 research outputs found
Evolutionary testing supported by slicing and transformation
Evolutionary testing is a search based approach to the automated generation of systematic test data, in which the search is guided by the test data adequacy criterion. Two problems for evolutionary testing are the large size of the search space and structural impediments in the implementation of the program which inhibit the formulation of a suitable fitness function to guide the search. In this paper we claim that slicing can be used to narrow the search space and transformation can be applied to the problem of structural impediments. The paper presents examples of how these two techniques have been successfully employed to make evolutionary testing both more efficient and more effective
A post-placement side-effect removal algorithm
Side-effects are widely believed to impede program comprehension and have a detrimental effect upon software maintenance. This paper introduces an algorithm for side-effect removal which splits the side-effects into their pure expression meaning and their state-changing meaning. Symbolic execution is used to determine the expression meaning, while transformation is used to place the state-changing part in a suitable location in a transformed version of the program. This creates a program which is semantically equivalent to the original but guaranteed to be free from side-effects. The paper also reports the results of an empirical study which demonstrates that the application of the algorithm causes a significant improvement in program comprehension
Evolutionary Unit Testing of Object-Oriented Software Using Strongly-Typed Genetic Programming ABSTRACT
Evolutionary algorithms have successfully been applied to software testing. Not only approaches that search for numeric test data for procedural test objects have been investigated, but also techniques for automatically generating test programs that represent object-oriented unit test cases. Compared to numeric test data, test programs optimized for object-oriented unit testing are more complex. Method call sequences that realize interesting test scenarios must be evolved. An arbitrary method call sequence is not necessarily feasible due to call dependences which exist among the methods that potentially appear in a method call sequence. The approach presented in this paper relies on a tree-based representation of method call sequences by which sequence feasibility is preserved throughout the entire search process. In contrast to other approaches in this area, neither repair of individuals nor penalty mechanisms are required. Stronglytyped genetic programming is employed to generate method call trees. In order to deal with runtime exceptions, we use an extended distance-based fitness function. We performed experiments with four test objects. The initial results are promising: high code coverages were achieved completely automatically for all of the test objects
An approach for the identification of nonlinear, dynamic processes with Kalman-Filter-trained recurrent neural structures
In this article we demonstrate the identification of a nonlinear, dynamic process with recurrent neural structures. The employed network-structure is a Recurrent Multilayer Perceptron (RMLP), which combines feedforward-- and recurrent architectures. We will show that RMLPs are capable of learning the temporal behavior and characteristic of an arbitrary, nonlinear, dynamic process. Apart from conventional gradient-based algorithms, a sophisticated statistical method has been considered for this challenging task --- Global Extended Kalman Filtering (GEKF). This powerful algorithm yields neural structures with a significantly better performance, compared to conventional gradient-based approaches. The new element in this work is the application of the GEKF-Algorithm for recurrent neural structures, which are employed in the identification of nonlinear, dynamic processes. In order to supervise the quality of network-training, appropriate performance-indexes for neural identification are int..
- …