Testability

song yuheon·2023년 9월 20일
0

Spring

목록 보기
82/93
post-thumbnail

Testability란?


Testability = 테스트 가능성은 소프트웨어의 그 부분이 테스트를 수행하기에 얼마나 적합한지를 나타내는 지표이다.


1. 코드의 모듈성


  • 코드의 분리
    독립적으로 테스트 가능한 작은 부분으로 코드를 분리한다.

  • 단일 책임 원칙
    한 모듈은 하나의 책임만 가져야 한다.
    이렇게 하면 특정 기능의 변경이 다른 부분에 미치는 영향을 최소화할 수 있다.


2. 제어 가능한 외부 의존성


  • 의존성 주입
    의존성 주입을 사용하여 외부 리소스에 대한 의존성을 제어할 수 있게 한다.
  • Mocking
    테스트 중에 외부 시스템의 응답을 모방하는 Mock 객체를 사용하여 테스트의 안정성을 높인다.

3. 명확한 요구 사항


  • 명확한 명세
    시스템의 기능에 대한 명확한 명세가 있어야 한다.
    이렇게 하면 무엇을 테스트해야 하는지 확실하게 알 수 있다.

  • Acceptance Criteria
    각 기능에 대한 수용 기준을 정의하여 테스트 케이스를 개발할 때 참조할 수 있게 한다.


4. 쉬운 오류 추적


  • 로깅
    효과적인 로깅 시스템을 통해 오류를 쉽게 추적할 수 있게 한다.
  • Self-checking
    테스트 케이스가 자체 검증할 수 있게 한다.
    즉 테스트 결과가 통과인지 실패인지 자동으로 판단할 수 있어야 한다.

5. 결정론적인 동작


  • Idempotency
    가능한 경우에 동일한 입력에 대해 동일한 출력을 생성하는 Idempotent 함수를 사용한다.
  • 랜덤 및 비결정적 요소의 제어
    테스트 중에 랜덤 또는 비결정적 요소를 제어하여 결과가 일정하게 유지되도록 한다.

profile
backend_Devloper

0개의 댓글