Testing the past: can we still run tests in past snapshots for Java projects?

dc.contributor.authorMaes-Bermejo, Michel
dc.contributor.authorGallego Carrillo, Micael
dc.contributor.authorGortázar Bellas, Francisco
dc.contributor.authorRobles, Gregorio
dc.contributor.authorGonzalez-Barahona, Jesús María
dc.date.accessioned2025-01-22T16:38:23Z
dc.date.available2025-01-22T16:38:23Z
dc.date.issued2024-07-30
dc.description.abstractBuilding past snapshots of a software project has shown to be of interest both for researchers and practitioners. However, little attention has been devoted specifically to tests available in those past snapshots, which are fundamental for the maintenance of old versions still in production. The aim of this study is to determine to which extent tests of past snapshots can be executed successfully, which would mean these past snapshots are still testable. Given a software project, we build all its past snapshots from source code, including tests, and then run the tests. When tests do not result in success, we also record the reasons, allowing us to determine factors that make tests fail. We run this method on a total of 86 Java projects. On average, for 52.53% of the project snapshots on which tests can be built, all tests pass. However, on average, 94.14% of tests pass in previous snapshots when we take into account the percentage of tests passing in the snapshots used for building those tests. In real software projects, successfully running tests in past snapshots is not something that we can take for granted: we have found that in a large proportion of the projects we studied this does not happen frequently. We have found that the building from source code is the main limitation when running tests on past snapshots. However, we have found some projects for which tests run successfully in a very large fraction of past snapshots, which allows us to identify good practices. We also provide a framework and metrics to quantify testability (the extent to which we are able to run tests of a snapshot with a success result) of past snapshots from several points of view, which simplifies new analyses on this matter, and could help to measure how any project performs in this respect.
dc.identifier.citationMaes-Bermejo, M., Gallego, M., Gortázar, F. et al. Testing the past: can we still run tests in past snapshots for Java projects?. Empir Software Eng 29, 127 (2024). https://doi.org/10.1007/s10664-024-10530-z
dc.identifier.doi10.1007/s10664-024-10530-z
dc.identifier.issn1382-3256 (Print)
dc.identifier.issn1573-7616 (Electronic)
dc.identifier.otherhttps://link.springer.com/article/10.1007/s10664-024-10530-z
dc.identifier.urihttps://hdl.handle.net/10115/61598
dc.language.isoen
dc.publisherSpringer Nature
dc.rightsAttribution 4.0 Internationalen
dc.rights.accessRightsinfo:eu-repo/semantics/openAccess
dc.rights.urihttp://creativecommons.org/licenses/by/4.0/
dc.subjectSoftware reconstruction
dc.subjectSoftware testing
dc.subjectReproducing tests
dc.subjectTestability
dc.subjectJava
dc.subjectMaven
dc.titleTesting the past: can we still run tests in past snapshots for Java projects?
dc.typeArticle

Archivos

Bloque original

Mostrando 1 - 1 de 1
Cargando...
Miniatura
Nombre:
s10664-024-10530-z.pdf
Tamaño:
1.41 MB
Formato:
Adobe Portable Document Format