TDD 006: 테스트 코드는 왜 필요할까?

Raymond Yoo·2022년 1월 15일
0

TDD

목록 보기
6/6

이 포스트는 더 많이 조사하고 학습한 후에 수정해야 한다.
아래에는 지금 당장의 생각을 기록해 둔다.


(개인적인 생각)

테스트 코드의 장점

  1. 개발 단계에서 보다 빠르게 현재 구현의 오류를 발견할 수 있게 도와준다.
    테스트 코드는 QA, staging 단계까지 가기 전에
    현재 작성한 함수, 클래스 메소드의 문제점을 파악해서
    개발자가 즉각적으로 코드를 개선하도록 유도한다.

  2. 개발할 떄 생각의 흐름을 놓치지 않도록 도와준다.

  3. 코드의 의도를 명확하게 파악할 수 있도록 도와준다.
    테스트 코드를 실행해보고 천천히 읽어보면
    주석, 문서가 없더라도 소스코드를 이해하는데 큰 어려움이 없다.

  4. 개발자가 자신감 있게 리팩터링을 할 수 있게 된다.
    리팩터링은 최소한의 수준으로 코드 퀄리티를 유지하는 방법이라고 생각한다.
    그러나 QA까지 통과한 프로덕션 코드를 바꾸는 것은
    사실 오류를 발생시킬 수도 있는 굉장히 위험천만한 작업이다.
    그러나 자신이 다루는 프로젝트에 일정 수준 이상의 테스트 코드가 갖추어져 있다면
    리팩터링을 위한 일종의 안전장치가 있는 셈이라고 볼 수 있다.
    테스트 코드가 있으니 리팩터링이 용이해지고,
    리팩터링을 통해서 소프트웨어 디자인, 아키텍쳐가 개선된다면
    개발자의 업무 효율성은 증가한다.
    업무 효율성이 늘었으니 같은 업무를 보다 짧은 시간에 완료할 수 있게 되고
    다음 작업으로 빠르게 전환할 수 있다.
    개발자들은 더욱 많은 비즈니스 가치를 창출할 수 있게 된다.
    개발자 개인으로서 성과가 높아졌으니 회사에서 개인에 대한 평가가 높아질 것이고
    회사 입장에서도 비즈니스 확장의 속도, 이슈의 처리 속도가 빨라졌으니 더 나은 서비스를 제공할 있게 되었다.
    또한 여유시간을 이용해서 더 견고한 테스트 코드를 작성할 수 있게 된다.
    테스트 코드가 견고해졌으니 기존 코드에 숨어있던 이슈를 발견해서 개선할 수도 있고
    앞으로 프로젝트를 리팩터링 하더라도 오류가 발생할 가능성은 더 낮아졌다.
    리팩터링이 보다 용이해졌으니 개발자의 업무 효율성은 더욱 증가한다.
    선순환 구조의 시작점이 바로 테스트 코드인 것 같다.

profile
세상에 도움이 되고, 동료에게 도움이 되고, 나에게 도움이 되는 코드를 만들고 싶습니다.

0개의 댓글