Search

왜 테스트를 작성해야 하는가?

왜 테스트를 작성하는가?

개발자가 테스트 작성해야 하는 이유

제품 품질

개발자는 작성한 프로그램의 퀄리티에 대한 책임이 있음
QA에 넘기기 전에 기본 요구사항을 모두 만족하는지에 대한 검증은 개발자가 해야 함
자동화된 테스트를 작성해 두지 않으면, 어플리케이션이 복잡해질 수록 테스트 비용이 증가함
이 경우 개발 기간이나 인력 등은 한정되어 있기 때문에, 테스트를 소홀히 하게 되는 경우가 많음.
그렇지 않은 경우 QA 와의 커뮤니케이션 비용이 늘어나, 업무 효율이 떨어지게 됨

코드 품질

코드 품질을 위해서는 계속해서 리팩토링 등의 개선 작업이 필요
이 과정에서 기존에 잘 동작하던 프로그램을 망칠 수 있기 때문에 적극적으로 코드를 개선하지 않게 됨
신뢰할 수 있는 자동화된 테스트가 있으면 적극적으로 코드를 개선할 수 있음

두려움(Fear) -> 자신감(Confidence)

통합 테스트를 하는 이유

테스팅 ROI (투자 수익률)

테스트 코드 작성과 유지보수는 비용이다

테스트가 없는 것보다는 있는 게 무조건 낫다?
테스트는 많을 수록 좋다?
불필요한 테스트나 잘못 짜여진 테스트는 차라리 없는게 나음

비용 대비 효과가 충분한가?

테스트를 작성하는 비용에 비해 얻을 수 있는 효과가 더 큰가가 중요
로직이 거의 없는(trivial) 코드는 따로 테스트하지 않아도 됨
동어 반복적인 테스트를 피하자
테스트 범위에 대한 조절이 필요 (단위 테스트 vs 통합 테스트 vs E2E 테스트)
모든 모듈에 대해 단위 테스트를 작성하는 것은 비효율적
모든 테스트 케이스를 E2E 테스트로만 검증하는 것도 비효율적

커버리지 100%를 목표로 하는 것은 비효율적

라이브러리 등은 100% 커버리지 가능
복잡한 어플리케이션의 경우 적절한 선을 잘 찾는 것이 중요

테스팅 도구와 테스팅 방법론은 아직 성숙한 상태가 아님

특정 방법론이나 도구에 집착하지 말 것
발전하는 테스팅 도구들을 눈여겨 볼 필요도 있음

커버리지 100%?