Detecting TestSmells

Conditional Test Logic (metric, simple)

Hard to test code

Hardcoded Test Data (metric, simple)

Obscure Test (metric, simple, many possibilities ?)

Test Code Duplication (metric, simple)

Test Logic in Production (dynamic)

Assertion Roulette (dynamic)

Erratic Test (dynamic)

Fragile Test

Frequent Debugging

Manual Intervention (dynamic)

Slow Tests (env)

Behavior Sensitivity Context Sensitivity Data Sensitivity Interface Sensitivity

Buggy Tests

Developers not writing Tests (metric)

High Test Maintenance cost (env)

Production Bugs (env)

Productivity Smell (env)


Optionals (not very serious)

Naming Conventions

Test Organization

Weak/organizational coverage