220913 TIL | 인프콘 / 나도 내 코드의 문제를 찾고 싶다구요?!

학습 페이지

테스트에 대한 기본적인 개념과 테스트 과정에서 집중해야 할 요소에 대하여

책 추천 : 함께 자라기

테스트할 때 기억할 7가지

1. 테스트 케이스

  • 테스트 케이스(기준) → 테스트 실행 → 결과 판단
  • 동일한 조건, 동일한 입력 확인 후 기대 결과와 실제 결과를 비교한다.
  • 테스트 케이스를 잘못 정의할 경우 비정상이 정상으로 둔갑한다.

2. 제품 요구사항

  • 테스트 케이스는 요구 사항의 본질은 같지만 다른 표면을 가진 것이다. (like 동전의 앞/뒷면)

💡 문제 해결 과정 중 가장 많은 시간을 투자하는 단계는?

  • 원인을 찾는 단계

3. 외부 인터페이스를 확인한다.

  • 내부 구현 먼저 확인

    • 개인의 자율에 맡겨져 있음
    • 주관적인 근거로 대화 (감정적인 반응을 유발)
  • (외부) 인터페이스

    • 협력하는 상호간의 약속 이행을 확인
    • 문제의 범위를 좁혀 나간다
    • 객관적 데이터를 근거로 대화 (감정이 개입한 여지가 적음)

외부 인터페이스를 확인하는 방법

  1. (협력하는) 외부 인터페이스를 모두 찾는다.
  2. 메세지를 모두 확인한다.
  3. 메세지의 전체 흐름을 이해한다.
  4. 기준을 가지고 테스트한다.

요구사항 테스트케이스 → 문제를 찾았다.
외부 인터페이스를 확인한다 → 문제를 해결한다.

4. 처음 만나는 프로덕트

개발 후 언제 제품을 처음 만나시나요

문제 → 분석 → 구현(부분적으로 만남) → 테스트(제품을 만난다!) → 배포

  • 요구사항은 분석 때 정의하게 된다.
    • 제품을 보지 못하고 요구사항을 정의하는 개발 프로세스의 아이러니

5. 사용자

내가 사용자 관점으로, 내가 만든 제품의 첫 사용자가 되어본다.

  • 고객의 상황을 상상해본다.
    • 팝업창에 닫기 버튼이 보이지 않는다.
  • 똑같은 기능을 좀 더 편하게.
    • 빈 공간을 클릭하면 팝업 창이 닫혔으면 좋겠다

6. 일관성

태도 따위가 한결같은 성질

  1. 기억 할 것을 최소화
  2. 쉽게 익숙해 지도록

일관성은 팀의 일관된 기준으로 맞춘다.

7. 이제 테스트 해야지!

우리는 여러가지 이유로 테스트를 미루고 있다.

테스트 환경 구성하기가 까다로워서

간단한 기능이라서…

테스트 케이스의 가장 기본적인 한 가지는 테스트라는 것을 잊지 말자.