Static Analysis and Code Complexity Metrics as Early Indicators of Software Defects
- 1 Daimler AG, Boeblingen, Germany
- 2 Daimler AG, Boeblingen, Germany
- 3 Karlsruhe Institute of Technology, Karlsruhe, Germany
Abstract
Software is an important part of automotive product development, and it is commonly known that software quality assurance consumes considerable effort in safety-critical embedded software development. Increasing the effectiveness and efficiency of this effort thus becomes more and more important. Identifying problematic code areas which are most likely to fail and therefore require most of the quality assurance attention is required. This article presents an exploratory study investigating whether the faults detected by static analysis tools combined with code complexity metrics can be used as software quality indicators and to build pre-release fault prediction models. The combination of code complexity metrics with static analysis fault density was used to predict the pre-release fault density with an accuracy of 78.3%. This combination was also used to separate high and low quality components with a classification accuracy of 79%.
- Rana, R., Staron, M., Hansson, J. and Nilsson, M. (2014) Defect Prediction over Software Life Cycle in Automotive Domain State of the Art and Road Map for Future. 9th International Conference on Software Engineering and Applications, Vienna, 29-31 August 2014, 377-382.
- Haghighatkhah, A., Oivo, M., Banijamali, A. and Kuvaja, P. (2017) Improving the State of Automotive Software Engineering. IEEE Software, 34, 82-86. https://doi.org/10.1109/MS.2017.3571571
- Singh, P., Pal, N.R., Verma, S. and Vyas, O.P. (2017) Fuzzy Rule-Based Approach for Software Fault Prediction. IEEE Transactions on Systems, Man, and Cybernetics: Systems, 47, 826-837.
- Nagappan, N., Ball, T. and Zeller, A. (2006) Mining Metrics to Predict Component Failures. Proceedings of the 28th International Conference on Software Engineering, Shanghai, 20-28 May 2006, 452-461.
- Briand, L.C., Wüst, J., Ikonomovski, S.V. and Lounis, H. (1999) Investigating Quality Factors in Object-Oriented Designs: An Industrial Case Study. Proceedings of the 21st International Conference on Software Engineering in ICSE 99, Los Angeles, 22 May 1999, 345-354.
- Madureira, J.S., Barroso, A.S., do Nascimento, R.P.C. and Soares, M.S. (2017) An Experiment to Evaluate Software Development Teams by Using Object-Oriented Metrics. In: Gervasi, O., Murgante, B., Misra, S., Borruso, G., Torre, C.M., Rocha, A.M., Taniar, D., Apduhan, B.O., Stankova, E. and Cuzzocrea, A., Eds., Computational Science and Its Applications, Springer International Publishing, Cham, 128-144.
- Subramanyam, R. and Krishnan, M.S. (2003) Empirical Analysis of CK Metrics for Object-Oriented Design Complexity: Implications for Software Defects. IEEE Transactions on Software Engineering, 29, 297-310.
- Tang, M.-H., Kao, M.-H. and Chen, M.-H. (1999) An Empirical Study on Object-Oriented Metrics. Proceedings of the 6th International Symposium on Software Metrics, Boca Raton, 4-6 November 1999, 242-249.
- Feist, J., Mounier, L., Bardin, S., David, R. and Potet, M.-L. (2016) Finding the Needle in the Heap: Combining Static Analysis and Dynamic Symbolic Execution to Trigger Use-after-Free. Proceedings of the 6th Workshop on Software Security, Protection, and Reverse Engineering in SSPREW 16, Los Angeles, 5-6 December 2016, 1-12. https://doi.org/10.1145/3015135.3015137
- Avgerinos, T., Rebert, A. and Brumley, D. (2017) Methods and Systems for Automatically Testing Software. US Patent No. 9619375.