[우테코] 단위테스트: 좋은 단위테스트에 대한 고민... 단위테스트는 꼭 필요한 것일까?

2023. 2. 8. 11:39· 우아한테크코스5기
목차
  1. 💋 나의 목표와 습관에 대한 다짐
  2. 💋 테스트케이스를 작성하는 이유
  3. 💋 테스트케이스가 잘못되는 경우
  4. 💋 해결법?
  5. 💋 분할정보
  6. 💋 테스트케이스는 어느정도로 만들어야 하나?
  7. 👍 내가 생각하는 좋은 단위 테스트
반응형

우테코에 들어온지 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/

 

단위 테스트 vs 통합 테스트 vs 인수 테스트

소프트웨어 테스트에는 여러 유형들이 있다. 각 테스트는 목적, 방법 등에 따라 차이점을 가진다. 이번 글에서는 그 중 단위 테스트, 통합 테스트, 인수 테스트에 대해 개념을 정리하려 한다.

tecoble.techcourse.co.kr

 

반응형

'우아한테크코스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
  1. 💋 나의 목표와 습관에 대한 다짐
  2. 💋 테스트케이스를 작성하는 이유
  3. 💋 테스트케이스가 잘못되는 경우
  4. 💋 해결법?
  5. 💋 분할정보
  6. 💋 테스트케이스는 어느정도로 만들어야 하나?
  7. 👍 내가 생각하는 좋은 단위 테스트
'우아한테크코스5기' 카테고리의 다른 글
  • [우테코] TDD (Test Driven Development): 테스트 주도 개발이 뭐지? 사용하는 이유?
  • [우테코] 코드 품질: 좋은 코드는 어떤 코드일까?
  • [우테코] 자바 쌩초보의 우아한테크코스 5기 최종 합격 후기
  • [우테코] 우아한테크코스 5기 프리코스 4주차 다리건너기 회고
깃짱
깃짱
연새데학교 컴퓨터과학과 & 우아한테크코스 5기 백엔드 스타라이토 깃짱
반응형
깃짱
깃짱코딩
깃짱
전체
오늘
어제
  • 분류 전체보기
    • About. 깃짱
    • Weekly Momentum
      • 2024
    • PROJECT
      • AIGOYA LABS
      • Stamp Crush
      • Sunny Braille
    • 우아한테크코스5기
    • 회고+후기
    • Computer Science
      • Operating System
      • Computer Architecture
      • Network
      • Data Structure
      • Database
      • Algorithm
      • Automata
      • Data Privacy
      • Graphics
      • ETC
    • WEB
      • HTTP
      • Application
    • C, C++
    • JAVA
    • Spring
      • JPA
      • MVC
    • AI
    • MySQL
    • PostgreSQL
    • DevOps
      • AWS
      • 대규모 시스템 설계
    • frontend
      • HTML+CSS
    • NextJS
    • TEST
    • Industrial Engineering
    • Soft Skill
    • TIL
      • 2023
      • 2024
    • Linux
    • Git
    • IntelliJ
    • ETC
      • 日本語

블로그 메뉴

  • 홈
  • 깃허브

인기 글

최근 글

태그

  • TDD
  • 컴포지션
  • 우아한테크코스5기
  • 우아한테크코스
  • 우테코5기
  • Java
  • Stream
  • 상속과조합
  • 람다
  • Composition
  • OOP
  • 람다와스트림
  • 우테코
  • 함수형프로그래밍
  • 스트림
  • 레벨로그
  • 예외
  • 조합
  • lamda
  • 상속
hELLO · Designed By 정상우.v4.2.0
깃짱
[우테코] 단위테스트: 좋은 단위테스트에 대한 고민... 단위테스트는 꼭 필요한 것일까?
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.