단위 테스트 1장

이현광·2022년 3월 10일
0

단위 테스트

목록 보기
1/6
post-thumbnail

단위 테스트를 배우는 것

단위 테스트에 시간을 투자할 때는 항상 최대한의이득을 얻도록 노력해야하며, 테스트에 드는 노력을 가능한 줄이고 그에 따르는 이득을 최대화 해야한다.

위와 같은 균형을 달성한 프로젝트는 무난하게 성장하고 유지 보수가 많이 필요하지 않는다.
하지만 그렇지 않은 프로젝트는 단위테스트를 많이 작성하더라도 버그와 유지비로 프로젝트 진행이 느려지게 된다.

단위 테스트 현황

그냥 쓰고 버리는 프로젝트가 아니라면 단위 테스트는 늘 적용해야한다.

많은 프로젝트에는 자동화된 테스트가 있고 심지어 많은 테스트가 실행되지만 테스트를 해도 개발자들이 원하는 결과를 얻지 못하는 경우가 많다.

단위 테스트 목표

프로젝트의 지속 가능한 성장을 가능하게 하는 것이다.
지속 가능하다는 것이 핵심이다.

개발 속도가 감소하는 현상을 소프트웨어 엔트로피라고도 한다.
지속적인 정리와 리팩토링을 하지 않으면 시스템이 복잡해지고 무질서해진다. 하나의 버그를 수정하면 더 많은 버그를 양산하고 한 부분을 수정하면 다른 부분들이 고장난다.

테스트는 위와 같은 경향을 뒤집을 수 있다.
테스트는 안전망과 같은 역할을 하며 대부분의 회에대 대한 보험을 제공하는 도구라 할 수 있다.

좋은 테스트와 좋지 않은 테스트를 가르는 요인

  • 기반 코드를 리팩토링 할때 테스트도 리팩토링
  • 각 코드 변경 시 테스트를 실행
  • 테스트가 잘못된 경고를 발생시킬 경우 처리
  • 기반 코드가 어떻게 동작하는지 이해하려고 할 때는 테스트를 읽는 데 시간을 투자

코드 커버리지

테스트 코드가 검증하는 비율을 말한다.
이안에는 커버리지 지표 (전체 코드 내용중에서 몇줄이 테스트 코드가 검증하는지) 와 분기 커버리지 지표 (통과 분기의 비율을 계산하는 지표)가 있다.

하지만 코드에는 많은 예외들이 있고 지표만으로는 단위테스트가 얼마나 좋고 나쁜지를 판단할 수 없다는 것을 보여준다.
철저함을 판단할 때 또한 그렇다.

그렇기에 커버리지를 일정 목표로 삼는 것이 아닌 그저 숫자로서만 보는 것이 맞다.

성공적인 테스트 스위트 만들기

  • 개발 주기 통합하기
  • 코드 베이스에서 가장 중요한 부분만을 대상으로 하기
  • 최소한의 유지비로 최대의 가치를 끌어내기

느낀점

기존 친구들과 하던 프로젝트에서 뒤늦게 테스트 코드의 필요성을 알고 이번 졸업 프로젝트에서 적용 시켜보고자 유닛 테스트 코드 책을 사서 공부를 하기 시작하였다.
많은 지식이 없지만 책을 통해 테스트 코드의 중요성과 작성법과 같은 것을 많이 배워가고 싶다....

사실 처음에 JAVA로 이루어진 책인 줄 알았지만 C#이었다는.... 해프닝이있었다.

1장부터 끝까지 작성하는 내가 되길 바라면서 이번 장은 여기까지~

profile
cccooodddiiinnngg

0개의 댓글