Critical components testing using hybrid genetic algorithm

  • Authors:
  • D. Jeya Mala;K. Sabari Nathan;S. Balamurugan

  • Affiliations:
  • Thiagarajar College of Engineering Tamil Nadu, India;Thiagarajar College of Engineering Tamil Nadu, India;Thiagarajar College of Engineering Tamil Nadu, India

  • Venue:
  • ACM SIGSOFT Software Engineering Notes
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

Abstract

As quality of software plays a vital role in real time systems, it is essential to identify the crucial parts in the system and to test them effectively. In the proposed approach, the critical components are identified by means of mutation based impact analysis. The next task is to test the critical components using the Hybrid Genetic Algorithm (HGA) based test case generation and optimization approach. The mutants are automatically generated by seeding faults into each method of all the components in the Software Under Test (SUT). The initial set of test cases is generated using randomized test data. The generated test cases are executed over the original and the mutant to identify whether the test case detects the error or not. Based on the results, the Mutation Score (MS) is calculated, which always lies between 0 and 1. The best test cases are chosen based on having higher mutation scores and are executed on mutants to analyze how each component affects the other components in the SUT. Based on the analysis, the critical components are identified and they need rigorous testing using the test cases generated by the HGA. The algorithm uses the RemoveTop and LocalBest improvement heuristics to achieve near optimal solutions. In unit testing, the test cases are executed against the original and the mutant. The test case optimization is done by evaluating the effectiveness of test suites using the Mutation Score and the Branch Coverage Value (BCV). In pair-wise testing, the effective test cases are selected based on the higher mutation scores and branch coverage values. The components are executed against these test cases and the execution traces are recorded. The traced results are compared against the expected outputs which were previously stored in the repository and the statuses are updated. Based on the statuses, the faulty methods are revealed. The efficiency of the proposed approach is compared with Genetic Algorithm (GA) and we concluded that the final test suite size and the total execution time are reduced in the proposed approach. Finally various graphs and PDF reports are generated for visualization purposes.