Unit tests are a tenant of agile programming methodologies, and are widely used to improve code quality and prevent code regression. A green (passing) test is usually taken as a robust sign that the code under test is valid. However, some green tests contain assertions that are never executed. We call such tests Rotten Green Tests. Rotten Green Tests represent a case worse than a broken test: they report that the code under test is valid, but in fact do not test that validity. We describe an approach to identify rotten green tests by combining simple static and dynamic call-site analyses. Our approach takes into account test helper methods, inherited helpers, and trait compositions, and has been implemented in a tool called DrTest. DrTest reports no false negatives, yet it still reports some false positives due to conditional use or multiple test contexts. Using DrTest we conducted an empirical evaluation of 19,905 real test cases in mature projects of the Pharo ecosystem. The results of the evaluation shows that the tool is effective; it detected 294 tests as rotten – green tests that contain assertions that are not executed. Some rotten tests have been “sleeping” in Pharo for at least 5 years.
Thu 30 MayDisplayed time zone: Eastern Time (US & Canada) change
11:00 - 12:30 | Unit TestingTechnical Track / Software Engineering in Practice / Papers / Journal-First Papers at Laurier Chair(s): Martin Kropp University of Applied Sciences Northwestern Switzerland | ||
11:00 30mTalk | (SEIP Talk) Mythical Unit Test CoverageSEIPIndustry Program Software Engineering in Practice | ||
11:30 20mResearch paper | Hunting for Bugs in Code Coverage Tools via Randomized Differential TestingTechnical Track Technical Track Yibiao Yang Nanjing University, China, Yuming Zhou , Hao Sun Unaffiliated, Zhendong Su ETH Zurich, Zhiqiang Zuo Nanjing University, China, Lei Xu Nanjing University, Baowen Xu | ||
11:50 20mTalk | Rotten Green TestsTechnical Track Technical Track Julien Delplanque University of Lille, Stéphane Ducasse INRIA Lille, Guillermo Polito Univ. Lille, CNRS, Centrale Lille, Inria, UMR 9189 - CRIStAL - Centre de Recherche en Informatique Signal et Automatique de Lille, Andrew P. Black Portland State University and INRIA, Anne Etien Ecole Polytechnique Universitaire de Lille | ||
12:10 10mTalk | A comprehensive study of pseudo-tested methodsJournal-First Journal-First Papers Oscar Luis Vera Pérez INRIA, Benjamin Danglot University Lille 1 and INRIA, Martin Monperrus KTH Royal Institute of Technology, Benoit Baudry KTH Royal Institute of Technology, Sweden Link to publication DOI Pre-print | ||
12:20 10mTalk | Discussion Period Papers |