Structural coverage of feasible code

  • Authors:
  • Mauro Baluda;Pietro Braione;Giovanni Denaro;Mauro Pezzè

  • Affiliations:
  • University of Lugano, Lugano, Switzerland;University of Milano-Bicocca, Milano, Italy;University of Milano-Bicocca, Milano, Italy;University of Lugano, Lugano, Switzerland and University of Milano-Bicocca, Milano, Italy

  • Venue:
  • Proceedings of the 5th Workshop on Automation of Software Test
  • Year:
  • 2010

Quantified Score

Hi-index 0.02

Visualization

Abstract

Infeasible execution paths reduce the precision of structural testing coverage and limit the industrial applicability of structural testing criteria. In this paper, we propose a technique that combines static and dynamic analysis approaches to identify infeasible program elements that can be eliminated from the computation of structural coverage to obtain accurate coverage data. The main novelty of the approach stems from its ability to identify a relevant number of infeasible elements, that is, elements that belong statically to the code, but cannot be executed under any input condition. The technique can also generate new test cases that execute uncovered elements, thus increasing the structural coverage of the program. The experimental results obtained on a prototype implementation for computing accurate branch coverage and reported in this paper indicate that the technique can effectively improve structural coverage measurements and can thus increase the industrial applicability of complex structural coverage criteria.