테스트 전략
단위·통합·UI 테스트의 역할과 경계를 구분합니다.
QUALITY · 14 ARTICLES
좋은 코드는 한 번 잘 짜는 코드보다 안심하고 바꿀 수 있는 코드에 가깝습니다. 테스트 전략과 테스트 더블, 코드 냄새, 레거시 개선을 실제 변경 흐름으로 연결합니다.
TOPIC MAP
단위·통합·UI 테스트의 역할과 경계를 구분합니다.
FIRST, TDD, Mock과 Stub을 실전 기준으로 익힙니다.
변경을 어렵게 만드는 구조적 신호를 발견합니다.
동작을 보존하며 레거시 코드를 개선합니다.
START HERE
기초 개념에서 다음 단계로 자연스럽게 이어지는 세 편을 골랐습니다.
iOS 개발을 하다 보면 "테스트 코드 좀 짜야 하는데…" 하면서 자꾸 미루게 되죠. 막상 XCTest를 열어보면 뭐부터 손대야 할지 감이 안 오거든요.
읽어보기스파게티 코드가 가리키는 것은 길이나 지저분함이 아니라 제어 흐름입니다. 1968년 다익스트라의 goto 반대 편지에서 출발해 goto가 사라진 뒤에도 스파게티가 남은 이유와 순환 복잡도로 재는 법을 정리했습니다.
읽어보기ALL ARTICLES
테스트 플랜은 실행할 테스트와 실행 조건을 .xctestplan 파일로 관리합니다. 스킴 설정만으로 부족한 이유와 대상 선택, 구성 나누기, 커버리지·실행 순서·반복 설정, xcodebuild 연동까지 정리했습니다.
읽어보기코드 커버리지 100%가 버그 없는 코드를 뜻하지는 않습니다. 실무에서 통용되는 70~80%대 기준과, 숫자보다 먼저 확인해야 할 미검증 분기를 골라내는 판단법을 정리했습니다.
읽어보기레거시 코드는 리팩터링보다 현재 동작을 그대로 고정하는 특성화 테스트가 먼저입니다. 의존성 때문에 테스트가 붙지 않는 코드를 이음새로 끊어내는 순서까지 실전 절차로 정리했습니다.
읽어보기Swift 5.5 이상에서는 테스트 함수를 async로 선언하고 await로 결과를 기다린 뒤 검증하면 됩니다. 에러 검증, 오래된 콜백 API 테스트, expectation을 아직 써야 하는 경우까지 정리했습니다.
읽어보기iOS 개발하면서 테스트 코드 짜다 보면 XCTest에 슬슬 답답함을 느끼는 순간이 옵니다.
읽어보기"이거 언제 다 짜고 있어..." 기능 하나 만드는 데도 시간이 빠듯한데, 테스트 코드까지 짜라고 하면 솔직히 한숨부터 나옵니다.
읽어보기