Skip to main content

Advertisement

Log in

Multi-objective test prioritization via a genetic algorithm

  • Original Paper
  • Published:
Innovations in Systems and Software Engineering Aims and scope Submit manuscript

Abstract

It is a challenging job for the software industry to release a product with the right quality level at the right time. There are some components within a software system that are more critical to the system’s operation than others. Faults in components with high criticality are responsible directly or indirectly for causing high failure rate of the overall system compared to same faults in components with low criticality. Estimating the criticality of a component at the design level and focusing test effort per component based on the estimated criticality of the component helps to improve the reliability of a system within the available test resources. The objective is to identify the criticality level of a component at the design level and make a better test plan so that the high-critical components would be tested more completely and rigorously than other less-critical components. We first propose a method to estimate the criticality of a component within a system. The criticality estimation method is based upon design documents. We prioritize the components for testing according to their estimated criticality. Then, we present a genetic algorithm-based technique to select test cases out of a large pool of test cases. The intensity with which each component is tested is proportionate to its priority and the test suite is optimal under other constraints. We have conducted experiments to compare our scheme with a related scheme. The experimental results establish that higher reliability can indeed be achieved using our scheme.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2

Similar content being viewed by others

References

  1. Boehm B, Basili VR (2001) Software defect reduction top 10 list. Computer 34(1):135–137

    Article  Google Scholar 

  2. Briand LC, Daly JW, Wnst JK (1999) A unified framework for coupling measurement in Object-Oriented systems. IEEE Trans Softw Eng 25(01):91–121

    Article  Google Scholar 

  3. Arisholm E, Briand LC, Audun F (2004) Dynamic coupling measurement for Object-Oriented software. IEEE Trans Softw Eng 30:491–506

    Article  Google Scholar 

  4. Musa JD (1993) Operational profiles in software-reliability engineering. IEEE Softw 10(2):14–32

    Article  Google Scholar 

  5. Cobb RH, Mills HD (1990) Engineering software under statistical quality control. IEEE Softw 7(6):44–54

    Article  Google Scholar 

  6. Briand LC, Jürgen W, Daly JW, Porter DV (2000) Exploring the relationship between design measures and software quality in Object-Oriented systems. J Systems Softw 51(3):245–273

    Article  Google Scholar 

  7. Ray M, Kumawat KL, Mohapatra DP (2011) Source code prioritization using forward slicing for exposing critical elements in a program. J Comput Sci Technol 26(2):314–327

    Article  Google Scholar 

  8. Ray M, Mohapatra DP (2010) Reliability improvement based on prioritization of source code. In: Janowski T, Mohanty H (eds.) ICDCIT, volume 5966 of Lecture Notes in Computer Science. Springer, Berlin, pp 212–223

  9. Rothermel G, Untch RH, Chu C, Harrold MJ (2001) Prioritizing test cases for regression testing. IEEE Trans Softw Eng 27(10):929–948

    Article  Google Scholar 

  10. Elbaum S, Malishevsky AG, Rothermel G (2002) Test case prioritization: a family of empirical studies. IEEE Trans Softw Eng 28(2):159–182

    Article  Google Scholar 

  11. Elbaum S, Malishevsky A, Rothermel G (2001) Incorporating varying test costs and fault severities into test case prioritization. In: ICSE ’01: Proceedings of the 23rd International Conference on Software Engineering. IEEE Computer Society, Washington, pp 329–338

  12. Jeffrey D, Gupta N (2008) Experiments with test case prioritization using relevant slices. J Systems Softw 81(2):196–221

    Article  Google Scholar 

  13. Bryce RC, Sampath S, Memon AM (Jan. 2011) Developing a single model and test prioritization strategies for Event-Driven software. IEEE Trans Softw Eng 37(1):48–64

  14. Kundu D, Sarma M, Samanta D, Mall R (2009) System testing for Object-Oriented systems with test case prioritization. Softw Test Verif Reliab 19:297–333

    Article  Google Scholar 

  15. Ray M, Mohapatra DP (2013) Risk analysis: a guiding force in the improvement of testing. IET Softw 7(1):29–46

    Article  Google Scholar 

  16. Harrold MJ, Gupta R, Soffa ML (1993) A methodology for controlling the size of a test suite. ACM Trans Softw Eng Methodol 2(3):270–285

    Article  Google Scholar 

  17. Binkley D (1998) The application of program slicing to regression testing. Inf Softw Technol 40(11):583–594

    Article  Google Scholar 

  18. Leon D, Masri W, Podgurski A (2005) An empirical evaluation of test case filtering techniques based on exercising complex information flows. In: International Conference on Software Engineering (ICSE). ACM, New York, pp 412–421

  19. Jeffrey D, Gupta N (2007) Improving fault detection capability by selectively retaining test cases during test suite reduction. IEEE Trans Softw Eng 33(2):108–123

    Article  Google Scholar 

  20. Mall R (2009) Fundamentals of software engineering. Prentice Hall of India, 3rd edition

  21. Horwitz S, Reps T, Binkley D (1988) Interprocedural slicing using dependence graphs. In: PLDI ’88: Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation. ACM, New York, pp 35–46

  22. Yacoub SM, Cukic B, Ammar HH (2004) Scenario-based reliability analysis of component-based software. IEEE Trans Reliab 53(04):465–480

    Article  Google Scholar 

  23. Weiser M (July 1984) Program slicing. IEEE Trans Softw Eng 10(4):352–357

  24. Ferrante J, Ottenstein KJ, Warren JD (1987) The program dependence graph and its use in optimization. ACM Trans Program Lang Systems 9(3):319–349

    Article  MATH  Google Scholar 

  25. Jacobson I, Christerson M , Jonsson P, Övergaard G (1992) Object-Oriented software engineering—a use case driven approach. Addison-Wesley, Reading, MA

  26. Kumar R, Rockett P (2002) Improved sampling of the pareto-front in multiobjective genetic optimizations by steady-state evolution: a pareto converging genetic algorithm. Evol Comput 10(3):283–314

    Article  Google Scholar 

  27. Fonseca CM, Fleming PJ (1995) An overview of evolutionary algorithm in multi-objective optimization. Evol Comput 3(1):1–16

    Article  Google Scholar 

  28. Krishnamurthy S, Mathur AP (1997) On the estimation of reliability of a software system using reliabilities of its components. In: ISSRE ’97: Proceedings of the Eighth International Symposium on Software Reliability Engineering. IEEE Computer Society, Washington, p 146

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Mitrabinda Ray.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Ray, M., Mohapatra, D.P. Multi-objective test prioritization via a genetic algorithm. Innovations Syst Softw Eng 10, 261–270 (2014). https://doi.org/10.1007/s11334-014-0234-2

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11334-014-0234-2

Keywords

Navigation