ABOUT ME

Today
Yesterday
Total
  • TDD 17장. Money 회고 요약 및 정리
    JAVA 2022. 6. 27. 01:21

    17장. Money 회고 요약 및 정리

    메타포

    어떤 메타포를 선택하느냐

    → 완전 다른 방식의 설계

    내가 지금까지 작성한 모든 프로그램을 20번씩 다시 작성해 본다면 어떨까?매번 새로운 통찰을 얻고 놀라움을 경험할 것인가? 더 신중을 기해서 모든 통찰을 세 번 안에 다 얻어낼 방법이 있을까? 아니면 한번에?

    왜 자신이 짠 코드를 다시 짜면 더 잘 짤 수 있다고 이야기 하는지 더 와 닿는 부분이다.

    JUnit 사용도

    실행 버튼을 정확히 125번 눌렀다.

    보통 일분에 한 번 정도 테스트를 실행했다.

    TestCode가 없었다면 과연 몇번이나 테스트를 할 수 있었을까?

    TestCode만 있다면 테스트를 수행하는 건 너무나도 간단하기 때문에 수 없이 많은 테스트를 할 수 있게 한다.
    TestCode는 개발자의 내적 안정감과 안정적인 서비스를 할 수 있게 해준다.

    코드 메트릭스

    • 모델 코드와 테스트 코드 사이의 대략적인 줄 수의 비율은 비슷하다
    • 다형성을 주로 사용하면 실제 코드의 복잡도가 낮다

    프로세스

    1. 작은 테스트를 추가
    2. 모든 테스트를 실행하고, 실패하는 것을 확인
    3. 코드에 변화를 준다
    4. 모든 테스트를 실행하고, 성공하는 것을 확인
    5. 중복을 제거하기 위해 리팩토링

    테스트의 질

    다른 종류의 테스트들을 대체할 수 있을거라고 예상해서는 안 된다.

    • 성능 테스트
    • 스트레스 테스트
    • 사용성 테스트

    최종검토

    TDD를 가르칠 때 사람들이 자주 놀라는 세 가지

    • 테스트를 확실히 돌아가게 만드는 세 가지 접근법
      • 가짜로 구현하기
      • 삼각측량법
      • 명백하게 구현하기
    • 설계를 주도하기 위한 방법으로 테스트 코드와 실제 코드 사이의 중복을 제거
    • 테스트 사이의 간격을 조절할 수 있는 능력

    요약

    TDD는 아주 짧은 주기의 프로세스를 가지고 있고, 제품 코드와 비슷한 양의 테스트 코드가 만들어지게 된다. 하지만 TestCode가 있다면 우리가 일반적으로 생각하는 것보다 수많은 테스트를 아주 짧은시간에 수행해 볼 수 있고 개발자와 시스템의 안정감을 높일 수 있다. 이렇게 하는 TDD가 성능 테스트, 스트레스 테스트, 사용성 테스트를 대체할 순 없다. 

    댓글

Designed by Tistory.