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

3주차 - 테스트 코드 작성 순서 #18

Open
4 tasks
hou27 opened this issue Jan 10, 2023 · 2 comments
Open
4 tasks

3주차 - 테스트 코드 작성 순서 #18

hou27 opened this issue Jan 10, 2023 · 2 comments
Assignees
Labels
documentation Improvements or additions to documentation

Comments

@hou27
Copy link
Member

hou27 commented Jan 10, 2023

⭐ Chapter 3. 테스트 코드 작성 순서

어떤 테스트로 시작해야 하는지, 우선시 되어야 하는 테스트는 무엇인지를 공부하고
완급 조절을 통해 TDD에 보다 능숙해질 수 있도록 한다.

  • 테스트 작성 순서 연습
  • Chap 3의 내용은 개인 기술 블로그에 정리한 후 자신의 issue에 comment로 링크 남기기
  • 문제 만들고, Core Member에게 제출하기(스터디 전날까지 부탁드려요!)

  • 모든 과정을 마친 후 pull request 올리기
@hou27
Copy link
Member Author

hou27 commented Jan 16, 2023

📚 Chap 3 문제 📚

정리본

빈칸 채우기

Q ) [______ 장점]

  1. 지속적 _______은 코드 가독성이 높아짐
  2. 가독성이 높아지면 개발자는 빠르게 코드 분석 가능
  3. 수정요청이 있다면 변경 코드를 빠르게 찾을 수 있음

Q ) 지속적인 코드 리팩토링은 코드의 _____을 높이고, 이후 _______에 도움을 준다.

O / X 퀴즈

Q ) 예외 상황은 코드를 뒤집거나 조건문을 중복해서 추가해야 하는 일이 벌어지기 때문에, 코드를 모두 작성한 뒤 모든 예외 상황을 고려하여 추후에 적용한다.

Q ) 테스트 코드의 중복 제거는 반드시 제거하는 것이 바람직하다.

Q ) 코드 리팩토링 중 상수를 변수로 바꾸는 리팩토링은 발견 즉시 실행하는 것이 바람직하다.

주관식

Q) 코드 구조가 잘못되면 다음 테스트를 통과시키는 과정에서 코드가 복잡해지거나 구현을 더는 진행하지 못하고 막힐 수 있다. 이런 상황이 오면 어떤 작업을 해줘야 하는가?

순서 정하기

Q ) tdd 완급 조절의 단계를 순서에 맞게 나열하시오.

  1. 값 비교를 이용해서 정해진 값을 리턴
  2. 정해진 값을 리턴
  3. 다양한 테스트를 추가하면서 구현을 일반화

정답

A) 리팩토링

A) 가독성 / 유지보수

A) X

A) X

A) X

A) 리팩토링을 취소해서 코드를 원상 복구한 뒤에 다음 테스트를 진행한다. 그런 뒤 코드의 의미나 구조가 명확해지면 그때 다시 리팩토링을 시도한다.

A) 2 - 1 - 3

Chap 3 전체 문제

<한규범>

tdd 완급 조절의 단계

  1. 정해진 값을 리턴
  2. 값 비교를 이용해서 정해진 값을 리턴
  3. 다양한 테스트를 추가하면서 구현을 일반화

<김정호>

[O / X 퀴즈]

Q. TDD 진행 시 쉬운 테스트부터 진행해야 한다. 그러나 어떤 테스트가 쉬운지 판단하기 쉽지 않으므로 테스트 목록을 작성하고 쉬운 순서대로 나열한 다음, 그 순서 그대로 테스트를 진행해나가면 된다.

A. X

초반에 쉬운 순서대로 나열했다고 하더라도, 어떤 테스트로 시작했는지에 따라

그다음으로 진행하면 쉬울 테스트는 달라질 수 있다.

예를 들면 암호 검사기를 구현하며 쉬운 순서대로 나열했을 때 상단에

  • 모든 조건을 충족하는 경우
  • 모든 조건을 충족하지 않는 경우

위 두 가지가 위치했었다 해도, 둘 중 하나로 테스트를 시작하고 구현했다면 그다음에

정반대의 경우를 테스트하게 되므로 구현 난이도가 올라가게 되어 결코 쉽지 않다.

따라서 반드시 하나의 테스트를 통과시켰다면 그 다음으로 구현하기 쉬운 테스트를 잘 생각해야한다.

<정창우>

Q) 코드 구조가 잘못되면 다음 테스트를 통과시키는 과정에서 코드가 복잡해지거나 구현을 더는 진행하지 못하고 막힐 수 있다. 이런 상황이 오면 어떤 작업을 해줘야 하는가?

A) 리팩토링을 취소해서 코드를 원상 복구한 뒤에 다음 테스트를 진행한다. 그런 뒤 코드의 의미나 구조가 명확해지면 그때 다시 리팩토링을 시도한다.

<장채은>

[______ 장점]

  1. 지속적 _______은 코드 가독성이 높아짐
  2. 가독성이 높아지면 개발자는 빠르게 코드 분석 가능
  3. 수정요청이 있다면 변경 코드를 빠르게 찾을 수 있음

답) 리팩토링

<임건영>

TDD 3주차 문제: 리팩터링을 통해 코드 중복을 줄이고 코드 가독성을 높일 수 있다
정답: o

<박소정>

  1. 지속적인 코드 리팩토링은 코드의 _____을 높이고, 이후 _______에 도움을 준다.
  2. 코드 리팩토링 중 상수를 변수로 바꾸는 리팩토링은 발견 즉시 실행하는 것이 바람직하다. (O / X)
  3. 테스트 코드의 중복 제거는 반드시 제거하는 것이 바람직하다. (O / X)

<김연지>

rladuswl

@hou27
Copy link
Member Author

hou27 commented Jan 16, 2023

@hou27 hou27 closed this as completed Jan 30, 2023
@hou27 hou27 reopened this 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