우리가 개발한 것을 확인하고, 모듈들이 결합해서 상호작용하는 과정에서 동작상에 버그가 없는 것을 확인하기 위해 필요
Google Test Automation Conference 에서 제안된 테스트 피라미드
전체 테스트 비중을 아래와 같은 수치로 구현하는 것이 권장됨
테스트 단위가 좀 더 쪼개질수록 어느 부분에서 에러가 발행했는지 좀 더 찾기가 쉬워짐
즉, End-To-End Testing 보다는 Integrating Testing 에 테스트 비중을 좀 더 많이 가져가야 하고
Integrating Testing 보다 더 쪼개진 단위인 Unit Testing 에 테스트 비중을 좀 더 많이 가져가야 함
📌 프론트엔드 : jest(가장 많이 사용), enzyme
📌 백엔드 : pytest, unittest(장고에서 기본적으로 사용)
(1) 성공해야 할 때 제대로 성공하는가(ex.우리가 원하는 결과가 나오는가) '1'[참]
(2) 실패해야 할 때 제대로 실패하는가(ex.로직상 들어오면 안되는 값이 들어왔을 때 잘 처리가 되는지) '-1'[거짓]
(3) 예외처리 제대로 되어있는가(ex. 로직과 상관없이 key 에러, json 디코더 에러 등에 대해) '0'[예외처리]
최소 두 개 이상의 클래스 또는 서브 시스템의 결합을 테스트하는 방법
Postman 또는 httpie 로 호출해서 Json response가 제대로 출력되는지 확인
Integration Testing이 E2E Testing 다음으로 공수가 많이 듬
프론트엔드 및 백엔드 각각 분리된 서버를 통해 각각 테스트 하는 것
프론트엔드 및 백엔드 모두 완성된 상태가 아니어도 각각 따로 테스트할 수 있음
분리되어 테스트 하므로 프론트엔드 또는 백엔드 중 어디에서 에러가 발생했는지 찾기 수월
종단(Endpoint) 간 테스트로 사용자의 입장에서 테스트
프론트엔드와 백엔드 모두 코드가 완성된 상태에서 진행하는 test
📌 프론트엔드
📌 백엔드
참조