Skip to main content
Erschienen in: Software Quality Journal 3/2011

01.09.2011

A multiple-population genetic algorithm for branch coverage test data generation

verfasst von: Mohammad Alshraideh, Basel A. Mahafzah, Saleh Al-Sharaeh

Erschienen in: Software Quality Journal | Ausgabe 3/2011

Einloggen

Aktivieren Sie unsere intelligente Suche, um passende Fachinhalte oder Patente zu finden.

search-config
loading …

Abstract

The software testing phase in the software development process is considered a time-consuming process. In order to reduce the overall development cost, automatic test data generation techniques based on genetic algorithms have been widely applied. This research explores a new approach for using genetic algorithms as test data generators to execute all the branches in a program. In the literature, existing approaches for test data generation using genetic algorithms are mainly focused on maintaining a single-population of candidate tests, where the computation of the fitness function for a particular target branch is based on the closeness of the input execution path to the control dependency condition of that branch. The new approach utilizes acyclic predicate paths of the program’s control flow graph containing the target branch as goals of separate search processes using distinct island populations. The advantages of the suggested approach is its ability to explore a greater variety of execution paths, and in certain conditions, increasing the search effectiveness. When applied to a collection of programs with a moderate number of branches, it has been shown experimentally that the proposed multiple-population algorithm outperforms the single-population algorithm significantly in terms of the number of executions, execution time, time improvement, and search effectiveness.

Sie haben noch keine Lizenz? Dann Informieren Sie sich jetzt über unsere Produkte:

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 340 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Jetzt Wissensvorsprung sichern!

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 102.000 Bücher
  • über 537 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Jetzt Wissensvorsprung sichern!

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 390 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




 

Jetzt Wissensvorsprung sichern!

