skip to main content
10.1145/3624032.3624044acmotherconferencesArticle/Chapter ViewAbstractPublication PagessastConference Proceedingsconference-collections
research-article

Investigating Developers' Contributions to Test Smell Survivability: A Study of Open-Source Projects

Published:17 October 2023Publication History

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.

References

  1. 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 ScholarGoogle ScholarCross RefCross Ref
  2. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  5. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  7. 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 ScholarGoogle ScholarCross RefCross Ref
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  9. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  10. 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 ScholarGoogle ScholarCross RefCross Ref
  11. 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 ScholarGoogle Scholar
  12. 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 ScholarGoogle Scholar
  13. Martin Fowler. 1999. Refactoring: Improving the Design of Existing Code (Object Technology Series). Addison-Wesley Longman, Amsterdam.Google ScholarGoogle Scholar
  14. 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 ScholarGoogle ScholarCross RefCross Ref
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  16. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  17. 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 ScholarGoogle ScholarCross RefCross Ref
  18. 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 ScholarGoogle ScholarCross RefCross Ref
  19. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  20. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  21. 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 ScholarGoogle ScholarCross RefCross Ref
  22. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  23. 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 ScholarGoogle ScholarCross RefCross Ref
  24. 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 ScholarGoogle ScholarCross RefCross Ref
  25. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  26. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  27. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  28. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  29. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  30. 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 ScholarGoogle Scholar
  31. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  32. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  33. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  34. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  35. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  36. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  37. 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 ScholarGoogle ScholarCross RefCross Ref

Index Terms

  1. Investigating Developers' Contributions to Test Smell Survivability: A Study of Open-Source Projects

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Other conferences
      SAST '23: Proceedings of the 8th Brazilian Symposium on Systematic and Automated Software Testing
      September 2023
      133 pages
      ISBN:9798400716294
      DOI:10.1145/3624032

      Copyright © 2023 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 17 October 2023

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article
      • Research
      • Refereed limited

      Acceptance Rates

      Overall Acceptance Rate45of92submissions,49%
    • Article Metrics

      • Downloads (Last 12 months)38
      • Downloads (Last 6 weeks)6

      Other Metrics

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    HTML Format

    View this article in HTML Format .

    View HTML Format