우테코에 들어온지 2일차! 내가 프로그래머가 되고 싶은 이유에 대해 생각해보고,
이번주 코드의 목표인 단위 테스트에 대해서 고민해보는 시간을 가졌다.
💋 나의 목표와 습관에 대한 다짐
나의 목표: 재택근무 할 수 있는 개발자 되기
나만의 방법: 혼자 찾아보고 공부하는 습관 가지기
수업을 듣던 중 느낀 것은,
혼자 고민하던걸 다른 사람도 다 고민한다고 재밌다는 것이다.
💋 테스트케이스를 작성하는 이유
- 다른 사람이 코드를 볼 때 입력과 결과를 알아서 더 쉽게 이해할 수 있음
- 리팩터링 할 때 코드가 깨지는 경우 발견하기 쉬움
- 테스트케이스는 모여서 자산이 됨
💋 테스트케이스가 잘못되는 경우
예) divide 메서드를 작성했는데 a/b가 아닌 a를 리턴하도록 작성 (실수)
하지만 테스트코드에서도 1/3 같은 값이 아닌, 1/1로 테스트한 상황!!! 따라서 a만 리턴하더라도 a/b의 값과 같아서 에러가 발생하지 않음
💋 해결법?
- 랜덤값으로 테스트한다
- 다음날 다시 본다
- 경계값의 극단적 케이스를 만든다
- 실패하는 케이스부터 작성한다
=> 테스트를 무조건 많이 작성하는게 좋은게 아니다?
=> 테스트 케이스만 늘리지 말자!!!
💋 분할정보
잘게 쪼개서 최소한의 단위로 만듦 => 간단해질 확률이 높음
💋 테스트케이스는 어느정도로 만들어야 하나?
테스트 코드를 어느 정도까지 만들어야 하나에 대한 생각은 각기 다르다.
나는 좀 집착하는 편이라서 coverage가 100프로가 될 때까지 작성하기도 했었고, 또 다른 사람들 중에는 List에 추가가 잘 되었나 확인한다거나, 너무 뻔한 부분에 대해서는 테스트 하지 않는다고 답한 사람도 있었다.
지금의 생각으로는, 테스트 케이스는 비용이다.
하지만 불행하게도, IT 기업의 많은 높으신 분들은 테스트 케이스를 작성할 바에는 그 시간(비용)에 프로덕션 코드를 더 쓰는게 좋다고 생각하는 분들도 있다.
프로그래머는 언제나 불안감을 안고 살게 된다. 좋은 테스트 케이스란, 프로그래머가 현재 바뀐 코드에서 에러가 발생하거나, 기능이 잘못 구현되는지에 대해서 불안해하지 않을 수 있게 돕는 장치 정도가 아닐까? 생각한다.
무엇보다도 내가 불안하지 않은 기준을 잡아야 하고, 이 기준이 나와 협업하는 사람들 사이에도 합의가 되어야 한다고 생각한다. 나만 불안하지 않으면 뭐하나, 옆에서 팀원이 손을 벌벌 떨고 있다면 잘못된 팀워크라고 생각한다.
👍 내가 생각하는 좋은 단위 테스트
내가 생각하는 좋은 단위 테스트란, 아래와 같다.
- 단위테스트를 위한 메서드를 만들지 않고서도 모든 로직들을 테스트할 수 있는 것
- 핵심 로직들을 모두 테스트할 수 있음
- 작은 테스트와 프로그램 전체에 대한 테스트가 동시에 모두 잘 작동하는 것
- 프로덕션 코드의 내용을 변경시키지 않는 것
줌 베댓됨 데헷
https://tecoble.techcourse.co.kr/post/2021-05-25-unit-test-vs-integration-test-vs-acceptance-test/
'우아한테크코스5기' 카테고리의 다른 글
[우테코] TDD (Test Driven Development): 테스트 주도 개발이 뭐지? 사용하는 이유? (0) | 2023.02.14 |
---|---|
[우테코] 코드 품질: 좋은 코드는 어떤 코드일까? (0) | 2023.02.08 |
[우테코] 자바 쌩초보의 우아한테크코스 5기 최종 합격 후기 (11) | 2023.01.02 |
[우테코] 우아한테크코스 5기 프리코스 4주차 다리건너기 회고 (0) | 2022.11.22 |
[우테코] 우아한테크코스 5기 프리코스 3주차 로또 회고 (1) | 2022.11.14 |