E2E, Integration, Unit test

Sua·2021년 3월 13일
1

Web

목록 보기
6/8
post-thumbnail

테스트의 종류

End-To-End Testing / UI Testing

  • 크롬 브라우저를 띄운다음에 내가 만든 페이지로 들어가서 의도한 대로 기능이 동작하는지 테스트하는 방법
  • Manual Testing은 실행하기 쉽다는 장점이 있지만 비용이 많이 들고 부정확하며 실행 시간이 오래 걸린다. 자동화 할 수 있지만 UI Testing은 자동화 하기가 가장 까다롭고 또 실행하기도 까다롭다.
  • 즉, UI Testing이 가장 어렵고 까다롭다.

Integration Testing

  • 백엔드 기준으로 httpie 또는 postman을 사용해서 Json response가 제대로 출력되는지 테스트하는 방법이다.
  • integration testing(통합 테스트)인 이유는 두 개 이상의 클래스 또는 시스템을 결합을 테스트하기 때문이다.
  • 예를 들면, 장고로 서버를 띄우고 모델 클래스와 결합하여 데이터베이스 시스템과 연동한 테스트이다.
  • Integration Testing이 E2E Testing 다음으로 공수가 많이 든다.

Unit Testing

  • Unit Testing는 함수와 같이 테스트 할 수 있는 가장 작은 단위를 테스트 하는 코드를 작성해서 테스트하는 방법이다.
  • Unit Testing이 가장 쉬우며 효과가 좋다.

Testing Pyramid, 어떤 테스트를 해야할까

  • Google Test Automation Conference에서 제안된 테스트 피라미드
  • 시스템을 테스트 할때 크게 3가지 방법으로 나눌 수 있다.
  • 전체 테스트 비중을 아래와 같은 수치로 구현하는 것이 권장된다.
    • E2E(UI) Testing - 10%
    • Integrating Testing - 20%
    • Unit Testing - 70%

Unit test의 장점

  • 테스트케이스가 꼼꼼하게 작성되어 있다면, 개발과정 중에 미리 문제를 파악할 수 있다.
  • 코드변경시, 변경한 부분으로 인한 영향도를 쉽게 파악할 수 있다.
  • 코드 리팩토링을 안심하고 할 수 있다. 테스트케이스들은 내가 가입한 보험들 같다.
  • 테스트 자동화를 통해서 항상 딜리버리 가능한 제품을 만들 수 있다.
  • 새로운 입력이 팀에 합류했을때, 개발 스타일, 표준, 컨벤션등을 공유하기에 좋다.
  • 페어 프로그래밍을 할때, 테스트케이스 작성하고 개발하는 역할 핑퐁을 통해서 개발을 페어로 집중해서 진행할 수 있다.
    • TDD + Pair Programming을 한다면, 테스트케이스 작성한 사람의 설계를 공유하면서 소스 개발까지 이어질 수 있으므로 집중력있게 개발할 수 있다.

참고사이트

E2E Test 알아보기
TestPyramid
설마 아직도 테스트 코드를 작성 안 하시나요?
Unit Test (단위 테스트) 도입하기 - 1편
유닛테스트에 대한 생각

profile
Leave your comfort zone

0개의 댓글