TDD 입문하기 - 테스트 주도 개발 기초: 테스트 기법
테스트 기법
코드는 현장에 배치되기 전과 배치되고 난 후에 기대된 대로 동작하는지 테스트 됩니다.
- 수동 테스트
- 테스트 자동화
- 인수 테스트
- 테스트 주도 개발에 사용되는 단위 테스트의 방법과 목적
수동 테스트
- 품질 담당자가 UI를 사용해 기능을 검증
- 최종 사용자의 사용경험과 가장 비슷하게 검증
- 실행 비용이 높고 결과의 변동이 큼
- 가장 온전한 코드 실행
- 인스 테스트
소프트웨어 회귀(Software regression)
원래 동작하던 기능이 어떤 사건 이후로 동작하지 않게 되는것
원인:
- 새로운 기능이 추가 되면서 발생할 가능성이 큼
테스트 자동화
- 기능을 검증하는 코드를 작성
- 테스트 코드 작성 비용이 소비되지만 실행 비용이 낮고 결과의 신뢰도가 높음
- 테스트 코드 작성과 관리가 프로그래머 역량에 크게 영향 받음
인수 테스트
- 배치된 시스템을 대상으로 검증
- 전체 시스템 이상 여부 신뢰도가 높음
- 높은 비용 (작성비용 / 관리비용 / 실행비용)
- 피드백 품질이 낮음 (현상은 드러나지만 원인은 숨겨짐)
단위 테스트
- 시스템의 일부(하위 시스템)을 대상으로 검증
- 낮은 비용 (작성비용 / 관리비용 / 실행비용)
- 높은 피드백 품질
- 전체 시스템 이상 여부 신뢰도가 낮음
느낀점
- 개발하다보면 소프트웨어 회귀 현상이 가끔 발생하는데 지금은 어떻게 하는지 잘 모르겠지만 기능에 대해서 단위 테스트를 꾸준히 작성해야 새로운 기능을 추가할때도 기존 기능이 제대로 동작하는지 검증이 될것 같다.