Hosted by:
Unit testing expertise at your fingertips!
Home | Discuss | Lists
All Categories
Introductory Narratives
Web Site Instructions
Code Refactorings
Cross References & Lists
Database Patterns
DfT Patterns
External Patterns
Fixture Setup Patterns
Fixture Teardown Patterns
Front Matter
Result Verification Patterns
Test Double Patterns
Test Organization
Test Refactorings
Test Smells
Test Strategy
Value Patterns
XUnit Basics
xUnit Members
All "Cross References & Lists"
List of Patterns
List of Smells
List of Smells
Assertion Roulette(XXX):It is hard to tell which of several assertions within the same test method caused a test failure. Includes Eager Test, Missing Assertion Message.
Behavior Smells(XXX):Smells that jump out at you while running tests.
Buggy Tests(XXX):Bugs are regularly found in the automated tests.
Code Smells(XXX):Smells that are found while looking at test code.
Conditional Test Logic(XXX):A test contains code that may or may not be executed Includes Complex Teardown, Conditional Verification Logic, Flexible Test, Indented Test Code, Multiple Test Conditions, Production Logic in Test.
Developers Not Writing Tests(XXX):Developers aren't writing automated tests. Includes Not Enough Time, Wrong Test Automation Strategy.
Erratic Test(XXX):One or more tests are behaving erratically; sometimes they pass and sometimes they fail. Includes Interacting Test Suites, Interacting Tests, Lonely Test, Nondeterministic Test, Resource Leakage, Resource Optimism, Test Run War, Unrepeatable Test.
Fragile Test(XXX):A test fails to compile or run when the SUT is changed in ways that do not affect the part the test is exercising. Includes Behavior Sensitivity, Context Sensitivity, Data Sensitivity, Fragile Fixture, Interface Sensitivity, Overcoupled Test, Overspecified Software, Sensitive Equality.
Frequent Debugging(XXX):Manual debugging is required to determine the cause of most test failures. Includes Manual Debugging.
Hard-to-Test Code(XXX):Code is difficult to test. Includes Asynchronous Code, Hard-Coded Dependency, Highly Coupled Code, Untestable Test Code.
High Test Maintenance Cost(XXX):Too much effort is spent maintaining existing tests.
Manual Intervention(XXX):A test requires a person to perform some manual action each time it is run. Includes Manual Event Injection, Manual Fixture Setup, Manual Result Verification.
Obscure Test(XXX):It is difficult to understand the test at a glance. Includes Complex Test, General Fixture, Hard-Coded Test Data, Indirect Testing, Irrelevant Information, Long Test, Mystery Guest, Verbose Test.
Production Bugs(XXX):We find too many bugs during formal test or in production. Includes Infrequently Run Tests, Lost Test, Missing Unit Test, Neverfail Test, Untested Code, Untested Requirement.
Project Smells(XXX):Smells that a project manager can watch out for.
Slow Tests(XXX):The tests take too long to run. Includes Asynchronous Test, Slow Component Usage, Too Many Tests.
Test Code Duplication(XXX):The same test code is repeated many times. Includes Cut-and-Paste Code Reuse, Reinventing the Wheel.
Test Logic in Production(XXX):The code that is put into production contains logic that should be exercised only during tests. Includes Equality Pollution, For Tests Only, Test Dependency in Production.