We take up the questions of if and how “structured goto” statements impact defect proneness, and of which what concept of size yields a superior metric for defect prediction.
We count goto-like unstructured jumps, alongside method size and compressed method size, as software engineering metrics, and examine the evolution of 26 open-source code corpora in relation to those metrics. We employ five different measures of defectiveness and development effort. We measure the statistical quality of our metrics as predictors of our defect measurements.
We show that the number of unstructured jumps is a predictor of defects, routine maintenance and two other metrics of software development effort. The correlation between unstructured jumps and development effort is positive, and it remains so even after accounting for the effect of code size. We also show that the number of unstructured jumps is superior to code size, both compressed and uncompressed, in its predictive power of accumulated defects.
Recommended citation: Sennesh, E., & Gil, Y. (2016). Structured gotos are (slightly) harmful. In Proceedings of the 31st Annual ACM Symposium on Applied Computing (pp. 1784–1789).