Automatic test data generation using genetic algorithm and program dependence graphs (original) (raw)

Automatic Test Data Generation Using Genetic Algorithm and Program Dependence Graph

Software testing is probably the most complex task in the software development cycle. It is one of the most time-consuming and frustrating process. The complexity of software systems has been increasing dramatically in the past decade, and software testing as a labour-intensive component is becoming more and more expensive. With the complexity of the software, the cost of testing software is also increased. Thus with automatic test data generation the cost of testing will dramatically be reduced. This paper uses a program dependence analysis and genetic algorithms to generate test data automatically.

An Automatic Software Test-Data Generation Scheme Based on Data Flow Criteria and Genetic Algorithms

7th IEEE International Conference on Computer and Information Technology (CIT 2007), 2007

Software test-data generation research primarily focuses on using control flow graphs for producing an optimum set of test cases. This paper proposes the integration of a data flow graph module with an existing testing framework and the utilisation of a specially designed genetic algorithm for automatically generating test cases based on data flow coverage criteria. The enhanced framework aims to explore promising aspects of software testing that have not yet received adequate research attention, by exploiting the data information of a program and provide a different testing coverage approach compared to existing control flow-oriented ones. The performance of the proposed approach is assessed and validated on a number of sample programs of different levels of size and complexity. The associated experimental results indicate successful performance in terms of testing coverage, which is significantly better when compared to those of existing dynamic data flow-oriented test data generation methods.

The limitations of genetic algorithms in software testing

2010

Software test-data generation is the process of identifying a set of data, which satisfies a given testing criterion. For solving this difficult problem there were a lot of research works, which have been done in the past. The most commonly encountered are random test-data generation, symbolic test-data generation, dynamic testdata generation, and recently, test-data generation based on genetic algorithms. This paper gives a survey of the majority of software test-data generation techniques based on genetic algorithms. It compares and classifies the surveyed techniques according to the genetic algorithms features and parameters. Also, this paper shows and classifies the limitations of these techniques.

An Evolutionary Regression Test Case Prioritization based on Dependence Graph and Genetic Algorithm for Object-Oriented Programs

2nd International Conference on Emerging Trends in Engineering and Technology (ICETET'2014), May 30-31, 2014 London (United Kingdom), 2014

Regression testing takes almost half of the cost of software maintenance, but it is very important process in software testing. Unfortunately, it may be costly to allow for the re-execution of all test cases during regression testing. The challenge in regression testing is the selection of best test cases from the existing test suite. This paper presents an evolutionary regression test case prioritization for object-oriented software based on dependence graph model of the affected program using genetic algorithm. The approach is based on optimization of selected test case from dependency analysis of the source codes. The goal is to identify changes in a method's body due to data dependence, control dependence and dependent due to object relation such as inheritance and polymorphism, select the test cases based on affected statements and ordered them based on their fitness by using GA. The number of affected statements determined how fit a test case is good for regression testing. A case study will be reported to provide evidence of the feasibility of the approach and its benefits in increasing the rate of fault detection and reduction in regression testing effort.

Applying genetic algorithm to increase the efficiency of a data flow-based test data generation approach

ACM SIGSOFT Software Engineering Notes, 2012

The success or failure of the entire software development process relies on the software testing component which is responsible for ensuring that the software that is released is free from bugs. One of the major labor intensive activities of software testing is the generation of the test data for the purpose of applying the testing methodologies. Many approaches have been tried and tested for automating the process of generating the test data. Meta-heuristics have been applied extensively for improving the efficiency of the process. This paper analyses the effectiveness of applying genetic algorithms for generating test data automatically using data flow testing approach. An incremental coverage measurement method is used to improve the convergence.

Generating software test data by evolution

IEEE Transactions on Software Engineering, 2001

This paper discusses the use of genetic algorithms (GAs) for automatic software test data generation. This research extends previous work on dynamic test data generation where the problem of test data generation is reduced to one of minimizing a function Miller and Spooner, 1976, Korel, 1990]. In our work, the function is minimized by using one of two genetic algorithms in place of the local minimization techniques used in earlier research. We describe the implementation of our GA-based system, and examine the e ectiveness of this approach on a number of programs, one of which is signi cantly larger than those for which results have previously been reported in the literature. We also examine the e ect of program complexity on the test data generation problem by executing our system on a number of synthetic programs that have varying complexities.

Software Test Data Generation using Path Prefix Strategy and Genetic Algorithm

The Path Prefix Strategy for test data generation suggested by Prather and Myers [13] can be used to order branches for selection for coverage in a test data generation system using the Genetic Algorithm (GA). This is described in this paper. Further, in order to get over the problems associated with the use of the simple genetic algorithm (SGA) for test data generation with the proposed approach for branch ordering, elitism, elitism with fitness scaling and elitism with fitness scaling and memory were considered. These have been evaluated with extensive experiments on benchmark programs and the results of these experiments are presented and discussed. An experimental comparison with a GA implementation that did not incorporate the proposed branch ordering approach, elitism and memory, seems to indicate that a combination of the three may result in much better performance.

AUTOMATIC TEST CASE GENERATION FOR PERFORMANCE ENHANCEMENT OF SOFTWARE THROUGH GENETIC ALGORITHM AND RANDOM TESTING

Software testing is most effort consuming phase in software development. One would like to minimize the efforts and maximize the number of faults detected. Hence test case generation may be treated as an optimization problem. One of the major difficulties in software testing is the automatic generation of test data that satisfy a given adequacy criterion. Generating test cases automatically will reduce cost and efforts significantly. In this paper, test case data is generated automatically using Genetic Algorithms and results are compared with Random Testing. It is observed that Genetic Algorithms outperforms Random Testing.