  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.
