REDUNET: reducing test suites by integrating set cover and network-based optimization
Abstract The availability of effective test suites is critical for the development and maintenance of reliable software systems. To increase test effectiveness, software developers tend to employ larger and larger test suites. The recent availability of software tools for automatic test generation m...
Main Authors: | , , |
---|---|
Format: | Article |
Language: | English |
Published: |
SpringerOpen
2020-11-01
|
Series: | Applied Network Science |
Subjects: | |
Online Access: | http://link.springer.com/article/10.1007/s41109-020-00323-w |
_version_ | 1818173179732951040 |
---|---|
author | Misael Mongiovì Andrea Fornaia Emiliano Tramontana |
author_facet | Misael Mongiovì Andrea Fornaia Emiliano Tramontana |
author_sort | Misael Mongiovì |
collection | DOAJ |
description | Abstract The availability of effective test suites is critical for the development and maintenance of reliable software systems. To increase test effectiveness, software developers tend to employ larger and larger test suites. The recent availability of software tools for automatic test generation makes building large test suites affordable, therefore contributing to accelerating this trend. However, large test suites, though more effective, are resources and time consuming and therefore cannot be executed frequently. Reducing them without decreasing code coverage is a needed compromise between efficiency and effectiveness of the test, hence enabling a more regular check of the software under development. We propose a novel approach, namely REDUNET, to reduce a test suite while keeping the same code coverage. We integrate this approach in a complete framework for the automatic generation of efficient and effective test suites, which includes test suite generation, code coverage analysis, and test suite reduction. Our approach formulates the test suite reduction as a set cover problem and applies integer linear programming and a network-based optimisation, which takes advantage of the properties of the control flow graph. We find the optimal set of test cases that keeps the same code coverage in fractions of seconds on real software projects and test suites generated automatically by Randoop. The results on ten real software systems show that the proposed approach finds the optimal minimisation and achieves up to 90% reduction and more than 50% reduction on all systems under analysis. On the largest project our reduction algorithm performs more than three times faster than both integer linear programming alone and the state-of-the-art heuristic Harrold Gupta Soffa. |
first_indexed | 2024-12-11T19:24:24Z |
format | Article |
id | doaj.art-6001b29f3ee947cf839a54bb786fa3b1 |
institution | Directory Open Access Journal |
issn | 2364-8228 |
language | English |
last_indexed | 2024-12-11T19:24:24Z |
publishDate | 2020-11-01 |
publisher | SpringerOpen |
record_format | Article |
series | Applied Network Science |
spelling | doaj.art-6001b29f3ee947cf839a54bb786fa3b12022-12-22T00:53:27ZengSpringerOpenApplied Network Science2364-82282020-11-015112110.1007/s41109-020-00323-wREDUNET: reducing test suites by integrating set cover and network-based optimizationMisael Mongiovì0Andrea Fornaia1Emiliano Tramontana2ISTC CNRDipartimento di Matematica e Informatica, University of CataniaDipartimento di Matematica e Informatica, University of CataniaAbstract The availability of effective test suites is critical for the development and maintenance of reliable software systems. To increase test effectiveness, software developers tend to employ larger and larger test suites. The recent availability of software tools for automatic test generation makes building large test suites affordable, therefore contributing to accelerating this trend. However, large test suites, though more effective, are resources and time consuming and therefore cannot be executed frequently. Reducing them without decreasing code coverage is a needed compromise between efficiency and effectiveness of the test, hence enabling a more regular check of the software under development. We propose a novel approach, namely REDUNET, to reduce a test suite while keeping the same code coverage. We integrate this approach in a complete framework for the automatic generation of efficient and effective test suites, which includes test suite generation, code coverage analysis, and test suite reduction. Our approach formulates the test suite reduction as a set cover problem and applies integer linear programming and a network-based optimisation, which takes advantage of the properties of the control flow graph. We find the optimal set of test cases that keeps the same code coverage in fractions of seconds on real software projects and test suites generated automatically by Randoop. The results on ten real software systems show that the proposed approach finds the optimal minimisation and achieves up to 90% reduction and more than 50% reduction on all systems under analysis. On the largest project our reduction algorithm performs more than three times faster than both integer linear programming alone and the state-of-the-art heuristic Harrold Gupta Soffa.http://link.springer.com/article/10.1007/s41109-020-00323-wTest suite reductionStatic analysisGraph analysisNetwork analysis |
spellingShingle | Misael Mongiovì Andrea Fornaia Emiliano Tramontana REDUNET: reducing test suites by integrating set cover and network-based optimization Applied Network Science Test suite reduction Static analysis Graph analysis Network analysis |
title | REDUNET: reducing test suites by integrating set cover and network-based optimization |
title_full | REDUNET: reducing test suites by integrating set cover and network-based optimization |
title_fullStr | REDUNET: reducing test suites by integrating set cover and network-based optimization |
title_full_unstemmed | REDUNET: reducing test suites by integrating set cover and network-based optimization |
title_short | REDUNET: reducing test suites by integrating set cover and network-based optimization |
title_sort | redunet reducing test suites by integrating set cover and network based optimization |
topic | Test suite reduction Static analysis Graph analysis Network analysis |
url | http://link.springer.com/article/10.1007/s41109-020-00323-w |
work_keys_str_mv | AT misaelmongiovi redunetreducingtestsuitesbyintegratingsetcoverandnetworkbasedoptimization AT andreafornaia redunetreducingtestsuitesbyintegratingsetcoverandnetworkbasedoptimization AT emilianotramontana redunetreducingtestsuitesbyintegratingsetcoverandnetworkbasedoptimization |