Advertisement

A Prioritization Approach for Software Test Cases Based on Bayesian Networks

  • Siavash Mirarab
  • Ladan Tahvildari
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4422)

Abstract

An important aspect of regression testing is to prioritize the test cases which need to be ordered to execute based on specific criteria. This research work presents a novel approach to prioritizing test cases in order to enhance the rate of fault detection. Our approach is based on probability theory and utilizes Bayesian Networks (BN) to incorporate source code changes, software fault-proneness, and test coverage data into a unified model. As a proof of concept, the proposed approach is applied to eight consecutive versions of a large-size software system. The obtained results indicate a significant increase in the rate of fault detection when a reasonable number of faults are available.

Keywords

Test case Prioritization Regression Testing Bayesian Networks 

References

  1. 1.
    Leung, H.K.N., White, L.J.: Insights into regression testing. In: Proceedings on IEEE International Conference of Software Maintenance (ICSM), pp. 60–69 (1989)Google Scholar
  2. 2.
    Agrawal, H., Horgan, J.R., Krauser, E.W., London, S.: Incremental regression testing. In: Proceedings of the International Conference on Software Maintenance (ICSM), pp. 348–357 (1993)Google Scholar
  3. 3.
    Chen, Y.F., Rosenblum, D.S., Vo, K.P.: Testtube: A system for selective regression testing. In: Proceedings of the ACM International Conference on Software Engineering (ICSE), pp. 211–220 (1994)Google Scholar
  4. 4.
    Rothermel, G., Harrold, M.J.: A safe, efficient regression test selection technique. ACM Transactions on Software Engineering and Methodology 6, 173–210 (1997)CrossRefGoogle Scholar
  5. 5.
    Rothermel, G., Untch, R.H., Chu, C., Harrold, M.J.: Prioritizing test cases for regression testing. IEEE Transactions on Software Engineering 27, 929–948 (2001)CrossRefGoogle Scholar
  6. 6.
    Wong, W.E., Horgan, J.R., London, S., Bellcore, H.A.: A study of effective regression testing in practice. In: Proceedings of the IEEE International Symposium on Software Reliability Engineering (ISSRE), pp. 264–274 (1997)Google Scholar
  7. 7.
    Malishevsky, A.G., Rothermel, G., Elbaum, S.: Modeling the cost-benefits tradeoffs for regression testing techniques. In: Proceedings of the International Conference on Software Maintenance (ICSM), pp. 204–213 (2002)Google Scholar
  8. 8.
    Do, H., Rothermel, G., Kinneer, A.: Prioritizing JUnit test cases: An empirical assessment and cost-benefits analysis. Empirical Software Engineering: An International Journal 11, 33–70 (2006)CrossRefGoogle Scholar
  9. 9.
    Elbaum, S., Malishevsky, A.G., Rothermel, G.: Test case prioritization: A family of empirical studies. IEEE Transactions on Software Engineering 28, 159–182 (2002)CrossRefGoogle Scholar
  10. 10.
    Kim, J.M., Porter, A.: A history-based test prioritization technique for regression testing in resource constrained environments. In: Proceedings of the ACM International Conference on Software Engineering (ICSE), pp. 119–129 (2002)Google Scholar
  11. 11.
    Saff, D., Ernst, M.D.: Reducing wasted development time via continuous testing. In: Proceedings of the IEEE International Symposium on Software Reliability Engineering (ISSRE), pp. 281–292 (2003)Google Scholar
  12. 12.
    Srivastava, A., Thiagarajan, J.: Effectively prioritizing tests in development environment. In: Proceedings of the ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA), pp. 97–106 (2002)Google Scholar
  13. 13.
    Walcott, K.R., Soffa, M.L., Kapfhammer, G.M., Roos, R.S.: Timeaware test suite prioritization. In: Proceedings of the IEEE International Symposium on Software Testing and Analysis (ISSTA), pp. 1–12 (2006)Google Scholar
  14. 14.
    Pearl, J.: Probabilistic Reasoning in Intelligent Systems: Networks of Plausible Inference. Morgan Kaufmann Publishers Inc., San Francisco (1988)Google Scholar
  15. 15.
    Okumoto, K., Goel, A.L.: Optimum release time for software systems based on reliability and cost criteria. Journal of Systems and Software 1, 315–318 (1980)CrossRefGoogle Scholar
  16. 16.
    Jensen, F.V.: Bayesian Networks and Decision Graphs (2001)Google Scholar
  17. 17.
    Collberg, C., Myles, G., Stepp, M.: An empirical study of java bytecode programs. Technical Report TR04-11, Department of Computer Science, Univeristy of Arizona (2004)Google Scholar
  18. 18.
    Briand, L., Wüst, J.: Empirical studies of quality models in object-oriented systems. Advances in Computers 56, 98–167 (2002)Google Scholar
  19. 19.
    Gyimothy, T., Ferenc, R., Siket, I.: Empirical validation of object-oriented metrics on open source software for fault prediction. IEEE Transactions on Software Engineering 31, 897–910 (2005)CrossRefGoogle Scholar
  20. 20.
    Elbaum, S., Gable, D., Rothermel, G.: Understanding and measuring the sources of variation in the prioritization of regression test suites. In: Proceedings of the IEEE International Symposium on Software Metrics (METRICS), pp. 169–179 (2001)Google Scholar
  21. 21.
    Chidamber, S.R., Kemerer, C.F.: Towards a metrics suite for object oriented design. In: Proceedings of the Annual ACM SIGPLAN Conference on Object-oriented Programming Systems, Languages, and Applications (OOPSLA), pp. 197–211 (1991)Google Scholar
  22. 22.
    Fenton, N.E., Pfleeger, S.L.: Software Metrics: A Rigorous and Practical Approach. PWS Publishing Co., Boston (1998)Google Scholar
  23. 23.
    Apache Ant (2005), http://ant.apache.org
  24. 24.
  25. 25.
  26. 26.
    Genie/Smile (2005-2006), http://genie.sis.pitt.edu/
  27. 27.
    Do, H., Elbaum, S., Rothermel, G.: Supporting controlled experimentation with testing techniques: An infrastructure and its potential impact. Empirical Software Engineering: An International Journal 10, 405–435 (2005)CrossRefGoogle Scholar
  28. 28.
    Srikanth, H., Williams, L., Osborne, J.: System test case prioritization of new and regression test cases. In: Proceedings of the International Symposium on Empirical Software Engineering, pp. 64–73 (2005)Google Scholar
  29. 29.
    Ziv, H., Richardson, D.J.: Constructing bayesian-network models of software testing and maintenance uncertainties. In: Proceedings of the International Conference on Software Maintenance (ICSM), pp. 100–109 (1997)Google Scholar
  30. 30.
    Wooff, D., Goldstein, M., Coolen, F.: Bayesian graphical models for software testing. IEEE Transactions on Software Engineering 28, 510–525 (2002)CrossRefGoogle Scholar
  31. 31.
    Fenton, N.E., Krause, P., Neil, M.: Probability modelling for software quality control. Journal of Applied Non-Classical Logics 12, 173–188 (2002)zbMATHCrossRefMathSciNetGoogle Scholar

Copyright information

© Springer Berlin Heidelberg 2007

Authors and Affiliations

  • Siavash Mirarab
    • 1
  • Ladan Tahvildari
    • 1
  1. 1.Department of Electrical and Computer Engineering, University of Waterloo, Ontario, N2L 3G1Canada

Personalised recommendations