Notice
Recent Posts
Recent Comments
Link
관리 메뉴

김종권의 iOS 앱 개발 알아가기

[Refactoring] 4. 테스트 구축하기 (테스트 코드가 중요한 이유) 본문

Refactoring (리펙토링)

[Refactoring] 4. 테스트 구축하기 (테스트 코드가 중요한 이유)

jake-kim 2023. 1. 19. 20:11

테스트 코드가 개발 효율을 높여주는 이유?

  • 테스트 코드는 디버깅하는데 시간을 줄여줌
    • 개발자는 보통 실제로 코드를 작성, 설계하는 시간의 비중은 그리 크지 않고, 대부분의 시간은 디버깅에 소요
    • 버그 자체를 수정하는데는 오랜 시간이 걸리지 않지만, 버그를 찾는데 오랜 시간이 소요
    • 테스트 코드를 짠 경우 > 버그를 찾을려고 일일이 디버깅하지 않아도, 테스트 코드에 걸리게 되어 쉽게 잘못된 곳이 어디인지 파악이 가능

테스트 코드가 시간이 걸린다는 주장의 이유?

  • 테스트 코드를 작성하려면 부가적인 코드를 상당량 작성해야 하는데, 실제로 테스트가 프로그래밍 속도를 높여주는 경험을 하지 않았기 때문에 시간이 걸린다고 느낄 수 있음
  • 테스트 코드의 목적은 디버깅하는 시간을 줄여주는 것이므로, 그 관점에서 생각한다면 테스트 코드는 효율적인 수단이 될 것

테스트 코드가 주는 이점

  • 버그에 대한 디버깅 시간이 단축
  • 테스트를 작성하기 가장 좋은 시점은 코딩을 시작하기 전이고, 이 때 구현체보다는 인터페이스에 집중하게 되는 장점이 존재
  • 코딩이 완료되는 시점을 정확하게 판단이 가능 (완료 시점 = 테스트를 모두 통과한 시점)
  • 코드를 리펙토링할 때, 해당 코드가 잘 동작하는지 알려면 테스트 코드가 존재해야 검증이 가능하므로 곧 리펙토링 하기 위해선 테스트 코드가 필요

 cf) TDD(Test Driven Development)

  • 아래의 짧은 주기 반복
    • 처음에는 통과하지 못할 테스트 작성 > 이 테스트를 통과하게끔 코딩 > 결과 코드를 최대히 깔끔하게 리펙토링하는 과정

* 테스트 코드 관련 코드는 비동기 테스트 방법 포스팅 글 참고

 

* 참고

- Refactoring (Marting Flowler)

Comments