Spring - 무엇을 테스트 할 것인가?

Right-BICEP

Posted by Yan on December 10, 2024

무엇을 테스트해야 하는가?

무엇을 테스트해야하는지 종종 길을 잃곤 하는데 아래 내용을 보면서 더 적용할만한 것이 있는지 체크리스트로 쓰려고 메모해둔다.

Right-BICEP

  • Right: 결과가 올바른가?
  • B: Boundary conditions: 경계조건은 맞는가?
    • Edge case: 시스템 내부 조건에 의해 발생하는 특별한 케이스를 의미 (Long의 Max값이 언어마다 다른 것 등)
    • Coner case: 시스템 내/외부 조건에 의해 발생하는 특별한 케이스들을 의미 (네트워크가 단절된 경우, 서버의 메모리가 128MB이거나 등등)
  • I: 역관계를 검사할 수 있는가?
  • C: Cross Check 교차검사할 수 있는가?
  • E: Error Conditions 오류 상황을 강제로 일어나게 할 수 있는가?
  • P: Performacne characteristics 성능 조건은 기준에 부합하는가? (ngrinder)

경계조건 체크리스트

  • Conformance: 사용자의 Id가 이메일 형식인지 테스트한다.
  • Ordering: 당첨자가 청약 점수에 따라 정렬이 됐는지 테스트한다.
  • Range: 덧셈 함수가 Long.Max + Long.Max일 때 어떻게 동작해야 하는지 테스트한다.
  • Reference: 휴면 계정 처리된 사용자를 초대하기 했을 때 어떻게 동작해야 하는지 테스트한다.
  • Existence: 입력값 null, 0, ““일 때 어떻게 동작하는지 테스트한다.
  • Cardinality: 입력값의 길이가 0일 때, 1일 때, n일 때 어떻게 동작하는지 테스트한다.
  • Time: 병렬 처리하지만 메세지 순서는 제대로 처리되는지 테스트한다.