Abstract
In the development of open-source software (OSS), many developers use badges to give an overview of the software and share some key features/metrics conveniently. Among various badges, quality assurance (QA) badges make up a large proportion and are the most prevalent because QA is of vital importance in software development, and ineffective QA may lead to anomalies or defects. In this paper, we focus on QA badges in open-source projects, which present quality assurance information directly and instantly, and aim to produce some interesting findings and provide practical implications. We collect and analyze 100000 projects written in popular programming languages from GitHub and conduct a comprehensive empirical study both inside and outside QA badges. Inside QA badges, we build a category classification for all QA badges based on the properties they focus on, which shows the types of QA badges developers use. Then, we analyze the frequency of the properties that QA badges focus on, and property combinations, too, which present their use status. We find that QA badges focus on various properties while developers give different preferences to different properties. The use status also differs between different programming languages. For example, projects written in C focus on Security to a great extent. Our findings also provide implications for developers and badge providers. Outside QA badges, we conduct a correlation analysis between QA badges and some software metrics that have potential relationships with code quality, contribution quality, and popularity. We find that QA badges have statistically significant correlations with various software metrics.
References
Zhao L, Elbaum S. Quality assurance under the open source development model. J Syst Softw, 2003, 66: 65–75
Ma L, Xu F J F, Xue M, et al. Secure deep learning engineering: a software quality assurance perspective. 2018. ArXiv:1810.04538
Bahamdain S S. Open source software (OSS) quality assurance: a survey paper. Procedia Comput Sci, 2015, 56: 459–464
Trockman A, Zhou S, Kästner C, et al. Adding sparkle to social coding: an empirical study of repository badges in the npm ecosystem. In: Proceedings of the 40th International Conference on Software Engineering, 2018. 511–522
Walkinshaw N. Software Quality Assurance. Berlin: Springer, 2017
Laporte C Y, April A. Software Quality Assurance. Hoboken: John Wiley & Sons, 2018
Perera P, Silva R, Perera I. Improve software quality through practicing devops. In: Proceedings of the 17th International Conference on Advances in ICT for Emerging Regions (ICTer), 2017. 1–6
Basu A. Software Quality Assurance, Testing and Metrics. New Delhi: PHI Learning Pvt. Ltd., 2015
Wong W E. Special section on software quality assurance: research and practice. IEEE Trans Rel, 2016, 65: 3
Legay D, Decan A, Mens T. On the usage of badges in open source packages on GitHub. In: Proceedings of the 18th Belgium-Netherlands Software Evolution Workshop, Brussels, 2019
Parsons V L. Stratified Sampling. Hoboken: John Wiley & Sons, 2014
Avelino G, Constantinou E, Valente M T, et al. On the abandonment and survival of open source projects: an empirical investigation. In: Proceedings of ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM), 2019. 1–12
Steinmacher I, Pinto G, Wiese I S, et al. Almost there: a study on quasi-contributors in open-source software projects. In: Proceedings of the 40th International Conference on Software Engineering (ICSE), 2018. 256–266
Seaman C B. Qualitative methods in empirical studies of software engineering. IEEE Trans Softw Eng, 1999, 25: 557–572
Landis J R, Koch G G. The measurement of observer agreement for categorical data. Biometrics, 1977, 33: 159
Zhang J M, Li F, Hao D, et al. A study of bug resolution characteristics in popular programming languages. IEEE Trans Softw Eng, 2021, 47: 2684–2697
Berger E D, Hollenbeck C, Maj P, et al. On the impact of programming languages on code quality. ACM Trans Program Lang Syst, 2019, 41: 1–24
Borges H, Valente M T. What’s in a GitHub star? Understanding repository starring practices in a social coding platform. J Syst Softw, 2018, 146: 112–129
Ortu M, Marchesi M, Tonelli R. Empirical analysis of affect of merged issues on GitHub. In: Proceedings of the 4th International Workshop on Emotion Awareness in Software Engineering (SEmotion), 2019. 46–48
Ray B, Posnett D, Filkov V, et al. A large scale study of programming languages and code quality in GitHub. In: Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering, 2014. 155–165
ISO Central Secretary. Systems and software engineering — systems and software quality requirements and evaluation (square) — system and software quality models. Standard ISO/IEC 25010:2011. https://www.iso.org/standard/35733.html
Fischer-Nielsen A, Fu Z, Su T, et al. The forgotten case of the dependency bugs: on the example of the robot operating system. In: Proceedings of the 42nd International Conference on Software Engineering: Software Engineering in Practice (ICSE-SEIP), 2020. 21–30
Asadollah S A, Sundmark D, Eldh S, et al. Concurrency bugs in open source software: a case study. J Int Serv Appl, 2017, 8: 4
Jin G, Song L, Shi X, et al. Understanding and detecting real-world performance bugs. SIGPLAN Not, 2012, 47: 77–88
Chilenski J J, Miller S P. Applicability of modified condition/decision coverage to software testing. Softw Eng J UK, 1994, 9: 193–200
Zhao Y, Feng Y, Wang Y, et al. Quality assessment of crowdsourced test cases. Sci China Inf Sci, 2020, 63: 190102
Stasinopoulos D M, Rigby R A. Generalized additive models for location scale and shape (GAMLSS) in R. J Stat Soft, 2007, 23: 1–46
Hastie T J, Tibshirani R J. Generalized additive models. Routledge, 2017. https://onlinelibrary.wiley.com/doi/pdf/10.1002/9781118445112.stat03141
Mansfield E R, Helms B P. Detecting multicollinearity. Am Statist, 1982, 36: 158–160
Liu W, Chen B, Peng X, et al. Identifying change patterns of API misuses from code changes. Sci China Inf Sci, 2021, 64: 132101
Rai A, Song H, Troutt M. Software quality assurance: an analytical survey and research prioritization. J Syst Softw, 1998, 40: 67–83
Holck J, Jørgensen N. Continuous integration and quality assurance: a case study of two open source projects. Australas J Inform Syst, 2003, 11: 1
Khanjani A, Sulaiman R. The process of quality assurance under open source software development. In: Proceedings of IEEE Symposium on Computers and Informatics, 2011. 548–552
Axelsson J, Skoglund M. Quality assurance in software ecosystems: a systematic literature mapping and research agenda. J Syst Softw, 2016, 114: 69–81
Hassan M U, Mubashir M, Shabir M A, et al. Software quality assurance techniques: a review. Int J Inform Bus Manag, 2018, 10: 214–221
Felderer M, Ramler R. Quality assurance for AI-based systems: overview and challenges (introduction to interactive session). In: Proceedings of International Conference on Software Quality, 2021. 33–42
Bird C, Gourley A, Devanbu P, et al. Mining email social networks. In: Proceedings of International Workshop on Mining Software Repositories, 2006. 137–143
Guzzi A, Bacchelli A, Lanza M, et al. Communication in open source software development mailing lists. In: Proceedings of the 10th Working Conference on Mining Software Repositories (MSR), 2013. 277–286
Joblin M, Apel S, Hunsen C, et al. Classifying developers into core and peripheral: an empirical study on count and network metrics. In: Proceedings of the 39th International Conference on Software Engineering (ICSE), 2017. 164–174
Singer L, Filho F F, Storey M A. Software engineering at the speed of light: how developers stay current using twitter. In: Proceedings of the 36th International Conference on Software Engineering, 2014. 211–221
Bogart C, Kästner C, Herbsleb J, et al. How to break an API: cost negotiation and community values in three software ecosystems. In: Proceedings of the 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering, 2016. 109–120
Decan A, Mens T, Claes M. An empirical comparison of dependency issues in OSS packaging ecosystems. In: Proceedings of the 24th International Conference on Software Analysis, Evolution and Reengineering (SANER), 2017. 2–12
Raemaekers S, van Deursen A, Visser J. Semantic versioning versus breaking changes: a study of the maven repository. In: Proceedings of the 14th International Working Conference on Source Code Analysis and Manipulation, 2014. 215–224
Bavota G, Canfora G, Di Penta M, et al. How the Apache community upgrades dependencies: an evolutionary study. Empir Softw Eng, 2015, 20: 1275–1317
Cox J, Bouwers E, van Eekelen M, et al. Measuring dependency freshness in software systems. In: Proceedings of the 37th IEEE International Conference on Software Engineering, 2015. 109–118
Kula R G, German D M, Ouni A, et al. Do developers update their library dependencies? Empir Softw Eng, 2018, 23: 384–417
Mirhosseini S, Parnin C. Can automated pull requests encourage software developers to upgrade out-of-date dependencies? In: Proceedings of the 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE), 2017. 84–94
Zampetti F, Scalabrino S, Oliveto R, et al. How open source projects use static code analysis tools in continuous integration pipelines. In: Proceedings of the 14th International Conference on Mining Software Repositories (MSR), 2017. 334–344
Hilton M, Tunnell T, Huang K, et al. Usage, costs, and benefits of continuous integration in open-source projects. In: Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering (ASE), 2016. 426–437
Vasilescu B, Yu Y, Wang H, et al. Quality and productivity outcomes relating to continuous integration in GitHub. In: Proceedings of the 10th Joint Meeting on Foundations of Software Engineering, 2015. 805–816
Zhao Y, Serebrenik A, Zhou Y, et al. The impact of continuous integration on other software development practices: a large-scale empirical study. In: Proceedings of the 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE), 2017. 60–71
Acknowledgements
This work was partly supported by National Natural Science Foundation of China (Grant No. 61872008).
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Li, F., Lou, Y., Tan, X. et al. What can we learn from quality assurance badges in open-source software?. Sci. China Inf. Sci. 67, 142103 (2024). https://doi.org/10.1007/s11432-022-3611-3
Received:
Revised:
Accepted:
Published:
DOI: https://doi.org/10.1007/s11432-022-3611-3