-
TDD 17장. Money 회고 요약 및 정리JAVA 2022. 6. 27. 01:21
17장. Money 회고 요약 및 정리
메타포
어떤 메타포를 선택하느냐
→ 완전 다른 방식의 설계
내가 지금까지 작성한 모든 프로그램을 20번씩 다시 작성해 본다면 어떨까?매번 새로운 통찰을 얻고 놀라움을 경험할 것인가? 더 신중을 기해서 모든 통찰을 세 번 안에 다 얻어낼 방법이 있을까? 아니면 한번에?
왜 자신이 짠 코드를 다시 짜면 더 잘 짤 수 있다고 이야기 하는지 더 와 닿는 부분이다.
JUnit 사용도
실행 버튼을 정확히 125번 눌렀다.
…
보통 일분에 한 번 정도 테스트를 실행했다.TestCode가 없었다면 과연 몇번이나 테스트를 할 수 있었을까?
TestCode만 있다면 테스트를 수행하는 건 너무나도 간단하기 때문에 수 없이 많은 테스트를 할 수 있게 한다.
TestCode는 개발자의 내적 안정감과 안정적인 서비스를 할 수 있게 해준다.코드 메트릭스
- 모델 코드와 테스트 코드 사이의 대략적인 줄 수의 비율은 비슷하다
- 다형성을 주로 사용하면 실제 코드의 복잡도가 낮다
프로세스
- 작은 테스트를 추가
- 모든 테스트를 실행하고, 실패하는 것을 확인
- 코드에 변화를 준다
- 모든 테스트를 실행하고, 성공하는 것을 확인
- 중복을 제거하기 위해 리팩토링
테스트의 질
다른 종류의 테스트들을 대체할 수 있을거라고 예상해서는 안 된다.
- 성능 테스트
- 스트레스 테스트
- 사용성 테스트
최종검토
TDD를 가르칠 때 사람들이 자주 놀라는 세 가지
- 테스트를 확실히 돌아가게 만드는 세 가지 접근법
- 가짜로 구현하기
- 삼각측량법
- 명백하게 구현하기
- 설계를 주도하기 위한 방법으로 테스트 코드와 실제 코드 사이의 중복을 제거
- 테스트 사이의 간격을 조절할 수 있는 능력
요약
TDD는 아주 짧은 주기의 프로세스를 가지고 있고, 제품 코드와 비슷한 양의 테스트 코드가 만들어지게 된다. 하지만 TestCode가 있다면 우리가 일반적으로 생각하는 것보다 수많은 테스트를 아주 짧은시간에 수행해 볼 수 있고 개발자와 시스템의 안정감을 높일 수 있다. 이렇게 하는 TDD가 성능 테스트, 스트레스 테스트, 사용성 테스트를 대체할 순 없다.
'JAVA' 카테고리의 다른 글
TDD 요약 정리 - 테스트 주도 개발/테스팅 패턴, 빨간/초록 막대 (0) 2022.07.04 TDD - 2부 xUnit 간단 정리 (0) 2022.06.27 primitive type vs wrapper class (0) 2021.10.31 Builder Pattern (0) 2021.06.03 메서드 추출(Extract Method) (0) 2021.05.18