본문 바로가기
TIL/TIL

How do I decide what to test? (unit test)

by koreashowme 2020. 1. 15.

아래 square 함수에 대한 더 구체적인 assertion을 한번 살펴봅시다:

  1. -5가 input 값일 때, 25가 output 값으로 반환한다.
  2. 0이 input 값일 때, 0이 output 값으로 반환한다.
  3. 5가 input 값일 때, 25가 output 값으로 반환한다.
  4. 0.25가 input 값일 때, 0.0625가 output 값으로 반환한다.

위 assertion들이 잘 작성되었다고 느껴졌을 것입니다. 왜 그렇게 느껴졌을까요? 물론, 위 assertion들은 그냥 작성된 것이 아닙니다. 잘 만들어졌는지 여부를 확인하기 위해 square(제곱)의 특징을 한번 살펴봅시다:

  1. 음수를 제곱하면 양수가 된다.
  2. 0을 제곱하면 0이된다.
  3. 숫자의 제곱은 그 숫자 자신을 곱하는 것이다.
  4. 분수를 곱하면 그 숫자는 더 작은 분수를 반환한다.

어느 때든지 함수에 대한 테스트를 작성할 때에는 "범주적 추론(Categorical Reasoning)"을 통해 작성하고자 하는 코드가 그 기능을 충실히 이행할 수 있도록 모든 범주를 찾아야 합니다.

comment