An Analysis of Test Co-Evolution on GitHub Software Projects

  • Charles Miranda UFPI
  • Guilherme Avelino UFPI
  • Pedro Santos Neto UFPI
  • Victor da Silva UFPI

Abstract


The software systems evolve and the evolution requires modifications to its source code to make changes, such as bug fixes, performance improvements, or adding new features. Given the importance of testing to ensure software quality, source code modifications must be accompanied by test code changes and increments. However, testing and its co-evolution are often neglected in the development of software projects, which can result in greater effort and cost to maintain the project. In this work, through the analysis of a large dataset, consisting of the development history of 3,000 projects hosted on Github, we investigate how source code and test artifacts evolve. Through the application of clustering techniques, we identified five common test growth patterns. Additionally, when comparing data from repositories identified with co-evolution and without co-evolution, it was observed that the first ones present higher levels of contribution (commits, collaborators, and forks).
Keywords: Co-evolution, test, mining software repositories, GitHub

References

Hudson Borges, Andre Hora, and Marco Tulio Valente. 2016. Understanding the factors that impact the popularity of GitHub repositories. In International Conference on Software Maintenance and Evolution (ICSME). IEEE, 334–344.

Flavio Figueiredo. 2013. On the prediction of popularity of trends and hits for user generated videos. In 6th International Conference on Web Search and Data Mining. 741–746.

Danielle Gonzalez, Joanna CS Santos, Andrew Popovich, Mehdi Mirakhorli, and Mei Nagappan. 2017. A large-scale study on the usage of testing patterns that address maintainability attributes: patterns for ease of modification, diagnoses, and comprehension. In 14th International Conference on Mining Software Repositories (MSR). IEEE, 391–401.

Janette Lehmann, Bruno Gonçalves, José J Ramasco, and Ciro Cattuto. 2012. Dynamical classes of collective attention in twitter. In 21st International Conference on World Wide Web. 251–260.

Stanislav Levin and Amiram Yehudai. 2017. The co-evolution of test maintenance and code maintenance through the lens of fine-grained semantic changes. In International Conference on Software Maintenance and Evolution (ICSME). 35–46.

Cosmin Marsavina, Daniele Romano, and Andy Zaidman. 2014. Studying finegrained co-evolution patterns of production and test code. In 14th International Working Conference on Source Code Analysis and Manipulation. IEEE, 195–204.

Patrick E McKnight and Julius Najab. 2010. Mann-Whitney U Test. The Corsini encyclopedia of psychology (2010), 1–1.

Daniel A Menasce and Virgilio Almeida. 2001. Capacity Planning forWeb Services: metrics, models, and methods. Prentice Hall PTR.

Tom Mens, Michel Wermelinger, Stéphane Ducasse, Serge Demeyer, Robert Hirschfeld, and Mehdi Jazayeri. 2005. Challenges in software evolution. In 8th International Workshop on Principles of Software Evolution (IWPSE). IEEE, 13–22.

Glenford J Myers, Tom Badgett, Todd M Thomas, and Corey Sandler. 2004. The art of software testing. Vol. 2. Wiley Online Library.

Ian Sommerville. 2011. Software engineering 9th Edition. Pearson.

László Vidács and Martin Pinzger. 2018. Co-evolution analysis of production and test code by learning association rules of changes. In Workshop on Machine Learning Techniques for Software Quality Evaluation (MaLTeSQuE). IEEE, 31–36.

Jaewon Yang and Jure Leskovec. 2011. Patterns of temporal variation in online media. In 4th International Conference on Web Search and Data Mining. 177–186.

Andy Zaidman, Bart Van Rompaey, Arie van Deursen, and Serge Demeyer. 2011. Studying the co-evolution of production and test code in open source and industrial developer test processes through repository mining. Empirical Software Engineering 16, 3 (2011), 325–364.
Published
2021-09-27
MIRANDA, Charles; AVELINO, Guilherme; SANTOS NETO, Pedro; DA SILVA, Victor. An Analysis of Test Co-Evolution on GitHub Software Projects. In: WORKSHOP ON SOFTWARE VISUALIZATION, EVOLUTION AND MAINTENANCE (VEM), 9. , 2021, Joinville. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2021 . p. 36-40. DOI: https://doi.org/10.5753/vem.2021.17215.