Object Oriented Software Testing with Genetic Programming and Program Analysis

2012 ◽  
pp. 992-1006
Author(s):  
Arjan Seesing ◽  
Hans-Gerhard Gross

Testing is a difficult and costly activity in the development of object-oriented programs. The challenge is to come up with a sufficient set of test scenarios, out of the typically huge volume of possible test cases, to demonstrate correct behavior and acceptable quality of the software. This can be reformulated as a search problem to be solved by sophisticated heuristic search techniques such as evolutionary algorithms. The goal is to find an optimal set of test cases to achieve a given test coverage criterion. This chapter introduces and evaluates genetic programming as a heuristic search algorithm which is suitable to evolve object-oriented test programs automatically to achieve high coverage of a class. It outlines why the object paradigm is different to the procedural paradigm with respect to testing, and why a genetic programming approach might be better suited than the genetic algorithms typically used for testing procedural code. The evaluation of our implementation of a genetic programming approach, augmented with program analysis techniques for better performance, indicates that object-oriented software testing with genetic programming is feasible in principle. However, having many adjustable parameters, evolutionary search heuristics have to be fined-tuned to the optimization problem at hand for optimal performance, and, therefore, represent a difficult optimization problem in their own right.

Author(s):  
Arjan Seesing ◽  
Hans-Gerhard Gross

Testing is a difficult and costly activity in the development of object-oriented programs. The challenge is to come up with a sufficient set of test scenarios, out of the typically huge volume of possible test cases, to demonstrate correct behavior and acceptable quality of the software. This can be reformulated as a search problem to be solved by sophisticated heuristic search techniques such as evolutionary algorithms. The goal is to find an optimal set of test cases to achieve a given test coverage criterion. This chapter introduces and evaluates genetic programming as a heuristic search algorithm which is suitable to evolve object-oriented test programs automatically to achieve high coverage of a class. It outlines why the object paradigm is different to the procedural paradigm with respect to testing, and why a genetic programming approach might be better suited than the genetic algorithms typically used for testing procedural code. The evaluation of our implementation of a genetic programming approach, augmented with program analysis techniques for better performance, indicates that object-oriented software testing with genetic programming is feasible in principle. However, having many adjustable parameters, evolutionary search heuristics have to be fined-tuned to the optimization problem at hand for optimal performance, and, therefore, represent a difficult optimization problem in their own right.


Project is a collection of similar activities that are going to be executed in certain order. Among the phases of project management testing show business crucial role. The intension of testing is not to prove the correctness; it is the process of verifying and validation. Software Testing is the most challenging job among all the peers of the industry. Exhaustive software Testing is never possible only Optimized software testing is possible. Hence Software Testing can be viewed as optimization problem as it fall under NP complete. Because of the extensive number of experiments that are required to perform adequate testing of the ideal programming application; the different strategies to decrease the test suite is required. One of the normal contemplated strategies is evacuating the repetitive experiments; the reason is insignificant number of experiments and greatest number of mistakes seclusion or revealing. In this exploration work consider is directed to address the usage and viability of G-hereditary calculation so as to decrease the quantity of experiments that don't included unmistakable incentive in the mean of test inclusion or where the experiments can't separate blunders. Hereditary calculation is used in this work to help in limiting the experiments or streamlining the experiments, where the hereditary calculation creates the primer populace arbitrarily, computes the wellness esteem utilizing inclusion measurements, and after that particular the posterity in back to back ages utilizing hereditary tasks choice, traverse and transformation. The hereditary displaying activities are explicit and dependent on the task may fluctuate to ordinary Genetic calculation. This procedure of age is rehashed until there is no adjustment in the wellness esteems for two successive ages, when there is no adjustment in the information age for two emphases so union accomplished or a minimized test case is achieved. The results of study demonstrate that, genetic algorithms can significantly reduce the size of the test cases


Author(s):  
Zahid Hussain Qaisar ◽  
Farooq Ahmad

