An Empirical Study
Document type :
Article dans une revue scientifique: Article original
Title :
Rotten Green Tests in Java, Pharo and Python
An Empirical Study
An Empirical Study
Author(s) :
Aranega, Vincent [Auteur]
Analyses and Languages Constructs for Object-Oriented Application Evolution [RMOD]
Delplanque, Julien [Auteur]
Analyses and Languages Constructs for Object-Oriented Application Evolution [RMOD]
Martinez, Matias [Auteur]
Laboratoire d'Automatique, de Mécanique et d'Informatique industrielles et Humaines - UMR 8201 [LAMIH]
Université Polytechnique Hauts-de-France [UPHF]
Black, Andrew [Auteur]
Department of Computer Science [Portland] [CS]
Ducasse, Stephane [Auteur]
Analyses and Languages Constructs for Object-Oriented Application Evolution [RMOD]
Etien, Anne [Auteur]
Analyses and Languages Constructs for Object-Oriented Application Evolution [RMOD]
Fuhrman, Christopher [Auteur]
Ecole de Technologie Supérieure [Montréal] [ETS]
Polito, Guillermo [Auteur]
Analyses and Languages Constructs for Object-Oriented Application Evolution [RMOD]

Analyses and Languages Constructs for Object-Oriented Application Evolution [RMOD]
Delplanque, Julien [Auteur]
Analyses and Languages Constructs for Object-Oriented Application Evolution [RMOD]
Martinez, Matias [Auteur]
Laboratoire d'Automatique, de Mécanique et d'Informatique industrielles et Humaines - UMR 8201 [LAMIH]
Université Polytechnique Hauts-de-France [UPHF]
Black, Andrew [Auteur]
Department of Computer Science [Portland] [CS]
Ducasse, Stephane [Auteur]

Analyses and Languages Constructs for Object-Oriented Application Evolution [RMOD]
Etien, Anne [Auteur]

Analyses and Languages Constructs for Object-Oriented Application Evolution [RMOD]
Fuhrman, Christopher [Auteur]
Ecole de Technologie Supérieure [Montréal] [ETS]
Polito, Guillermo [Auteur]
Analyses and Languages Constructs for Object-Oriented Application Evolution [RMOD]
Journal title :
Empirical Software Engineering
Publisher :
Springer Verlag
Publication date :
2021-09-01
ISSN :
1382-3256
English keyword(s) :
Testing
Rotten Green Tests
Empirical Study
Software Quality
Rotten Green Tests
Empirical Study
Software Quality
HAL domain(s) :
Informatique [cs]/Langage de programmation [cs.PL]
Informatique [cs]
Informatique [cs]
English abstract : [en]
Rotten Green Tests are tests that pass, but not because the assertions they contain are true: a rotten test passes because some or all of its assertions are not actually executed. The presence of a rotten green test is a ...
Show more >Rotten Green Tests are tests that pass, but not because the assertions they contain are true: a rotten test passes because some or all of its assertions are not actually executed. The presence of a rotten green test is a test smell, and a bad one, because the existence of a test gives us false confidence that the code under test is valid, when in fact that code may not have been tested at all. This article reports on an empirical evaluation of the tests in a corpus of projects found in the wild. We selected approximately one hundred mature projects written in each of Java, Pharo, and Python. We looked for rotten green tests in each project, taking into account test helper methods, inherited helpers, and trait composition. Previous work has shown the presence of rotten green tests in Pharo projects; the results reported here show that they are also present in Java and Python projects, and that they fall into similar categories. Furthermore, we found code bugs that were hidden by rotten tests in Pharo and Python. We also discuss two test smells —missed fail and missed skip —that arise from the misuse of testing frameworks, and which we observed in tests written in all three languages.Show less >
Show more >Rotten Green Tests are tests that pass, but not because the assertions they contain are true: a rotten test passes because some or all of its assertions are not actually executed. The presence of a rotten green test is a test smell, and a bad one, because the existence of a test gives us false confidence that the code under test is valid, when in fact that code may not have been tested at all. This article reports on an empirical evaluation of the tests in a corpus of projects found in the wild. We selected approximately one hundred mature projects written in each of Java, Pharo, and Python. We looked for rotten green tests in each project, taking into account test helper methods, inherited helpers, and trait composition. Previous work has shown the presence of rotten green tests in Pharo projects; the results reported here show that they are also present in Java and Python projects, and that they fall into similar categories. Furthermore, we found code bugs that were hidden by rotten tests in Pharo and Python. We also discuss two test smells —missed fail and missed skip —that arise from the misuse of testing frameworks, and which we observed in tests written in all three languages.Show less >
Language :
Anglais
Peer reviewed article :
Oui
Audience :
Internationale
Popular science :
Non
Collections :
Source :
Files
- https://hal.inria.fr/hal-03281836v2/document
- Open access
- Access the document
- https://hal.inria.fr/hal-03281836v2/document
- Open access
- Access the document
- https://hal.inria.fr/hal-03281836v2/document
- Open access
- Access the document
- https://hal.inria.fr/hal-03281836v2/document
- Open access
- Access the document
- document
- Open access
- Access the document
- Aran21a-RottenGreenTest-EmpiricalSoftwareEngineering.pdf
- Open access
- Access the document