Results 1 - 10
of
15
Search-Based Software Engineering
"... ... The paper briefly sets out key ingredients for successful reformulation and evaluation criteria for Search-Based Software Engineering. ..."
Abstract
-
Cited by 40 (2 self)
- Add to MetaCart
... The paper briefly sets out key ingredients for successful reformulation and evaluation criteria for Search-Based Software Engineering.
Evolutionary testing in the presence of loop-assigned flags: A testability transformation approach
- In Proceedings of the International Symposium on Software Testing and Analysis (ISSTA 2004
, 2004
"... Evolutionary testing is an effective technique for automatically generating good quality test data. However, for structural testing, the technique degenerates to random testing in the presence of flag variables, which also present problems for other automated test data generation techniques. Previou ..."
Abstract
-
Cited by 39 (16 self)
- Add to MetaCart
Evolutionary testing is an effective technique for automatically generating good quality test data. However, for structural testing, the technique degenerates to random testing in the presence of flag variables, which also present problems for other automated test data generation techniques. Previous work on the flag problem does not address flags assigned in loops. This paper introduces a testability transformation that transforms programs with loop-assigned flags so that existing genetic approaches can be successfully applied. It then presents empirical data demonstrating the effectiveness of the transformation. Untransformed, the genetic algorithm flounders and is unable to find a solution. Two transformations are considered. The first allows the search to find a solution. The second reduces the time taken by an order of magnitude and, more importantly, reduces the slope of the cost increase; thus, greatly increasing the complexity of the problem to which the genetic algorithm can be applied. The paper also presents a second empirical study showing that loop-assigned flags are prevalent in real world code. They account for just under 11 % of all flags.
Reformulating Software Engineering as a Search Problem
"... Metaheuristic techniques such as genetic algorithms, simulated annealing and tabu search have found wide application in most areas of engineering. These techniques have also been applied in business, financial and economic modelling. Metaheuristics have been applied to three areas of software engine ..."
Abstract
-
Cited by 16 (1 self)
- Add to MetaCart
Metaheuristic techniques such as genetic algorithms, simulated annealing and tabu search have found wide application in most areas of engineering. These techniques have also been applied in business, financial and economic modelling. Metaheuristics have been applied to three areas of software engineering: test data generation, module clustering and cost/effort prediction, yet there remain many software engineering problems which have yet to be tackled using metaheuristics. It is surprising that metaheuristics have not been more widely applied to software engineering
How to overcome the equivalent mutant problem and achieve tailored selective mutation using co-evolution
- IN GECCO (2), VOLUME 3103 OF LECTURE NOTES IN COMPUTER SCIENCE
, 2004
"... The use of Genetic Algorithms in evolution of mutants and test cases offers new possibilities in addressing some of the main problems of mutation testing. Most specifically the problem of equivalent mutant detection, and the problem of the large number of mutants produced. In this paper we describe ..."
Abstract
-
Cited by 14 (5 self)
- Add to MetaCart
The use of Genetic Algorithms in evolution of mutants and test cases offers new possibilities in addressing some of the main problems of mutation testing. Most specifically the problem of equivalent mutant detection, and the problem of the large number of mutants produced. In this paper we describe the above problems in detail and introduce a new methodology based on co-evolutionary search techniques using Genetic Algorithms in order to address them effectively. Co-evolution allows the parallel evolution of mutants and test cases. We discuss the advantages of this approach over other existing mutation testing techniques, showing details of some initial experimental results carried out.
Testability Transformation for Efficient Automated Test Data Search in the Presence of Nesting
"... The application of metaheuristic search techniques to the automatic generation of software test data has been shown to be an effective approach for a variety of testing criteria. However, for structural testing, the dependence of a target structure on nested decision statements can cause efficiency ..."
Abstract
-
Cited by 13 (4 self)
- Add to MetaCart
The application of metaheuristic search techniques to the automatic generation of software test data has been shown to be an effective approach for a variety of testing criteria. However, for structural testing, the dependence of a target structure on nested decision statements can cause efficiency problems for the search, and failure in severe cases. This is because all information useful for guiding the search -- in the form of the values of variables at branching predicates -- is only gradually made available as each nested conditional is satisfied, one after the other. The provision of guidance is further restricted by the fact that the path up to that conditional must be maintained by obeying the constraints imposed by `earlier' conditionals. An empirical study presented...
Analysis and Visualization of Predicate Dependence on Formal Parameters and Global Variables
- IEEE TRANSACTIONS ON SOFTWARE ENGINEERING
, 2004
"... Empirical data concerning the qualitative and quantitative nature of program dependence is presented for a set of 20 programs ranging from 600 lines of code to 167,000 lines of code. The sources of dependence considered are global variables and formal parameters and the targets considered are a pr ..."
Abstract
-
Cited by 11 (8 self)
- Add to MetaCart
Empirical data concerning the qualitative and quantitative nature of program dependence is presented for a set of 20 programs ranging from 600 lines of code to 167,000 lines of code. The sources of dependence considered are global variables and formal parameters and the targets considered are a program's predicate nodes. The results show that as the number of formal parameters available to a predicate increases, there is a decrease in the proportion of these formal parameters which are depended upon by the predicate. No such correlation was found for global variables. Results from theoretical and actual computation time analysis indicate that the computation of dependence information is practical, suggesting that the analysis may be beneficial to several application areas. The paper also presents results concerning correlations that provide strong evidence that the global and formal dependence sources are independent of one another and that the numbers of globals and formals are independent of the size of the procedure that contains them. Finally, two visualization techniques for displaying dependence information are introduced. Illustrations show how these visualizations and predicate dependence analysis can assist in activities such as testing, comprehension, and evolution.
Search-based mutation testing for Simulink models
- in Proceedings of the 2005 conference on Genetic and evolutionary computation. Washington DC
, 2005
"... The efficient and effective generation of test-data from high-level models is of crucial importance in advanced modern software engineering. Empirical studies have shown that mutation testing is highly effective. This paper describes how search-based automatic test-data generation methods can be use ..."
Abstract
-
Cited by 11 (5 self)
- Add to MetaCart
The efficient and effective generation of test-data from high-level models is of crucial importance in advanced modern software engineering. Empirical studies have shown that mutation testing is highly effective. This paper describes how search-based automatic test-data generation methods can be used to find mutation adequate test-sets for Matlab/Simulink models. Categories and Subject Descriptors
The state problem for test generation in simulink
- in Proceedings of the 8th annual Conference on Genetic and Evolutionary Computation (GECCO ’06). ACM
"... Search based test-data generation has proved successful for codelevel testing. In this paper we investigate the application of such approaches at the higher levels of abstraction offered by Matlab-Simulink models. The presence of persistent state has been shown to be problematic at the code level an ..."
Abstract
-
Cited by 6 (2 self)
- Add to MetaCart
Search based test-data generation has proved successful for codelevel testing. In this paper we investigate the application of such approaches at the higher levels of abstraction offered by Matlab-Simulink models. The presence of persistent state has been shown to be problematic at the code level and such difficulties remain when Matlab-Simulink models are to be tested. In such cases, sequences of inputs that can put the model under test into particular states are needed to enable the underlying test goals to be achieved. Simple search guidance appears to be insufficient and results in a ‘flat ’ cost function landscape. To address this problem, we introduce a technique called tracing and deducing, which helps provide better guidance to the search, allowing our developed tools to home in on the targeted test-data.
IGUANA: Input generation using automated novel algorithms. A plug and play research tool
, 2007
"... IGUANA is a tool for automatically generating software test data using search-based approaches. Search-based approaches explore the input domain of a program for test data and are guided by a fitness function. The fitness function evaluates input data and measures how suitable it is for a given purp ..."
Abstract
-
Cited by 6 (3 self)
- Add to MetaCart
IGUANA is a tool for automatically generating software test data using search-based approaches. Search-based approaches explore the input domain of a program for test data and are guided by a fitness function. The fitness function evaluates input data and measures how suitable it is for a given purpose, for example the execution of a particular statement in a program, or the falsification of an assertion statement. The IGUANA tool is designed so that researchers can easily compare and contrast different search methods (e.g. random search, hill climbing and genetic algorithms), fitness functions (e.g. for obtaining branch coverage of a program) and program analysis techniques for test data generation. 1

