Ghiduk, A. Hsinyi, J. Jena, A. Jeya Mala, D. Notes 38 5 , 1 Kitchenham, B. Li, Z. Mahajan, S. Malhotra, R. Notes 38 3 , 1 Nesmachnow, S. Pino, F. Salami, H. Saxena, V. Notes 38 1 , 1—7 Shamshiri, S. Sharma, C. Test cases and test data generation is the key problem in software testing and as well as its automation improves the efficiency and effectiveness and lowers the high cost of software testing. Generation of test data using random, symbolic and dynamic approach is not enough to generate optimal amount of test data.
Some other problems, like non- recognition of occurrences of infinite loops and inefficiency to generate test data for complex programs makes these techniques unsuitable for generating test data.
That why there is need for generating test data using search based technique. In addition to these there is also need of generating test cases that concentrate on error prone areas of code [13], [14], [15], [16].
The application of Genetic Algorithm in Software Testing is a new area of research that brings about the cross fertilization of ideas across two domains. Genetic Algorithm is used to generate test cases while ensuring that the generated test cases are not redundant. It maximizes the test coverage for the generated test cases. In order to carry out the effectiveness of the test cases and test data the quantification, measurement and the perfect modeling is required which is done by using the accurate suite of software test metrics.
The test metrics are used to measure the number, complexity, quality. Abhishek et. By examining the most critical paths first, obtain an effective way to approach testing which in turn helps to refine effort and cost estimation in the testing phase. The experiments conducted so far are based on relatively small examples and more research needs to be conducted with larger commercial examples. Yang et. The similarity between the target path and execution path with sub path overlapped is taken as the fitness value to evaluate the individuals of a population and drive GA to search the appropriate solutions.
The authors conducted several experiments to examine the effectiveness of the designed fitness function, and evaluated the performance of the function with regards to its convergence ability and consumed time. Results prove that the function performs better as compared with the other two typical fitness functions for the specific paths employed by the authors [19], [20]. Aladeen et al[14] have compared the software test data for automatic path coverage using genetic algorithm with Yong [20] for generating test data of path testing.
They found GAs is useful in reducing the time required for lengthy testing by generating the meaningful test cases for path testing. The GAs is required to be built for structural testing for reduce execution time by generating more suitable test cases. Roy et al. A GAs is a heuristic that mimics the evolution of natural species in searching for the optimal solution to a problem. In the test-data generation application, the solution sought by the GAs is test data that causes execution of a given statement, branch, path or definition-use pair in the program under test.
The test data generation technique was implemented in a tool called TGen in which parallel processing was used to improve the performance of the www. To experiment with TGen, a random test data generator called Random was also implemented. Both TGen and Random were used to experiment with the generation of test data for statement and branch coverage of six programs [41].
Rajappa et al. In this approach the directed graph of all the intermediate states of the system for the expected behaviour is created and the base population of genetic algorithm is generated by creating a population of all the nodes of the graph. A pair of nodes referred to as parents are then selected from the population to perform crossover and mutation on them to obtain the optimum nodes.
The process is continued until all the nodes are covered and this process is followed for the generation of test case in the real time system. The technique is more accurate in case of network testing or any other system testing where the predictive model based tests are not optimized to produce the output [15].
Parveenand Tai have demonstrated that it is possible to apply Genetic Algorithm techniques for finding the most critical paths for improving software testing efficiency. The Genetic Algorithms also outperforms the exhaustive search and local search techniques and in conclusion, by examining the most critical paths first, we obtain a more effective way to approach testing which in turn helps to refine effort and cost estimation in the testing phase [42].
K Singh used Genetic algorithm in scheduling of tasks to be executed on a multiprocessor system. Genetic algorithms are well suited to multiprocessor scheduling problems. As the resources are increased available to the GAs, it is able to find better solutions in short time.
GAs performs better as compared to other traditional techniques. So GAs appears to be the most flexible algorithm for problems using multiple processors. It also indicates that the GAs is able to adapt automatically to changes in the problem to be solved [24]. Quality must be monitored from the early phases to final phase such as analysis, design, implementation and maintenance phases.
M Amoui et al. It is a major area in software development process. Despite all previous attempts to evolve software for quality improvement, these methods are neither scalable nor fully automatable so in this research authors approach software evolution problem by reformulating it as a search problem.
This research based formulation of the problem enables us to use Genetic Algorithm for optimizing the metrics and find the best sequence of transformations. The implementation results show that Genetic Algorithm is able to find the optimal solution efficiently, especially when different genetic operators, adapted to characteristics of transformations, are used [34]. D M Thakore et al. Assigning access specifier is not an easy task as it decides over all security of any software though there are many metrics tools available to measure the security at early stage.
But assignment of access specifier is totally based on the human judgment and understanding. It is quietly different than any other security Measurement Tool because it filters input design before applying metrics by GA. It Takes input as a UML class diagram with basic constraints and generates alternate solutions.
Tool also provides metrics at code level to compute the security at code level. The result of both the metrics gives proof of secure design [35]. S H Aljahdali use GAs as powerful technique to estimate the parameters of well known reliability model. Software reliability models are useful to estimate the probability of the software fail along the time. Mating pool: This column contains the number of times a test data appears in the Ns column. Mutation: For each entry in the new data set, bit-wise random number are generated.
And for random number values less than 0. Same procedure is carried out for the new data set obtained for further crossover and mutation until we start getting better values of the fitness function F x. Example 1: Initial population: n, m 15, 4 , 5, 6 , 6, 2 , 4, 12 Fitness function used: Summation of weights of path traversed by a given input data in CFG For example 15, 4 will travel the path and therefore its fitness value is Since the mating pool consists of only 15, 4 therefore this is the test data that should be used for the testing of the code during execution.
This is because the mating pool depicts the population that will mate in the next iteration. Here since the only value in mating pool is 15, 4 , this shows that no further improvement in the fitness function value can be achieved with further reproduction and mutation.
Thus 15, 4 is the test data that should be used as input for software testing. Fitness function values of input population is calculated in coloumn3,then probability is calculated using the formula in section 3. Coloumn5 shown the cumulative probability. Random number are generated to simulate the GA process. We have reported preliminary results from an experiment comparing random test data generation with a new approach using genetic search.
In this paper we have demonstrated that it is possible to apply Genetic Algorithm techniques for finding the most critical paths for improving software testing efficiency. The Genetic Algorithms also outperforms the exhaustive search and local search techniques. In conclusion, by examining the most critical paths first, we obtain a more effective way to approach testing which in turn helps to refine effort and cost estimation in the testing phase. Our experiments conducted so far are based on relatively small examples and more research needs to be conducted with larger commercial examples.
Future research will involve comparing GA selected paths in larger test data and further refining the method presented. This research would help in generating various software test cases. Also, since GA can be used independently for any problem and it is an emerging field so it has tremendous importance for users.
References [1] Somerville, I. Automated software test data generation. Jones, H. Sthamer and D. Automatic structural testing using genetic algorithms. Software Engineering Journal, pages , September, Taipei, Taiwan, December , Michael, Gary E. McGraw, Michael A. Schatz, and Curtis C. On the Origin of Species: A facsimile of the first edition. Harvard University Press, July He is currently doing research in the area of Software Testing. His research areas are software testing, quality assurance, testing effort, software release, test data generation, agent oriented software testing, soft computing techniques.
He has a number of publications in the area of software testing. He has been actively involved in reviewing various research papers submitted in his field to different leading Journals and various International and National level conferences.
Contact him at praveenrsrivastava gmail. Related Papers 6. GA-based multiple paths test data generator By Irman Hermadi. Genetic algorithm based test data generator By Irman Hermadi.
0コメント