On the Relationship between Preprocessor-Based Software Variability and Software Defects

The importance of the relationship between the software variability and defect proneness of software modules is well recognized. The utilization of variability can strengthen the software versatile, but as the software variability increases, the software complexity can increase correspondingly. Most variability realization techniques are based on configuration, and that the variability realization code correlate with one configuration options may scatter across many software modules, which could easily induce defect and lead to dead code. This paper analyzes the preprocessor based realization of the variability, series of variability metrics are defined and the variability from different granulites is analyzed to verify whether the high variability can cause high defect. Experimental result shows that the software variability and the defect have statistically significant relationship.