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.
- Roger S. Pressman. Software Engineering. A Practitioner's Approach, McGraw Hill, 1997. Google ScholarDigital Library
- Aditya P.Mathur. Software Testing. Pearson Education, Asia.Google Scholar
- Srinivasan Desikan, Gopalaswamy Ramesh. Software Testing Principles & Practices. PEARSON Education, 2006. Google ScholarDigital Library
- Mala, D.J., Praba. M.R. Critical components identification and verification for effective software test prioritization. Advanced Computing (ICoAC), 2011 Third International Conference on , vol., no., pp.181--186, 14-16 Dec. 2011Google Scholar
- D. Jeyamala, V. Mohan. Quality Improvement and Optimization of Test cases. A Hybrid Genetic Algorithm Based Approach. ACM SIGSOFT Software Engineering Notes,Vol.35 No.3, pp.1--14, 2010 Google ScholarDigital Library
- MUJava homepage {Online}. Available: http://cs.gmu.edu/~offutt/mujava/Google Scholar
- A. R. A. DeMillo and R. J. Martin. The Mothra software testing environment user's manual. Software Engineering Research Center, Tech.Rep., 1987.Google Scholar
- Yu-Seung Ma, Jeff Offutt, and Yong Rae Kwon. MuJava: An Automated Class Mutation System. Journal of Software Testing, Verification and Reliability, 15(2):97--133, June 2005. Google ScholarDigital Library
- Srinivasan Desikan, Gopalaswamy Ramesh. Software Testing Principles & Practices. PEARSON Education, 2006. Google ScholarDigital Library
- A. Offutt, G. Rothermel, and C. Zapf. An experimental evaluation of selective mutation. in Proc. ICSE, 1993, pp. 100--107. Google ScholarDigital Library
- Lanubile, F., A. Lonigro, and G. Visaggio. Comparing models for identifying fault-prone software components. Proceedings of Seventh International Conference on Software Engineering and Knowledge Engineering. 1995.Google Scholar
- http://www.informit.com/guides/content.aspxGoogle Scholar
- Ohlsson, Niclas, M. Helander, and C. Wohlin. Quality improvement by identification of fault-prone modules using software design metrics. Proceedings: International Conference on Software Quality. 1996.Google Scholar
- Birt, James R., and Renate Sitte. Optimizing testing efficiency with error-prone path identification and genetic algorithms. SoftwareGoogle Scholar
- P.K. Suri, Kumar Sandeep. Simulator for Identifying Critical Components for Testing in a Component Based Software System. IJCSNS International Journal of Computer Science and Network Security. Vol.10, No.6, 2010; pp. 250--257.Google Scholar
- Zhou Yuming, Hareton Leung. Empirical Analysis of Object-Oriented Design Metrics for Predicting High and Low Severity Faults. IEEE Transactions on Software Engineering, Vol. 32, No. 10, 2006; pp.771--789. Google ScholarDigital Library
- Shatnawi A. Raed, Li Wei. The Effectiveness of Software Metrics in Identifying Error-Prone Classes in Post-Release Software Evolution Process. Journal of Systems and Software, Vol. 81, 2008; pp.1868--1882. Google ScholarDigital Library
- Ray Mitrabinda, Prasad Mohapatra Durga. A novel methodology for software risk assessment at architectural level using UML diagrams, SETLabs Briefings, Vol 9, No 4, 2011; pp.41--60.Google Scholar
- Goseva-Popstojanova Katerina, Hassan Ahmed, Guedem Ajith, Abdelmoez Walid, M.Nassar Diaa Eldin, Ammar Hany, Mili Ali, Architectural Level Risk Analysis,IEEE Transactions on Software Engineering, Vol. 29, No.10.2003; pp. 946--960. Google ScholarDigital Library
- http://www.infosys.com/engineering-services/white-papers/Documents/comprehensive-metrics-model.pdfGoogle Scholar
- Land, M. Evolutionary Algorithms with Local Search for Combinatorial Optimization. Ph.D. Thesis, University of California, San Diego, 1998. Google ScholarDigital Library
- http://ant.apache.org/Google Scholar
- http://staffwww.dcs.shef.ac.uk/people/A.Simons/jwalk/download.htmlGoogle Scholar
- http://workbench.haefelinger.it/flaka/Google Scholar
- D. Jeyamala, K. Sabari Nathan. Critical Components Identification using Mutation based Components Impact Analysis. IJCSI International Journal of Computer Science and Informatics. Vol.3, No.2, 2013; pp. 24--33.Google Scholar
- D. Jeyamala, S. Balamurugan. Fault-prone Components Identification for Real-time Complex systems based on Criticality Analysis. IJCSI International Journal of Computer Science and Informatics. Vol.3, No.2, 2013; pp. 17--23.Google Scholar
- D. Jeyamala, A.Jalila. OCL formal Specification based Metrics a measure of complexity and fault proneness. IJCSI International Journal of Computer Science and Informatics. Vol.3, No.2, 2013; pp. 69--79.Google Scholar
- D. Jeyamala, V. Mohan. A Hybrid Test Optimization Framework-- Coupling Genetic Algorithm with Local Search Technique. International Journal of Computing and Informatics,Vol.29, No.1, pp. 133--164, 2010Google Scholar
- D. Jeyamala, V. Mohan. ABC Tester -- Artificial Bee Colony Optimization For Software Test Suite Optimization. IJSE -- International Journal of Software Engineering. Vol.2, No.2, pp.15--48, 2009Google Scholar
Index Terms
- Critical components testing using hybrid genetic algorithm
Recommendations
A hybrid test optimization framework using memetic algorithm with cuckoo flocking based search approach
SBST 2014: Proceedings of the 7th International Workshop on Search-Based Software TestingThe testing process of industrial strength applications usually takes more time to ensure that all the components are rigorously tested to have failure-free operation upon delivery. This research work proposed a hybrid optimization approach that ...
From genetic to bacteriological algorithms for mutation-based testing: Research Articles
The level of confidence in a software component is often linked to the quality of its test cases. This quality can in turn be evaluated with mutation analysis: faults are injected into the software component (making mutants of it) to check the ...
A new approach to generate and optimize test cases for UML state diagram using genetic algorithm: http://doi.acm.org/10.1145/180921.2180933
Software testing is an important part of the software development process. The testing effort is divided into three parts: test case generation, test execution and test evaluation. Test case generation is the center of testing process and automating. It ...
Comments