Automated static analysis of unit test code

Authors Rudolf Ramler
Michael Moser
Josef Pichler
Title Automated static analysis of unit test code
Booktitle Proceedings of the 23rd IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER 2016)
Type in proceedings
Publisher IEEE
ISBN 978-1-5090-1855-0/16
DOI 10.1109/SANER.2016.102
Month March
Year 2016
Pages 25-28
SCCH ID# 1610

Automated unit tests are an essential software quality assurance measure that is widely used in practice. In many projects, thus, large volumes of test code have co-evolved with the production code throughout development. Like any other code, test code too may contain faults, affecting the effectiveness, reliability and usefulness of the tests. Furthermore, throughout the software system’s ongoing development and maintenance phase, the test code too has to be constantly adapted and maintained. To support detecting problems in test code and improving its quality, we implemented 42 static checks for analyzing JUnit tests. These checks encompass best practices for writing unit tests, common issues observed in using xUnit frameworks, and our experiences collected from several years of providing trainings and reviews of test code for industry and in teaching. The checks can be run using the open source analysis tool PMD. In addition to a description of the implemented checks and their rationale, we demonstrate the applicability of using static analysis for test code by analyzing the unit tests of the open source project JFreeChart.