# Characterization test > 레거시 코드를 수정할 때 해당 코드의 "바람직한 동작" 또는 "문서화된 동작"이 아니라 "실제 현재의 동작"을 보존하는 게 중요한 경우가 많다. 예를 들면 호환성을 유지하기 위해 버그를 그대로 유지해야 하는 경우 등. 이런 상황에서 "실제 현재의 동작"이 유지되는 걸 보장하기 위한 목적으로 작성하는 테스트를 캐릭터리제이션 테스트라고 부른다. [레거시 코드](https://wiki.g15e.com/pages/Legacy%20code.txt)를 수정할 때 해당 코드의 "바람직한 동작" 또는 "문서화된 동작"이 아니라 "실제 현재의 동작"을 보존하는 게 중요한 경우가 많다. 예를 들면 호환성을 유지하기 위해 버그를 그대로 유지해야 하는 경우 등. 이런 상황에서 "실제 현재의 동작"이 유지되는 걸 보장하기 위한 목적으로 작성하는 테스트를 캐릭터리제이션 테스트라고 부른다. [단위 테스트](https://wiki.g15e.com/pages/Unit%20test.txt)와 같은 기술을 쓰지만 목적이 다르다. > A characterization test is a test that characterizes the actual behavior of a piece of code. There’s no "Well, it should do this" or "I think it does that." The tests document the actual current behavior of the system. > > Steps: > > 1. Use a piece of code in a test harness. > 2. Write an assertion that you know will fail. > 3. Let the failure tell you what the behavior is. > 4. Change the test so that it expects the behavior that the code produces. > 5. Repeat. > > --