Test Smells

Unit test code, just like regular/production source code, is subject to bad programming practices, also known as anti-patterns, defects, and smells. Smells, being symptoms of bad design or implementation decisions, has been proven to decrease the quality of software systems from various aspects, such as making it harder to understand, more complex to maintain, and more prone to errors bugs.

Test smells are defined as bad programming practices in unit test code (such as how test cases are organized, implemented, and interact with each other) that indicate potential design problems in the test source code.

This project aims to educate developers on the types of unit testing smells that developers typically introduce or encounter when writing unit tests. To this extent, this project seeks to extend the existing test smell catalog by adding new types of test smells. Additionally, we make available an open-source tool to detect the different smell types in the source code.

Using the updated test smell catalog and our test smell detection tool, we conduct multiple empirical studies on software systems to understand how test smells impact software maintenance and evolution activities.

Please feel free to visit our project website to learn more about test smells, our detection tool, and studies. We also encourage the community to contribute to the extension and improvement of our tool.