Regression testing is important activity during the maintenance phase. An important work during maintenance of the software is to find impact of change. One of the essential attributes of Software is change i.e. quality software is more vulnerable to change and provide facilitation and ease for developer to do required changes. Modification plays vital role in the software development so it is highly important to find the impact of that modification or to identify the change in the software. In software testing that issue gets more attention because after change we have to identify impact of change and have to keenly observe what has happened or what will happen after that particular change that we have made or going to make in software. After change software testing team has to modify its testing strategy and have to come across with new test cases to efficiently perform the testing activity during the software development Regression testing is performed when the software is already tested and now some change is made to it. Important thing is to adjust those tests which were generated in the previous testing processes of the software. This study will present an approach by analyzing VDM (Vienna Development Methods) to find impact of change which will describe that how we can find the change and can analyze the change in the software i.e. impact of change that has been made in software. This approach will fulfill the purpose of classifying the test cases from original test suite into three classes obsolete, re-testable, and reusable test cases. This technique will not only classify the original test cases but will also generate new test cases required for the purpose of regression testing.


2018 ◽  
Vol 11 (1) ◽  
pp. 158-171 ◽  
Author(s):  
Rashmi Rekha Sahoo ◽  
Mitrabinda Ray

The primary objective of software testing is to locate bugs as many as possible in software by using an optimum set of test cases. Optimum set of test cases are obtained by selection procedure which can be viewed as an optimization problem. So metaheuristic optimizing (searching) techniques have been immensely used to automate software testing task. The application of metaheuristic searching techniques in software testing is termed as Search Based Testing. Non-redundant, reliable and optimized test cases can be generated by the search based testing with less effort and time. This article presents a systematic review on several meta heuristic techniques like Genetic Algorithms, Particle Swarm optimization, Ant Colony Optimization, Bee Colony optimization, Cuckoo Searches, Tabu Searches and some modified version of these algorithms used for test case generation. The authors also provide one framework, showing the advantages, limitations and future scope or gap of these research works which will help in further research on these works.


2021 ◽  
Author(s):  
Olivia-Linda Enciu

Manual quantum programming is generally diffcult for humans, due to the often hard-to-grasp properties of quantum mechanics and quantum computers. By outlining the target (or desired) behaviour of a particular quantum program, the task of programming can be turned into a search and optimization problem. A flexible evolutionary technique known as genetic programming may then be used as an aid in the search for quantum programs. In this work a genetic programming approach uses an estimation of distribution algorithm (EDA) to learn the probability distribution of optimal solution(s), given some target behaviour of a quantum program.


2021 ◽  
Author(s):  
Olivia-Linda Enciu

Manual quantum programming is generally diffcult for humans, due to the often hard-to-grasp properties of quantum mechanics and quantum computers. By outlining the target (or desired) behaviour of a particular quantum program, the task of programming can be turned into a search and optimization problem. A flexible evolutionary technique known as genetic programming may then be used as an aid in the search for quantum programs. In this work a genetic programming approach uses an estimation of distribution algorithm (EDA) to learn the probability distribution of optimal solution(s), given some target behaviour of a quantum program.


Mathematics ◽  
2021 ◽  
Vol 9 (15) ◽  
pp. 1779
Author(s):  
Wanida Khamprapai ◽  
Cheng-Fa Tsai ◽  
Paohsi Wang ◽  
Chi-En Tsai

Test case generation is an important process in software testing. However, manual generation of test cases is a time-consuming process. Automation can considerably reduce the time required to create adequate test cases for software testing. Genetic algorithms (GAs) are considered to be effective in this regard. The multiple-searching genetic algorithm (MSGA) uses a modified version of the GA to solve the multicast routing problem in network systems. MSGA can be improved to make it suitable for generating test cases. In this paper, a new algorithm called the enhanced multiple-searching genetic algorithm (EMSGA), which involves a few additional processes for selecting the best chromosomes in the GA process, is proposed. The performance of EMSGA was evaluated through comparison with seven different search-based techniques, including random search. All algorithms were implemented in EvoSuite, which is a tool for automatic generation of test cases. The experimental results showed that EMSGA increased the efficiency of testing when compared with conventional algorithms and could detect more faults. Because of its superior performance compared with that of existing algorithms, EMSGA can enable seamless automation of software testing, thereby facilitating the development of different software packages.


Sign in / Sign up

Export Citation Format

Share Document