To ensure the quality of software systems, software engineers can make use of a variety of quality assurance approaches, such as software testing, modern code review, automated static analysis, and build automation. Each of these quality assurance practices has been studied in depth in isolation, but there is a clear knowledge gap when it comes to our understanding of how these approaches are being used in conjunction or not. In our study, we broadly investigate whether and how these quality assurance approaches are being used in conjunction in the development of 1,454 popular open source software projects on GitHub. Our study indicates that typically projects do not follow all quality assurance practices together with high intensity. In fact, we only observe weak correlation among some quality assurance practices. In general, our study provides a deeper understanding of how existing quality assurance approaches are currently being used in Java-based open source software development. Besides, we specifically zoomed in on the more mature projects in our dataset, and generally, we observe that more mature projects are more intense in their application of the quality assurance practices, with more focus on their ASAT usage and code reviewing, but no strong change in their CI usage.
翻译:为确保软件系统的质量,软件工程师可以使用多种质量保证方法,例如软件测试、现代代码审查、自动化静态分析和构建自动化。这些质量保证实践各自已被深入研究,但关于这些方法是否以及如何被结合使用,目前仍存在明显的知识空白。在我们的研究中,我们广泛调查了GitHub上1,454个热门开源软件项目是否以及如何使用这些质量保证方法。研究结果表明,项目通常不会以高强度同时遵循所有质量保证实践。事实上,我们仅观察到某些质量保证实践之间存在弱相关性。总体而言,我们的研究加深了对当前Java开源软件开发中现有质量保证方法使用情况的理解。此外,我们特别关注了数据集中较为成熟的项目,并普遍观察到这些项目在应用质量保证实践时强度更高,更侧重于ASAT使用和代码审查,但CI使用方面没有显著变化。