A **characterization test**, also known as Golden Master testing, is a means to describe the actual behavior by using a given input that should yield an already seen output. It was first described by [[Michael Feathers]].
It is important to understand that, unlike [[Regression Test|regression tests]], they do not verify the correct behavior: they simply check for the behavior they software presented when the test was written. This makes characterization tests simple **change detectors**.
Their main advantage is the ability to write tests for previously untested code suites, and for those complex outputs (like PDF or XML) that are too hard to express by checking attributes. Their disadvantage is the reliance on repeatability to properly work.