Test Smells Catalog Logo

Test Smell Categories

  • Code related
    • Code duplication
    • Complex - Hard to understand
    • In association with production code
    • Mock and stub related
    • Violating coding best practices
  • Dependencies
  • Design related
  • Issues in test steps
  • Test execution - behavior
  • Test semantic - logic

Miscellanous

  • Easy Lab
  • How to contribute
  • How to cite this work
Test Smells Catalog
  • Code related
  • View page source

Code related

  • Code duplication
    • Army Of Clones
    • Assertion Chorus
    • Copy-Paste
    • Cut-And-Paste Code Reuse
    • Data-Ja Vu
    • Duplicate Alt Branches
    • Duplicate Assert
    • Duplicate Code
    • Duplicate Component Definition
    • Duplicate In-Line Templates
    • Duplicate Local Variable/Constant/Timer
    • Duplicate Statements
    • Duplicate Template Fields
    • Duplicate Test Code
    • Duplicate Test Runs
    • Duplicated Actions
    • Duplicated Code In Conditional
    • Duplicated Code
    • Half A Helper Method
    • Missing Parameterised Test
    • Missing Test Data Factory
    • Multiple Tests Testing The Same Or Similar Things
    • Reinventing The Wheel
    • Second Class Citizens
    • Test Clones
    • Test Code Duplication
    • Test Redundancy
    • The First And Last Rites
    • Two For The Price Of One
    • Very Similar Test Cases
  • Complex - Hard to understand
    • Absence Of Why
    • Bad Comment Rate
    • Boilerplate Hell
    • Comments
    • Complicated Logic In Tests
    • Hard-Coded Test Data
    • Hard-Coded Values
    • Hard-To-Test Code
    • Hard-To-Write Test
    • Hardcoded Environment Configuration
    • Hardcoded Environment
    • Hardcoded Literals
    • Hardcoded Test Data
    • Herp Derp
    • Hidden Complexity
    • It Looks Right To Me
    • Keyword Driven Testing
    • Lack Comments
    • Large Macro Component
    • Large Module
    • Large Test File
    • Long Class
    • Long Function
    • Long Macro Event
    • Long Method
    • Long Statement Block
    • Long Test Steps
    • Long Test
    • Long/Complex/Verbose/Obscure Test
    • Magic Number Test
    • Magic Values
    • Obscure Test
    • Optimizing Dry
    • Over Refactoring Of Tests
    • Overcommented Test
    • Overly Complex Tests
    • Overly Dry Tests
    • Overuse Of Abstractions
    • Self Important Test Data
    • Tests Are Difficult To Write
    • Using Complicated Data Store
    • Using Complicated X-Path Or Css Selectors
    • Using Test Case Inheritance To Test Source Code Polymorphism
    • Verbose Test
    • What Are We Testing?
  • In association with production code
    • Behavior Sensitivity
    • Changing Implementation To Make Tests Possible
    • Code Pollution
    • Code Run Only By Tests
    • Context Logic In Production Code
    • Equality Pollution
    • Fire And Forget
    • For Testers Only
    • Hooks Everywhere
    • Indecent Exposure
    • Interface Sensitivity
    • Mixing Production And Test Code
    • Multiple Points Of Failure
    • Overly Elaborate Test Code
    • Overspecification
    • Overspecified Software
    • Overspecified Tests
    • Plate Spinning
    • Production Logic In Test
    • Test Dependency In Production
    • Test Hook
    • Test Logic In Production Code
    • Test Tautology
    • Tests Cluttered With Business Logic
    • Tests Require Too Much Intimate Knowledge Of The Code To Run
    • The Telltale Heart
    • The Ugly Mirror
    • Trying To Test The Untestable
    • Ui Tests Should Not Expose Interactions With Web Elements
    • Well, My Setup Works
  • Mock and stub related
    • Excessive Mocking
    • Is Mockito Working Fine?
    • Making A Mockery Of Design
    • Mismatched Stubs
    • Mock Everything
    • Mock Happy
    • Mock Madness
    • Mock’Em All
    • Mockers Without Borders
    • Mocking A Mocking Framework
    • Mocking What You Don’T Own
    • Mockito Any() Vs. Isa()
    • Overmocking
    • Overuse Mocking
    • Remote Control Mocking
    • Subclass To Test
    • Surreal
    • Testing The Framework
    • The Dead Tree
    • The Mockery
    • Unnecessary Stubs
  • Violating coding best practices
    • Accidental Test Framework
    • Ambiguous Tests
    • Anonymous Test Case
    • Anonymous Test
    • Bad Documentation Comment
    • Bad Naming
    • Badly Structured Test Suite
    • Blethery Prefixes
    • Comments Only Test
    • Constant Actual Parameter Value
    • Dead Field
    • Default Test
    • Directly Executing Javascript
    • Disabled Test
    • Empty Method Category
    • Empty Test-Method Category
    • Empty Test
    • Erratic Test
    • Erratic Tests
    • Everything Is A Property
    • Flaky Locator
    • Flaky Test
    • Fully-Parameterized Template
    • Goto Statement
    • Having Flaky Or Slow Tests
    • Hidden Meaning
    • Hidden Test Call
    • Ignored Test
    • Improper Test Method Location
    • Inconsistent Hierarchy
    • Integration Test, Masquerading As Unit Test
    • Intermittent Test Failures
    • Is There Anybody There?
    • Lack Of Encapsulation
    • Lack Of Macro Events
    • Literal Pollution
    • Long Parameter List
    • Lost Test
    • Meaningless Variable Names
    • Messy Test
    • Missed Skip Rotten Green Test
    • Missing Variable Definition
    • Missing Verdict
    • Mistaken Identity
    • Mixed Selectors
    • Name-Clashing Import
    • Non-Functional Statement
    • Nondeterministic Test
    • Opaque Output
    • Over-Eager Helper
    • Over-Specific Runs On
    • Overreferencing
    • Proper Organization
    • Sensitive Locators
    • Short Template
    • Singular Component Variable/Constant/Timer Reference
    • Singular Template Reference
    • Stop In Function
    • Test Body Is Somewhere Else
    • Test-Class Name
    • Test-Method Category Name
    • Testing For A Specific Bug
    • Testy Testy Test Test
    • The Conjoined Twins
    • The Enumerator
    • The Flickering Test
    • The Forty Foot Pole Test
    • The Sleeper
    • The Stepford Fields
    • The Test With No Name
    • Time Bomb Data
    • Time Bombs
    • Time Sensitive Test
    • Treating Test Code As A Second Class Citizen
    • Unclassified Method Category
    • Unreachable Default
    • Unrestricted Imports
    • Unsuitable Naming
    • Unused Imports
    • Unused Inputs
    • Unused Parameter
    • Unused Shared-Fixture Variables
    • Unused Variable Definition
    • Unworldly Test Data
    • Using Faker
    • Verbless And Noun-Full
    • Wasted Variable Definition
Previous Next

© Copyright 2024, EASY.

Built with Sphinx using a theme provided by Read the Docs.