테스트 기법

코드는 현장에 배치되기 전과 배치되고 난 후에 기대된 대로 동작하는지 테스트 됩니다.

  • 수동 테스트
  • 테스트 자동화
  • 인수 테스트
  • 테스트 주도 개발에 사용되는 단위 테스트의 방법과 목적


수동 테스트

  • 품질 담당자가 UI를 사용해 기능을 검증
  • 최종 사용자의 사용경험과 가장 비슷하게 검증
  • 실행 비용이 높고 결과의 변동이 큼
  • 가장 온전한 코드 실행
  • 인스 테스트


소프트웨어 회귀(Software regression)

원래 동작하던 기능이 어떤 사건 이후로 동작하지 않게 되는것

원인:

  • 새로운 기능이 추가 되면서 발생할 가능성이 큼


테스트 자동화

  1. 기능을 검증하는 코드를 작성
  2. 테스트 코드 작성 비용이 소비되지만 실행 비용이 낮고 결과의 신뢰도가 높음
  3. 테스트 코드 작성과 관리가 프로그래머 역량에 크게 영향 받음


인수 테스트

  1. 배치된 시스템을 대상으로 검증
  2. 전체 시스템 이상 여부 신뢰도가 높음
  3. 높은 비용 (작성비용 / 관리비용 / 실행비용)
  4. 피드백 품질이 낮음 (현상은 드러나지만 원인은 숨겨짐)


단위 테스트

  1. 시스템의 일부(하위 시스템)을 대상으로 검증
  2. 낮은 비용 (작성비용 / 관리비용 / 실행비용)
  3. 높은 피드백 품질
  4. 전체 시스템 이상 여부 신뢰도가 낮음


느낀점

  • 개발하다보면 소프트웨어 회귀 현상이 가끔 발생하는데 지금은 어떻게 하는지 잘 모르겠지만 기능에 대해서 단위 테스트를 꾸준히 작성해야 새로운 기능을 추가할때도 기존 기능이 제대로 동작하는지 검증이 될것 같다.



« 코드 기능 명세 코드 분해 »


참고

패스트 캠퍼스 - The RED: 이규원의 현실 세상의 TDD: 안정감을 주는 코드 작성 방법.

TDD HandsOn