프로그래밍

[레거시 코드 활용 전략] ch13. 변경해야 하는데, 어떤 테스트를 작성해야 할지 모르겠다

Victory_HA 2024. 1. 9. 23:46

Ch13 변경해야 하는데, 어떤 테스트를 작성해야할까?

  • 기존 레거시 코드에 대해서 테스트 코드가 전혀 없을 수 있다.
  • 레거시 코드에 변경사항이 일어나면 테스트 루틴을 작성해야한다.

문서화 테스트 (Characterization Test)

  • 문서화 테스트란, 기존 동작 유지에 필요한 테스트
  • 레거시 시스템에서는 시스템이 무엇을 하는지 중요하고(결과), 어떻게 동작하는지는 중요하지 않다(과정).
    • 어떻게 동작하는지에 대한 테스트 작성은 버그를 찾는데에 불과하다.
    • 무엇을 하는지에 대한 테스트를 문서화 테스트라한다.

문서화 테스트 작성 순서

  • 테스트 하네스 내에서 대상 코드를 호출
  • 실패하는 assetion 코드 작성
  • 실패 된 결과로부터 실제 동작을 확인
  • 예상되는 결과를 위해(테스트 통과) 테스트 코드를 수정
  • 반복

클래스 문서화 (Characterizing Classes)

  • 어떻게 테스트를 할 지 결정하기에 앞서, 상위 수준의 클래스 동작 파악이 우선이다.
  • 분기문에 대한 테스트 시 모든 분기문이 실행되는지 확인해야한다.

    리팩토링을 할 때는 일반적으로 2가지를 확인

  1. 리팩토링 후 기존 동작이 유지되는지 확인
  2. 다른 코드와의 관계가 올바른지 확인