Unit test??
E2E testing - UI testing 이라고도 부른다. 만든 페이지를 띄워서 브라우저에 실제 값을 입력하며 테스트하는 방법이다.
Integration testing - Httpie 나 Postman으로 테스트 하는 방법이다.
Unit testing - 함수단위로 로직을 테스트하는 테스트코드를 짜서 테스트 한다.
현업에서는 대게 Unit Test를 하고 있을것이다.
E2E 나 Integration은 개발공수가 비교적 많이 든다. 물론 E2E가 개발공수가 더 많이 든다.
Unit Test는 경제적이다. E2E가 가내수공업.. 이라면 Unit Test 는 가내수공업을 자동화 공정으로 구현했다는 느낌이 되려나?
여튼 Resource를 최대한 효율적으로 이용하기 위해서는 Unit Test 의 이용이 개발과정에서 필연적인 것이다.
물론 Unit Test 만으로는 os나 브라우저에 따라 생기는 버그라던지 코드 외의 것을 고려한 버그는 잡기 힘들기에 다른 테스트 방법도 이용해야 한다. Google Test Automation Conference 에서는 다음과 같은 비중으로 테스팅을 제안했다.
- E2E test: 10%
- Integrating test : 20%
- Unit test : 70%
Unit test의 일반 원칙이나 방법들은 나말고도 구글링 하면 많이 나오니까
내가 생각하는 Unit test 가 중요한 이유에 대해서 말해보자면
개발은 아무래도 개인 프로젝트가 아닌 경우가 많다.
팀단위로 이루어지는 경우가 대부분이고 다른 사람이 진행하던 프로젝트에 내가
이어서 개발을 하게 될 수도 있는 것이고, 내가 인계를 해줘야 하는 경우도 있을 것이다.
내가 개발 이전에 했던 업무도 비슷하다.
나는 편의점의 Supervisor 였는데 반기내지 년단위로 담당 점포들이 변경된다.
그러면 인수 받는 입장에서 앞선 담당자가 해당 점포의 히스토리나 진행 업무,
발생한 이슈 등에 대한 정보를 넘겨받지 못하면 장기간 삽질만 하고 있을 확률이 크다.
그래서 보통은 해당 내용들을 시간 단위든 업무단위든 페이퍼로 작성해서 인수인계 해주는 것이 보통이다.
개발도 마찬가지라고 생각한다. 디버깅을 위해서는 당연하고,
나 뿐만이 아닌 같이 일하는 사람들을 위해서 Unit test 는 작성되어져야 한다고 생각한다.