Literatur
Zurück zum Zitat Alshraideh, M., & Bottaci, L. (2006). Automatic software test data generation for string data using heuristic search with domain specific search operators. Software Testing, Verification and Reliability, 16(3), 175–203.CrossRef Alshraideh, M., & Bottaci, L. (2006). Automatic software test data generation for string data using heuristic search with domain specific search operators. Software Testing, Verification and Reliability, 16(3), 175–203.CrossRef
Zurück zum Zitat Alshraideh, M., Bottaci, L., & Mahafzah, B. A. (2009). Using program data-state scarcity to guide automatic test data generation, Software Quality Journal (in press). Alshraideh, M., Bottaci, L., & Mahafzah, B. A. (2009). Using program data-state scarcity to guide automatic test data generation, Software Quality Journal (in press).
Zurück zum Zitat Beizer, B. (1990). Software testing techniques (2nd ed.). New York: van Nostrand Rheinhold. Beizer, B. (1990). Software testing techniques (2nd ed.). New York: van Nostrand Rheinhold.
Zurück zum Zitat Bottaci, L. (2003). Predicate expression cost functions to guide evolutionary search for test data. In Genetic and Evolutionary Computation Conference (GECCO 2003), July 2003 (pp. 2455–2464). Bottaci, L. (2003). Predicate expression cost functions to guide evolutionary search for test data. In Genetic and Evolutionary Computation Conference (GECCO 2003), July 2003 (pp. 2455–2464).
Zurück zum Zitat Cantu-Paz, E. (1988). A survey of parallel genetic algorithms, Calculateurs Paralleles. Reseaux et Systems Reportis, 10(2),141–171. Cantu-Paz, E. (1988). A survey of parallel genetic algorithms, Calculateurs Paralleles. Reseaux et Systems Reportis, 10(2),141–171.
Zurück zum Zitat Chung, I., & Bieman, J. M. (2008). Generating input data structures for automated program testing. Software Testing, Verification and Reliability, 18(3), 37–57. Chung, I., & Bieman, J. M. (2008). Generating input data structures for automated program testing. Software Testing, Verification and Reliability, 18(3), 37–57.
Zurück zum Zitat DeMillo, R., & Offutt, A. (1991). Constraint-based automatic test data generation. IEEE Transactions on Software Engineering, 17(9), 900–909.CrossRef DeMillo, R., & Offutt, A. (1991). Constraint-based automatic test data generation. IEEE Transactions on Software Engineering, 17(9), 900–909.CrossRef
Zurück zum Zitat Ferrante, J., Ottenstein, K., & Warren, J. (1987). The program dependency graph and its use in optimization. ACM Transactions on Programming Languages and Systems, 9(1), 319–349.MATHCrossRef Ferrante, J., Ottenstein, K., & Warren, J. (1987). The program dependency graph and its use in optimization. ACM Transactions on Programming Languages and Systems, 9(1), 319–349.MATHCrossRef
Zurück zum Zitat Fraser, G., & Wotawa, F. (2008). Using model-checkers to generate and analyze property relevant test-cases. Software Quality Journal, 16(2), 161–183.CrossRef Fraser, G., & Wotawa, F. (2008). Using model-checkers to generate and analyze property relevant test-cases. Software Quality Journal, 16(2), 161–183.CrossRef
Zurück zum Zitat Gotlieb, A., Botella, B., & Rueher, M. (1998). Automatic test data generation using constraint solving techniques. International Symposium on Software Testing and Analysis, 53–62. Gotlieb, A., Botella, B., & Rueher, M. (1998). Automatic test data generation using constraint solving techniques. International Symposium on Software Testing and Analysis, 53–62.
Zurück zum Zitat Gotlieb, A., Botella, B., & Rueher, M. A. (2000). A clp framework for computing structural test data. In Computational Logic, 399–413. Gotlieb, A., Botella, B., & Rueher, M. A. (2000). A clp framework for computing structural test data. In Computational Logic, 399–413.
Zurück zum Zitat Gupta, N., Mathur, A. P., & Soffa, M. L. (2000). Generating test data for branch coverage. In 15th IEEE international conference automated software engineering, Grenoble, France. Gupta, N., Mathur, A. P., & Soffa, M. L. (2000). Generating test data for branch coverage. In 15th IEEE international conference automated software engineering, Grenoble, France.
Zurück zum Zitat Harman, M., Hu, L., Hierons, R., Baresel, A., & Sthamer, H. (2002). Improving evolutionary testing by flag removal. In Proceedings of genetic and evolutionary computation conference, GECCO 2002, July 2002 (pp. 1359–1366). Harman, M., Hu, L., Hierons, R., Baresel, A., & Sthamer, H. (2002). Improving evolutionary testing by flag removal. In Proceedings of genetic and evolutionary computation conference, GECCO 2002, July 2002 (pp. 1359–1366).
Zurück zum Zitat Harman, M., Hu, L., Hierons, R., Wegener, G., Sthamer, H., Baresel, A., et al. (2004). Testability transformation. IEEE Transaction on software Engineering, 30(1), 73–81.CrossRef Harman, M., Hu, L., Hierons, R., Wegener, G., Sthamer, H., Baresel, A., et al. (2004). Testability transformation. IEEE Transaction on software Engineering, 30(1), 73–81.CrossRef
Zurück zum Zitat Harman, M., Islam, F., Xie, T., & Wappler, S. (2009). Automated test data generation for aspect-oriented programs. In Proceedings of the 8th ACM international conference on aspect-oriented software development (pp. 185–196). Harman, M., Islam, F., Xie, T., & Wappler, S. (2009). Automated test data generation for aspect-oriented programs. In Proceedings of the 8th ACM international conference on aspect-oriented software development (pp. 185–196).
Zurück zum Zitat Harman, M., & McMinn, P. (2007). A theoretical and empirical analysis of evolutionary testing and hill climbing for structural test data generation. In: Proceedings of the international symposium on software testing and analysis (ISSTA 2007) (pp. 73–83), July 2007. London, UK: ACM Press. Harman, M., & McMinn, P. (2007). A theoretical and empirical analysis of evolutionary testing and hill climbing for structural test data generation. In: Proceedings of the international symposium on software testing and analysis (ISSTA 2007) (pp. 73–83), July 2007. London, UK: ACM Press.
Zurück zum Zitat Kansomkeat, S., Offutt, J., Abdurazik, A., & Baldini, A. (2008). A comparative evaluation of tests generated from different UML diagrams, SNPD ( pp. 867–872). Kansomkeat, S., Offutt, J., Abdurazik, A., & Baldini, A. (2008). A comparative evaluation of tests generated from different UML diagrams, SNPD ( pp. 867–872).
Zurück zum Zitat Korel, B. (1990). Automated software test data generation. IEEE Transactions on Software Engineering, 16(8),870–879.CrossRef Korel, B. (1990). Automated software test data generation. IEEE Transactions on Software Engineering, 16(8),870–879.CrossRef
Zurück zum Zitat Korel, B. (1996). Assertion-oriented automated test data generation. In Proceedings of the 18th international conference on software engineering (pp. 71–80). Korel, B. (1996). Assertion-oriented automated test data generation. In Proceedings of the 18th international conference on software engineering (pp. 71–80).
Zurück zum Zitat Kuo, F. C., Chen, T. Y., Li, H., & Chan, W. K. (2008). Enhancing adaptive random testing for programs with high dimensional input domains or failure-unrelated parameters. Software Quality Journal, 16(3):303–327.CrossRef Kuo, F. C., Chen, T. Y., Li, H., & Chan, W. K. (2008). Enhancing adaptive random testing for programs with high dimensional input domains or failure-unrelated parameters. Software Quality Journal, 16(3):303–327.CrossRef
Zurück zum Zitat McGraw, G., Michael, C., & Schatz, M. (2001). Generating software test data by evolution. IEEE Transactions on Software Engineering, 27(12). McGraw, G., Michael, C., & Schatz, M. (2001). Generating software test data by evolution. IEEE Transactions on Software Engineering, 27(12).
Zurück zum Zitat McMinn, P. (2004). Search-based software test data generation: A survey. Software Testing, Verification and Reliability, 14(2), 105–156.CrossRef McMinn, P. (2004). Search-based software test data generation: A survey. Software Testing, Verification and Reliability, 14(2), 105–156.CrossRef
Zurück zum Zitat McMinn, P., Binkley, D., & Harman, M. (2009). Empirical evaluation of a nesting testability transformation for evolutionary testing. ACM Transactions on Software Engineering and Methodology (in press). McMinn, P., Binkley, D., & Harman, M. (2009). Empirical evaluation of a nesting testability transformation for evolutionary testing. ACM Transactions on Software Engineering and Methodology (in press).
Zurück zum Zitat McMinn, P., Binkley, D., Harman, M., & Tonella, P. (2006). The species per path approach to searchbased test data generation. In Proceedings of the international symposium on software testing and analysis (ISSTA 2006) Portland, ME, USA, July 17–20 2006 (pp. 13–24). McMinn, P., Binkley, D., Harman, M., & Tonella, P. (2006). The species per path approach to searchbased test data generation. In Proceedings of the international symposium on software testing and analysis (ISSTA 2006) Portland, ME, USA, July 17–20 2006 (pp. 13–24).
Zurück zum Zitat Michael, C., McGraw, G., Schatz, M., & Walton, C. (1997). Genetic algorithms for dynamic test data generation: Technical report rstr-003-97-11, RST Corporation, Suite 250, 21515 Ridgetop Circle, Sterling VA 20166. Michael, C., McGraw, G., Schatz, M., & Walton, C. (1997). Genetic algorithms for dynamic test data generation: Technical report rstr-003-97-11, RST Corporation, Suite 250, 21515 Ridgetop Circle, Sterling VA 20166.
Zurück zum Zitat Miller, J., Reformat, M., & Zhang, H. (2006). Automatic test data generation using genetic algorithm and program dependence graphs. Information and Software Technology, 48(7), 586–605.CrossRef Miller, J., Reformat, M., & Zhang, H. (2006). Automatic test data generation using genetic algorithm and program dependence graphs. Information and Software Technology, 48(7), 586–605.CrossRef
Zurück zum Zitat Offutt, J., & Hayes, J. (1996). A semantic model of program faults. In: International symposium on software testing and analysis (ISSTA96), pp. 195–200. Offutt, J., & Hayes, J. (1996). A semantic model of program faults. In: International symposium on software testing and analysis (ISSTA96), pp. 195–200.
Zurück zum Zitat Pargas, R., Harrold, M., & Peck, R. (1999). Test-data generation using genetic algorithms. Software Testing, Verification and Reliability, 9(4), 263–282.CrossRef Pargas, R., Harrold, M., & Peck, R. (1999). Test-data generation using genetic algorithms. Software Testing, Verification and Reliability, 9(4), 263–282.CrossRef
Zurück zum Zitat Tracey, N., Clark, J., & Mander, K. (1998). Automated program flaw finding using simulated annealing. Software Engineering Notes, 23(2), 73–81.CrossRef Tracey, N., Clark, J., & Mander, K. (1998). Automated program flaw finding using simulated annealing. Software Engineering Notes, 23(2), 73–81.CrossRef
Zurück zum Zitat Wegener, J., Baresel, A., & Sthamer, H. (2001). Evolutionary test environment for automatic structural testing. Information and Software Technology, 43(14), 41–54.CrossRef Wegener, J., Baresel, A., & Sthamer, H. (2001). Evolutionary test environment for automatic structural testing. Information and Software Technology, 43(14), 41–54.CrossRef
Zurück zum Zitat Wegener, J., et al. (1996). Systematic testing of real-time systems. In Proceedings of the 4th European conference on software testing analysis and review (EuroStar 1996), Amsterdam, Netherlands. Wegener, J., et al. (1996). Systematic testing of real-time systems. In Proceedings of the 4th European conference on software testing analysis and review (EuroStar 1996), Amsterdam, Netherlands.
Zurück zum Zitat Wegener, J., Pitschinz, R., & Sthmar, H. (2000). Automated testing of real-time tasks. In Proceedings of the 1st international workshop on automated program analysis, testing and verification, Limerick, Ireland. Wegener, J., Pitschinz, R., & Sthmar, H. (2000). Automated testing of real-time tasks. In Proceedings of the 1st international workshop on automated program analysis, testing and verification, Limerick, Ireland.
Zurück zum Zitat Whitley, D. (1989). The genitor algorithm and selective pressure: Why rank-based allocation of reproductive trials is best. In Proceedings of the third international conference on genetic algorithms (ICGA-89) (pp. 116–121). Whitley, D. (1989). The genitor algorithm and selective pressure: Why rank-based allocation of reproductive trials is best. In Proceedings of the third international conference on genetic algorithms (ICGA-89) (pp. 116–121).
Zurück zum Zitat Whitley, D. (2001). An overview of evolutionary algorithms: Practical issues and common pitfalls. Information and Software Technology, 43, 817–831.CrossRef Whitley, D. (2001). An overview of evolutionary algorithms: Practical issues and common pitfalls. Information and Software Technology, 43, 817–831.CrossRef
Zurück zum Zitat Yoo, S., Harman, M., & Ur, S. (2009). Measuring and improving latency to avoid test suite wear out. In IEEE international conference on software testing, verification, and validation workshops (pp. 101–110). Yoo, S., Harman, M., & Ur, S. (2009). Measuring and improving latency to avoid test suite wear out. In IEEE international conference on software testing, verification, and validation workshops (pp. 101–110).
Metadaten
Titel
A multiple-population genetic algorithm for branch coverage test data generation
verfasst von
Mohammad Alshraideh
Basel A. Mahafzah
Saleh Al-Sharaeh
Publikationsdatum
01.09.2011
Verlag
Springer US
Erschienen in
Software Quality Journal / Ausgabe 3/2011
Print ISSN: 0963-9314
Elektronische ISSN: 1573-1367
DOI
https://doi.org/10.1007/s11219-010-9117-4

Weitere Artikel der Ausgabe 3/2011

Software Quality Journal 3/2011 Zur Ausgabe

EditorialNotes

In this issue

Premium Partner