[Node.JS] 테스트 단위 분류, 일곱 테스트 원칙, 테스트 커버리지란?

박두팔이·2024년 4월 4일
0

Node.JS

목록 보기
20/20
  • 테스트 코드는 말 그대로 우리가 작성한 코드에 문제가 없는지 테스트하기 위해 작성하는 코드다.
  • 올바른 테스트 코드 작성을 위해선 흔히 기본 원칙이라 불리는 일곱 테스트 원칙을 따르는 것이 좋다.

    [ 일곱 테스트 원칙 ]

    1. 테스팅은 결함의 존재를 보여주는 것이다.
    2. 완벽한 테스트는 불가능하다.
    3. 테스트 구성은 가능한 빠른 시기에 시작한다.
    4. 결함은 군집되어 있다.
    5. 살충제 역설 - 비슷한 테스트가 반복되면 새로운 결함을 발견할 수 없다.
    6. 테스팅은 정황에 의존적이다.
    7. 오류 부재의 오해 - 사용되지 않는 시스템이나 사용자의 기대에 부응하지 않는 기능의 결함을 찾고 수정하는 것은 의미가 없다.
      

1. Testing 단위에 따라 분류하기

테스트는 단위에 따라 아래와 같이 3가지로 나눌 수 있다.

  • unit test: 의존성 없이 하나의 로직을 테스트
  • integration test: 다른 함수에 의존성을 가진 로직을 테스트
  • E2E test(End-to-End): 테스트하는 경우

2. TEST CODE를 왜 작성해야 하는가?

[ 읽어보면 좋을 아티클: test code를 왜 작성해야 하는가? ]

설마 아직도 테스트 코드를 작성 안 하시나요?


3. 테스트 커버리지?

[ 테스트 커버리지 ]

  • 종류
    • 구문 커버리지(Statement Coverage)
      • 모든 문장이 실행. 코드의 모든 문장이 적어도 1회 이상 실행
    • 결정 커버리지(Decision Coverage)
      • 모든 결정이 실행. 모든 결정 분기가 적어도 1회 이상 실행
      • 100% 결정 커버리지는 100% 문장 커버리지는 보장함
    • 조건 커버리지(Condition Coverage)
      • 결정 내부의 모든 조건이 실행
      • 결정을 구성하는 조건의 결과가 적어도 1회 이상 나타남.
    • 결정 조건 커버리지(Decision Condition Coverage)
      • 모든 조건이 실행되고, 모든 결정이 실행됨
      • 모든 결정을 포함하고, 결정 내 모든 조건의 결과가 나타남
    • 변형 결정 조건 커버리지(Modified Decision Condition Coverage)
      • 결정 내부의 하나의 조건이 다른 조건과 무관하게 결정에 영향을 주는 경우 추가
      • 가장 효율적임
    • 다중 조건 커버리지(Multiple Condition Coverage)
      • 모든 조합
      • 가장 강력하나 비용이 많이 든다.
profile
기억을 위한 기록 :>

0개의 댓글