Test와 Test type
Post

Test와 Test type

테스트

  • 에러를 사전에 검사하기 위한 것
  • 동작이 이전과 다른것이 있는지 검사하는 것
  • 사전 검증을 통하여 안정성 있는 앱을 전달하기 위함

static analysis(정적 분석)

  • 코드 상에서 있는 문제를 바로 알아낼 수 있는 것
  • type checking(typescript,flow 등)
  • Lint(ESLint)
  • 가장 쉽게 접근할 수 있는 방법
  • 저비용 고 효율

Testable code

  • 코드를 각각 단위에 맞게 쪼개는 것
  • 잘게 쪼갤 수록 더 테스트가 쉬워짐
  • 비즈니스 로직, app state, 컴포넌트 등의 단위로 분리

Structuring Test

  • 테스트 작성시 명확하게 어떤 테스트인지를 전달하기 위함
  • 구조화된 테스트문은 모드가 테스트의 요구사항을 파악하기 쉬워짐
  • 구조화된 테스트문 작성법
    • Given : 어떤 조건의 테스트인지?
    • When : 어떤 함수 또는 행동에 의해서 발생하는것 인지?
    • Then : 어떠한 결과값이 나와야 하는지

테스트 종류

Unit Test

  • 가장 작은단위 테스트
  • 쉽고빠르게 작성 가능, 바로 실행하여 검증 가능
  • function 또는 class 등에 적용
  • 작은단위로만 테스트하기 때문에, 합쳐졌을때 동작이 달라질 수 있음

Integration Test

  • 통합테스트, 유닛테스트들과 함께 통합해서 테스트 하는 것
  • 각각의 유닛 테스트 결과들을 섞어 테스트 결과값을 정하게 됨

Component Test

  • 컴포넌트 자체에 대한 검증을 진행
  • Interaction Test : 버튼이 눌리는지, 혹은 disable되었을 때 눌리지 않는지 등에 대한 검증
  • Snapshot Test : 이전에 render되던 것과 지금 render되는 것이 같은지 검증

E2E Test (End to End Test)

  • 실제로 돌아가는 앱에서 지정된 스크립트대로 반복하는것
  • 실제로 로그인 플로우 등 잘 변하지 않는 화면에 대해서 테스트 가능
  • 실제 핸드폰과 연동하여 테스트 가능
  • Detox, Appium 등 오픈소스 이용가능
  • 많은 구축 비용이 들어감