개발자가 개발에 착수하거나 배포하기 전
진행해야 하는 테스트가 크게 세 가지가 있다.
인수 테스트는 시나리오 자체를 테스트하는 방식이고
통합 테스트는 실질적인 코드들, 모듈들의 묶음을 테스트 하는 방식이며
단위 테스트는 모듈 하나, 함수 하나 등 세부적인 부분을 테스트하는 방식이다.
이 중 단위 테스트(unit test)에 대해 배우고 적용해 본 내용을
간략히 적어본다.
기능을 구현하고 제대로 동작하는지 일일이 수작업으로
테스트를 진행하는 건 비효율임을 누구나 알 수 있다.
항상 일정하게 정확하고 확실한 테스트를 위해
번거롭지만 유닛 테스트를 진행하는 건
개발자로서 바람직한 태도, 혹은 필수적인 요건이다.
내가 이해한 유닛 테스트의 개념은
input을 정해 줬을 때 내가 의도한 output이 나오는지를
테스트하는 것이다.
외부 모듈 떼고 내가 작성한 코드, 기능을 하나씩 떼어내어서
임의의 input 값을 줬을 때 코드에 문제가 없다면
지정한 output가 동일한 결과가 출력돼야 한다.
유닛테스트를 직접 작성하고 돌려보며 느꼈지만
번거롭고 귀찮은 작업이긴 해도 만들어두면
정말 편리하겠다는 생각이 들었다.
문제가 발생해도 각 개개의 단위별 테스트이다 보니
바로 해결도 가능하고
로컬단에서 테스트도 가능하며
일단 유닛테스트에 통과했다면 로직 자체에 문제가 없는 것이니
리팩토링 등을 할 때도 유용할 것이다.
유닛테스트를 생활화하는 개발 습관을 길러야겠다는 생각이 든다.