ABSTRACT
Open-source software (OSS) projects rely on core and peripheral developers to develop, release, and maintain software. The former group plays a crucial role in initiating the project and making key decisions, while the latter contributes less frequently and has little decision-making power. Prior studies have explored the relationship between developer experience and test code quality. However, there is limited empirical evidence regarding the survivability of test smells during software evolution and maintenance. In this study, we investigate the relationship between developers’ experience and the survivability of test smells during test case refactorings in OSS projects. We empirically studied four OSS Java projects, in which we identified test smells using manual and automated approaches and analyzed the authorship of the insertion and removal of test smells. Our findings reveal that test smells are commonly inserted during class creation, and 10.39% of them are removed between 366 and 2,911 days. While peripheral developers remove more test smells, core developers remove different types of test smells.
- Pekka Abrahamsson, Outi Salo, Jussi Ronkainen, and Juhani Warsta. 2017. Agile software development methods: Review and analysis. CoRR abs/1709.08439, 112 (2017), 9–112. https://doi.org/10.48550/arXiv.1709.08439Google ScholarCross Ref
- Wajdi Aljedaani, Anthony Peruma, Ahmed Aljohani, Mazen Alotaibi, Mohamed Wiem Mkaouer, Ali Ouni, Christian D. Newman, Abdullatif Ghallab, and Stephanie Ludi. 2021. Test Smell Detection Tools: A Systematic Mapping Study. In Evaluation and Assessment in Software Engineering (EASE). ACM, Trondheim, Norway, 170–180. https://doi.org/10.1145/3463274.3463335Google ScholarDigital Library
- Eman Abdullah AlOmar, Anthony Peruma, Mohamed Wiem Mkaouer, Christian D Newman, and Ali Ouni. 2021. Behind the Scenes: On the Relationship Between Developer Experience and Refactoring. CoRR abs/2109.11089, 28 (2021), 1–28. https://doi.org/10.1002/smr.2395Google ScholarDigital Library
- Eman Abdullah AlOmar, Anthony Peruma, Christian D. Newman, Mohamed Wiem Mkaouer, and Ali Ouni. 2020. On the Relationship Between Developer Experience and Refactoring: An Exploratory Study and Preliminary Results. In Proceedings of the IEEE/ACM 42nd International Conference on Software Engineering Workshops (Seoul, Republic of Korea) (ICSEW’20). Association for Computing Machinery, New York, NY, USA, 342–349. https://doi.org/10.1145/3387940.3392193Google ScholarDigital Library
- Amiangshu Bosu and Jeffrey C. Carver. 2014. Impact of Developer Reputation on Code Review Outcomes in OSS Projects: An Empirical Investigation. In Proceedings of the 8th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (Torino, Italy) (ESEM ’14). Association for Computing Machinery, New York, NY, USA, Article 33, 10 pages. https://doi.org/10.1145/2652524.2652544Google ScholarDigital Library
- Fabio Calefato, Marco Aurelio Gerosa, Giuseppe Iaffaldano, Filippo Lanubile, and Igor Steinmacher. 2022. Will you come back to contribute? Investigating the inactivity of OSS core developers in GitHub. Empirical Software Engineering 27, 3 (2022), 1–41. https://doi.org/10.1007/s10664-021-10012-6Google ScholarDigital Library
- Denivan Campos, Luana Martins, Carla Bezerra, and Ivan Machado. 2023. Dataset. 0 0, 1 (8 2023), 1. https://doi.org/10.6084/m9.figshare.23614899.v1Google ScholarCross Ref
- Edna Dias Canedo, Rodrigo Bonifácio, Márcio Vinicius Okimoto, Alexander Serebrenik, Gustavo Pinto, and Eduardo Monteiro. 2020. Work practices and perceptions from women core developers in oss communities. In Proceedings of the 14th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM). ACM, Bari, Italy, 1–11. https://doi.org/10.1145/3382494.3410682Google ScholarDigital Library
- K. Crowston, Kangning Wei, Qing Li, and J. Howison. 2006. Core and Periphery in Free/Libre and Open Source Software Team Communications. In Proceedings of the 39th Annual Hawaii International Conference on System Sciences (HICSS’06), Vol. 6. IEEE, Kauai, HI, USA, 118a–118a. https://doi.org/10.1109/HICSS.2006.101Google ScholarDigital Library
- Ozren Dabic, Emad Aghajani, and Gabriele Bavota. 2021. Sampling Projects in GitHub for MSR Studies. In IEEE/ACM 18th International Conference on Mining Software Repositories (MSR). IEEE, Association for Computing Machinery, Madrid, Spain, 560–564. https://doi.org/10.1109/MSR52588.2021Google ScholarCross Ref
- Arie Deursen, Leon M.F. Moonen, A. Bergh, and Gerard Kok. 2001. Refactoring Test Code. Technical Report. CWI (Centre for Mathematics and Computer Science), NLD.Google Scholar
- Rob Ewaschuk and Betsy Beyer. 2016. Monitoring Distributed Systems Case Studies from Google’s SRE Teams. O’Reilly, USA, Chapter 1, 1–22. https://landing.google.com/sre/book.htmlGoogle Scholar
- Martin Fowler. 1999. Refactoring: Improving the Design of Existing Code (Object Technology Series). Addison-Wesley Longman, Amsterdam.Google Scholar
- Vahid Garousi and Barış Küçük. 2018. Smells in software test code: A survey of knowledge in industry and academia. Journal of Systems and Software 138 (2018), 52–81. https://doi.org/10.1016/j.jss.2017.12.013Google ScholarCross Ref
- Ivar Jacobson, Harold "Bud" Lawson, Pan-Wei Ng, Paul E. McMahon, and Michael Goedicke. 2019. The Essentials of Modern Software Engineering: Free the Practices from the Method Prisons!Association for Computing Machinery and Morgan & Claypool, New York, NY, USA. https://doi.org/10.1145/3277669Google ScholarDigital Library
- Mitchell Joblin, Sven Apel, Claus Hunsen, and Wolfgang Mauerer. 2017. 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 ’17). IEEE Press, Buenos Aires, Argentina, 164–174. https://doi.org/10.1109/ICSE.2017.23Google ScholarDigital Library
- Reiner Jung, Lukas Märtin, Jan Ole Johanssen, Barbara Paech, Malte Lochau, Thomas Thüm, Kurt Schneider, Matthias Tichy, and Mattias Ulbrich. 2019. Addressed Challenges. Springer International Publishing, Cham, 21–36. https://doi.org/10.1007/978-3-030-13499-0_3Google ScholarCross Ref
- Nildo Silva Junior, Larissa Rocha Soares, Luana Almeida Martins, and Ivan Machado. 2020. A survey on test practitioners’ awareness of test smells, In Iberoamerican Conference on Software Engineering. CoRR abs/2003.05613. https://doi.org/10.48550/arXiv.2003.05613Google ScholarCross Ref
- Dong Jae Kim, Tse-Hsun Peter Chen, and Jinqiu Yang. 2021. The secret life of test smells-an empirical study on test smell evolution and maintenance. Empirical Software Engineering 26, 5 (2021), 1–47. https://doi.org/10.1007/s10664-021-09969-1Google ScholarDigital Library
- Amanda Lee and Jeffrey C. Carver. 2017. Are One-Time Contributors Different? A Comparison to Core and Periphery Developers in FLOSS Repositories. In Proceedings of the 11th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement(ESEM ’17). IEEE Press, Markham, Ontario, Canada, 1–10. https://doi.org/10.1109/ESEM.2017.7Google ScholarDigital Library
- Michael R. Lyu (Ed.). 1996. Handbook of Software Reliability Engineering. McGraw-Hill, Inc., USA. https://doi.org/10.1002/(SICI)1099-1689(199703)7:1<59::AID-STVR126>3.0.CO;2-5Google ScholarCross Ref
- Robert Marsh, Sana Belguith, and Tooska Dargahi. 2019. IoT Database Forensics: An Investigation on HarperDB Security. In Proceedings of the 3rd International Conference on Future Networks and Distributed Systems (Paris, France) (ICFNDS ’19). Association for Computing Machinery, New York, NY, USA, 3:1–3:7. https://doi.org/10.1145/3341325.3341993Google ScholarDigital Library
- Mandeep Mehta. 2021. Date Functions. In Microsoft Excel Functions Quick Reference. Springer, New York, NY, USA, 31–51. https://doi.org/10.1007/978-1-4842-6613-7Google ScholarCross Ref
- Tom Mens. 2008. Introduction and Roadmap: History and Challenges of Software Evolution. Springer Berlin Heidelberg, Berlin, Heidelberg, 1–11. https://doi.org/10.1007/978-3-540-76440-3_1Google ScholarCross Ref
- Audris Mockus, Roy T. Fielding, and James D. Herbsleb. 2002. Two Case Studies of Open Source Software Development: Apache and Mozilla. ACM Trans. Softw. Eng. Methodol. 11, 3 (jul 2002), 309–346. https://doi.org/10.1145/567793.567795Google ScholarDigital Library
- Kumiyo Nakakoji, Yasuhiro Yamamoto, Yoshiyuki Nishinaka, Kouichi Kishida, and Yunwen Ye. 2002. Evolution patterns of open-source software systems and communities. In Proceedings of the international workshop on Principles of software evolution. ACM, Orlando, Florida, USA, 76–85. https://doi.org/10.1145/512035.512055Google ScholarDigital Library
- Annibale Panichella, Sebastiano Panichella, Gordon Fraser, Anand Ashok Sawant, and Vincent J Hellendoorn. 2022. Test Smells 20 Years Later: Detectability, Validity, and Reliability. Empirical Software Engineering 27, 7 (2022), 170. https://doi.org/10.1007/s10664-022-10207-5Google ScholarDigital Library
- Anthony Peruma, Khalid Almalki, Christian D. Newman, Mohamed Wiem Mkaouer, Ali Ouni, and Fabio Palomba. 2019. On the Distribution of Test Smells in Open Source Android Applications: An Exploratory Study. In Proceedings of the 29th Annual International Conference on Computer Science and Software Engineering (Toronto, Ontario, Canada) (CASCON ’19). IBM Corp., USA, 193–202. https://doi.org/10.5555/3370272.3370293Google ScholarDigital Library
- Anthony Peruma, Khalid Almalki, Christian D. Newman, Mohamed Wiem Mkaouer, Ali Ouni, and Fabio Palomba. 2020. TsDetect: An Open Source Test Smells Detection Tool. In Proceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering (Virtual Event, USA) (ESEC/FSE 2020). ACM, New York, NY, USA, 1650–1654. https://doi.org/10.1145/3368089.3417921Google ScholarDigital Library
- G. J. Schick and R. W. Wolverton. 1973. Assessment of Software Reliability. In Vorträge der Jahrestagung 1972 DGOR / Papers of the Annual Meeting 1972, H. Jacob, D. B. Pressmar, H. Todt, and H.-J. Zimmermann (Eds.). Physica-Verlag HD, Heidelberg, 395–422.Google Scholar
- Davide Spadini, Martin Schvarcbacher, Ana-Maria Oprescu, Magiel Bruntink, and Alberto Bacchelli. 2020. Investigating Severity Thresholds for Test Smells. In Proceedings of the 17th International Conference on Mining Software Repositories (Seoul, Republic of Korea) (MSR ’20). Association for Computing Machinery, New York, NY, USA, 311–321. https://doi.org/10.1145/3379597.3387453Google ScholarDigital Library
- Igor Steinmacher, Tayana Uchoa Conte, Christoph Treude, and Marco Aurélio Gerosa. 2016. Overcoming Open Source Project Entry Barriers with a Portal for Newcomers. In Proceedings of the 38th International Conference on Software Engineering (Austin, Texas) (ICSE ’16). Association for Computing Machinery, New York, NY, USA, 273–284. https://doi.org/10.1145/2884781.2884806Google ScholarDigital Library
- Antonio Soares Azevedo Terceiro, Luiz Romário Rios, and Christina Chavez. 2010. An Empirical Study on the Structural Complexity Introduced by Core and Peripheral Developers in Free Software Projects. In 24th Brazilian Symposium on Software Engineering, SBES 2010, Salvador, Bahia, Brazil, September 27 - October 1, 2010. IEEE Computer Society, Salvador, Bahia, 21–29. https://doi.org/10.1109/SBES.2010.26Google ScholarDigital Library
- Michele Tufano, Fabio Palomba, Gabriele Bavota, Massimiliano Di Penta, Rocco Oliveto, Andrea De Lucia, and Denys Poshyvanyk. 2016. An Empirical Investigation into the Nature of Test Smells. In Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering (Singapore, Singapore) (ASE 2016). ACM, New York, NY, USA, 4–15. https://doi.org/10.1145/2970276.2970340Google ScholarDigital Library
- Tássio Virgínio, Luana Martins, Larissa Rocha, Railana Santana, Adriana Cruz, Heitor Costa, and Ivan Machado. 2020. JNose: Java Test Smell Detector. In Proceedings of the 34th Brazilian Symposium on Software Engineering (Natal, Brazil) (SBES ’20). Association for Computing Machinery, New York, NY, USA, 564–569. https://doi.org/10.1145/3422392.3422499Google ScholarDigital Library
- Tássio Virgínio, Luana Almeida Martins, Larissa Rocha Soares, Railana Santana, Heitor Costa, and Ivan Machado. 2020. An Empirical Study of Automatically-Generated Tests from the Perspective of Test Smells. In 34th Brazilian Symposium on Software Engineering (SBES) (Natal, Brazil) (SBES ’20). Association for Computing Machinery, New York, NY, USA, 92–96. https://doi.org/10.1145/3422392.3422412Google ScholarDigital Library
- Tássio Guerreiro Antunes Virgínio and Ivan Machado. 2021. Avaliação empírica da geração automatizada de testes de software sob a perspectiva de Test Smells. In Anais Estendidos do XII Congresso Brasileiro de Software: Teoria e Prática. SBC, Sol, Brasil, 112–126. https://doi.org/10.5753/cbsoft_estendido.2021.17292Google ScholarCross Ref
Index Terms
- Investigating Developers' Contributions to Test Smell Survivability: A Study of Open-Source Projects
Recommendations
An empirical study on the influence of developers’ experience on software test code quality
SBQS '22: Proceedings of the XXI Brazilian Symposium on Software QualitySoftware developers’ engagement in open-source software projects lies in different levels of participation, e.g., core or peripheral developers. Recent studies have investigated the role of developers’ contributions and their influence on software ...
TEMPY: Test Smell Detector for Python
SBES '22: Proceedings of the XXXVI Brazilian Symposium on Software EngineeringAutomated software testing is a process in software development that aims to extend software quality through test code. Thus, we can avoid manual and repetitive rework and have fast test runs. When writing test code, testers may execute bad practices, ...
Handling Test Smells in Python: Results from a Mixed-Method Study
SBES '21: Proceedings of the XXXV Brazilian Symposium on Software EngineeringSoftware testing is an activity in the software development process that looks for defects. Automated testing is composed of code that allows run software testing scenarios more quickly, avoiding manual rework. However, testers are likely to employ ...
Comments