테스트 피라미드 와 TDD

yonghee·2022년 7월 4일
0

Google Test Automation Conference 에서 제안된 테스트 피라미드
전체 테스트 비중을 아래와 같은 수치로 구현하는 것이 권장됨

(1) End-To-End Testing (UI Testing) - 10%
(2) Integrating Testing - 20%
(3) Unit Testing - 70%

테스트 단위가 좀 더 쪼개질수록 어느 부분에서 에러가 발행했는지 좀 더 찾기가 쉬워진다.

즉, End-To-End Testing 보다는 Integrating Testing 에 테스트 비중을 좀 더 많이 가져가야 하며
Integrating Testing 보다 더 쪼개진 단위인 Unit Testing 에 테스트 비중을 좀 더 많이 가져가야 한다.

End-To-End test

크롬 브라우저를 띄운 다음, 내가 만든 검색페이지로 들어가서 검색을 해보고 검색한 내용이 제대로 나오는지 화면상에서 확인하거나 직접 회원가입을 해보고 회원가입후에 로그인 되는지 직접 브라우저 상에서 값을 입력해서 테스트 하는방법

Integrating test

최소 두 개 이상의 클래스 또는 서브 시스템의 결합을 테스트하는 방법

Unit test

code로 code를 테스트
Unit Testing이 가장 쉬우며 효과가 좋음
빠르고 비용이 상대적으로 낮기 때문에 개발할 때 필수적으로 작성해야 한다.

프론트엔드 : jest(가장 많이 사용), enzyme
백엔드 : pytest, unittest(장고에서 기본적으로 사용)

TDD란?

TDD란 Test Driven Development의 약자로 '테스트 주도 개발'이라고 한다. 반복 테스트를 이용한 소프트웨어 방법론으로, 작은 단위의 테스트 케이스를 작성하고 이를 통과하는 코드를 추가하는 단계를 반복하여 구현한다.

테스팅으로 얻는 이점

  1. 디버깅 시간을 단축 : 만약 데이터가 잘못 나왔다면 그것이 UI의 문제인지 DB의 문제인지등 전부 테스트를 해봐서 찾아야 하는데 테스팅 환경이 구축되 어있다면 자동화 된 유닛 테스팅으로 특정 버그를 쉽게 찾아 낼 수 있습니다.

  2. 더욱 안정적인 어플리케이션 : 많은 테스트 코드와 함께 작성된 코드의 어플 리케이션이 되기 때문에 훨씬 안정적인 어플리케이션이 됩니다.

  3. 이밖에도 재설계 시간의 단축, 추가로 무언가를 더 구현해야 할 때 더 용이하 게 할 수 있는 등의 이점들이 있습니다.

profile
필요할 때 남기는 날것의 기록 공간

0개의 댓글