1. 단위 테스트의 목표

weekbelt·2023년 1월 30일
0

단위 테스트의 목표

  • 단위 테스트의 목표는 소프트웨어 프로젝트의 지속 가능한 성장을 가능하게 하는것이다.
  • 지속성과 확장성이 핵심이며, 이를 통해 장기적으로 개발 속도를 유지할 수 있다.
  • 코드를 단위 테스트하기 어렵다면 코드 개선이 반드시 필요하다는것을 의미한다.
  • 테스트는 안전망 역할을 하며, 대부분의 회귀(regression)에 대한 보험을 제공한느 도구라 할 수 있다.

    회귀는 특정 사건(일반적으로 코드 수정) 후에 기능이 의도한 대로 작동하지 않는 경우다. 소프트웨어 버그와 회귀라는 용어는 동의어이며 바꿔서 사용할 수 있다.

  • 테스트의 가치와 유지 비용을 모두 고려해야 한다.
    - 기반 코드를 리팩터링할 때 테스트도 리팩터링하라.
    - 각 코드 변경 시 테스트를 실행하라.
    - 테스트가 잘못된 경고를 발생시킬 경우 처리하라.
    - 기반 코드가 어떻게 동작하는지 이해하려고 할 때는 테스트를 읽는 데 시간을 투자하라

테스트 스위트 품질 측정을 위한 커버리지 지표

  • 테스트 대상 시스템의 모든 가능한 결과를 검증한다고 보장할 수 없다.
  • 외부 라이브러리의 코드 경로를 고려할 수 있는 커버리지 지표는 없다.
  • 커버리지 지표로 테스트가 철저한지 또는 테스트가 충부한지 알 수는 없다.

성공적인 테스트 스위트 기준

  • 개발 주기에 통합돼 있다.
  • 코드베이스에서 가장 중요한 부분만을 대상으로 한다.
  • 비즈니스 로직 테스트가 시간 투자 대비 최고의 수익을 낼 수 있다. 이 부분은 세 가지 범주로 나눌 수 있다.
    - 인프라 코드
    - 데이터베이스나 서드파티 시스템과 같은 외부 서비스 및 종속성
    - 모든 것을 하나로 묶는 코드
  • 최소한의 유지비로 최대의 가치를 끌어낸다.

참고

profile
백엔드 개발자 입니다

0개의 댓글