Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

9주차 - 테스트 범위와 종류 #86

Open
4 tasks
hou27 opened this issue Feb 20, 2023 · 4 comments
Open
4 tasks

9주차 - 테스트 범위와 종류 #86

hou27 opened this issue Feb 20, 2023 · 4 comments
Assignees
Labels
documentation Improvements or additions to documentation

Comments

@hou27
Copy link
Member

hou27 commented Feb 20, 2023

⭐ Chapter 9. 테스트 범위와 종류

테스트의 범위와 종류에 대해 알아보고 차이를 구분할 수 있도록 한다.

  • 테스트의 범위와 종류 알아보기
  • Chap 9의 내용을 개인 기술 블로그에 정리한 후 자신의 issue에 comment로 링크 남기기
  • 문제 만들고, Core Member에게 제출하기(스터디 전날까지 부탁드려요!)

  • 모든 과정을 마친 후 pull request 올리기(pr 올릴 변경사항이 없다면 설명을 남긴 후, 체크해주세요)
@hou27 hou27 added this to the GDSC MJU 1기 TDD 스터디 milestone Feb 20, 2023
@hou27 hou27 added the documentation Improvements or additions to documentation label Feb 20, 2023
@hou27 hou27 changed the title 9주차 9주차 - 테스트 범위와 종류 Feb 20, 2023
@rladuswl
Copy link
Collaborator

rladuswl commented Feb 26, 2023

📚 Chap 9 문제 📚

정리본

X ( 전체 문제 참고 )

Chap 9 전체 문제

<김정호>

Q. 통합 테스트 구성 시 제어하기 어려운 외부 연동 대상이 있다면 그런 부분은 대역으로 대체해야한다.(O, X)

A. O

<김연지>

image

테스트 범위는 테스트의 목적과 수행하는 사람에 따라 달라진다. 테스트 범위에 따른 종류는 단위 테스트, 기능 테스트, 통합 테스트로 나눌 수 있으며 각각의 테스트 사용 범위를 정확히 분류하여 알고 있어야 한다.

<장채은>

Q. 테스트 속도는 ___ 테스트가 다른 테스트들보다 속도가 월등히 높기 때문에 가능하면 단위 테스트에 다양한 상황을 다루고, _________에서는 주요 상황에 초점을 맞춰 코드를 작성해야 한다.

A. 1. 단위 2. 통합, 기능 테스트

@rladuswl
Copy link
Collaborator

김연지

문제 및 해설

Q. 테스트는 DB 연결, 소켓 통신, 스프링 컨테이너 초기화 같이 테스트 실행 속도를 느리게 만드는 요인이 많다. 테스트는 브라우저나 앱을 구동하고 화면의 흐름에 따라 알맞은 상호작용을 해야 한다.

A. 통합, 기능

문제 선정 이유
해당 챕터에서 가장 중요하게 다룬 개념을 문제로 제출하였습니다. 테스트 범위에 따른 종류는 단위 테스트, 기능 테스트, 통합 테스트로 나눌 수 있으며 각각의 테스트 사용 범위를 정확히 분류하여 아는 것이 중요합니다.

@hou27
Copy link
Member Author

hou27 commented Feb 26, 2023

김정호

문제 및 해설

Q. 통합 테스트 구성 시 제어하기 어려운 외부 연동 대상이 있다면 그런 부분은 대역으로 대체해야한다.(O, X)

A. O

해설

통합 테스트에서는 외부 연동 대상에 대한 제어가 어렵기 때문에 해당 부분을 대역(mock)으로 대체하여 테스트하는 것이 일반적인 방법입니다. 이렇게 대역을 사용하면 테스트의 의존성을 줄일 수 있고, 외부 시스템에 의존하지 않고도 테스트를 수행할 수 있습니다. 하지만 이 경우에도 실제 시스템과의 상호 작용을 검증하기 위해 다른 형태의 테스트(예: 엔드 투 엔드 테스트)를 추가로 수행해야 할 수도 있습니다.

그러나 통합 테스트에서 실제 데이터 베이스 또는 외부 연동 대상을 대역으로 대체하게 된다면 이는 회귀 방지를 낮추게 되므로 좋은 선택지라고 할 수 없습니다.

그런 경우엔 차라리 통합 테스트를 작성하지 않고 단위 테스트에 집중하는 것이 바람직할 수 있습니다.

회귀 방지란?

회귀 : SW의 버그를 말한다. 코드 수정 후 의도한 대로 코드가 작동하지 않는 경우를 말한다.

즉 회귀 방지란 코드 수정 후 버그가 있었는대도 불구하고 테스트가 통과하는 경우를 방지한다는 것이다.

문제 선정 이유

공부하면서 개인적으로 헷갈렸던 부분을 정리하면서 공유하고자 문제로 만들었습니다.

@hou27
Copy link
Member Author

hou27 commented Mar 5, 2023

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests

2 participants