테스트 면접 질문
XCTest·Swift Testing·목킹·스냅샷·UI 테스트·CI. 실제 iOS 면접에서 나온 46문항입니다.
- 테스트주관식
단위 테스트의 목적
"테스트 쓸 시간에 기능 하나 더 만들자"는 팀원에게 단위 테스트가 왜 필요한지 설득해야 합니다. 어떤 근거를 들겠습니까?
#unit-test #xctest #why-test #regression
- 테스트객관식
XCTest 기본 규칙
XCTest가 테스트 메서드로 인식해 실행하기 위해 필요한 조건을 모두 고르세요.
#xctest #xctestcase #test-discovery
- 테스트주관식
테스트 유형과 피라미드
단위 테스트, 통합 테스트, UI 테스트는 무엇이 다른가요?
#unit-test #integration-test #ui-test #test-pyramid
- 테스트객관식
테스트 더블 구분
"분석 이벤트 전송 객체를 대체해, 뷰모델이 어떤 이벤트를 어떤 인자로 몇 번 보냈는지 테스트에서 검사하고 싶다." 이 목적에 가장 잘 맞는 테스트 더블은?
#test-double #spy #stub #mock
- 테스트객관식
@testable import
테스트 타깃에서 @testable import MyApp을 했을 때 접근할 수 있게 되는 선언은?
#testable #access-control #test-target
- 테스트주관식Pandora커뮤니티 전언
오디오 ViewModel 단위 테스트
음악 앱의 재생 목록 ViewModel이 Repository에서 곡 목록을 받아 로딩, 성공, 오류 상태를 만듭니다. 실제 네트워크 없이 이 상태 전이를 어떻게 테스트하겠습니까?
#unit-test #fake #viewmodel #state
- 테스트주관식
테스트 구조와 TDD
테스트 코드를 Arrange-Act-Assert(Given-When-Then)로 나누는 이유는 무엇인가요?
#aaa #given-when-then #tdd #red-green-refactor
- 테스트주관식
테스트 더블
테스트 더블(Test Double)이란 무엇인가요?
#test-double #mock #stub #fake
- 테스트주관식
API 의존 화면 테스트
화면이 API 응답에 강하게 의존하는데, 서버 요청 없이 이 화면(뷰모델 포함)의 동작을 테스트하려면 코드를 어떻게 바꾸겠습니까?
#view-model #dependency-injection #stub #mvvm
- 테스트주관식
private 메서드 테스트
커스텀 뷰 안의 private 메서드에 복잡한 계산 로직이 있어서 테스트하고 싶습니다. 이 private 메서드를 어떻게 테스트하겠습니까, 아니면 하지 말아야 할까요?
#private #testable #encapsulation #custom-view
- 테스트주관식
비동기 테스트
async/await 기반 API는 단위 테스트에서 어떻게 테스트하나요?
#async #xctestexpectation #async-await #swift-testing
- 테스트객관식
XCTest 생명주기
다음 XCTestCase에서 testA와 testB가 실행될 때 호출되는 순서로 옳은 것은? [코드]
#xctest #setup #teardown #lifecycle
- 테스트객관식
코드 커버리지
코드 커버리지에 대해 옳은 설명을 모두 고르세요.
#coverage #xcode #metrics
- 테스트주관식
뷰모델 테스트
다음 뷰모델의 load()를 테스트한다면 어떤 케이스를 검증하겠습니까? [코드]
#mvvm #view-model #observation #state
- 테스트객관식
Swift Testing 매크로
Swift Testing의 #expect와 #require에 대해 옳은 설명을 모두 고르세요.
#swift-testing #expect #require #macros
- 테스트주관식X (Twitter)
테이크홈 과제의 테스트 배치
"3~5시간 안에 끝내라"는 안내와 함께 "기본 단위 테스트를 포함한 최소 iOS 앱"을 만드는 테이크홈 과제를 받았습니다. 시간이 빠듯할 때 어디에 어떤 테스트를 넣겠습니까?
#take-home #unit-test #prioritization #architecture
- 테스트주관식Headspace
테스트와 개발 워크플로 통합
테이크홈 과제의 서술 문항입니다. "테스트를 개발 워크플로에 어떻게 통합하나요?" 코드를 작성하는 순간부터 머지·릴리즈까지 테스트가 어느 시점에 어떻게 실행되는지 설명해 주세요.
#workflow #ci #pull-request #test-plan
- 테스트객관식Apple
자료구조 구현의 테스트 설계
CoderPad에서 push·pop·top·max가 모두 O(1)인 MaxStack을 Swift 프로토콜 기반으로 구현하고 XCTest로 검증하라는 과제를 받았습니다. 적절한 테스트를 모두 고르세요.
#xctest #test-design #edge-case #coderpad
- 테스트주관식Deliveroo
PR 코드 리뷰에서 보는 것
테이크홈 과제로 "기존 PR을 리뷰하고 코멘트를 남기라"는 과제를 받았습니다. iOS PR을 리뷰할 때 무엇을 어떤 순서로 보겠습니까?
#code-review #pull-request #quality #take-home
- 테스트주관식토스커뮤니티 전언
테스트 가능한 코드 작성 원칙
"단위 테스트를 고려한 코드를 작성해 본 경험과 거기서 얻은 철학·노하우"를 묻는 질문입니다. 테스트를 염두에 두고 코드를 쓸 때 지키는 원칙을 구체적인 코드 수준 습관으로 말해 주세요.
#testability #dependency-injection #pure-function #design
- 테스트객관식카카오뱅크커뮤니티 전언
Quick·Nimble
팀 코드베이스가 Quick과 Nimble을 씁니다. 두 라이브러리에 대해 옳은 설명을 모두 고르세요.
#quick #nimble #bdd #xctest
- 테스트주관식Barclays커뮤니티 전언
커버리지의 해석
iOS 결제 앱의 line coverage가 90%인데도 결제 실패 처리가 릴리스마다 회귀합니다. 이 90%라는 숫자가 보장하는 것과 보장하지 못하는 것은 무엇입니까?
#testing #coverage #risk #unit-test
- 테스트주관식요기요커뮤니티 전언
CI에서 신뢰할 수 있는 테스트
배달 앱 iOS 프로젝트의 unit test와 UI test가 로컬에서는 통과하는데 CI에서만 가끔 실패합니다. 이런 flaky test를 어떻게 줄이겠습니까?
#ci #flaky-test #fixture #test-plan
- 테스트주관식마이리얼트립커뮤니티 전언
UI 테스트의 범위
여행 예약 앱의 검색 화면 UI test가 모든 API를 실제 서버로 호출해 느리고 자주 깨집니다. UI test에 남길 것과 unit이나 integration test로 내려보낼 것을 어떻게 나누겠습니까?
#ui-test #stub #launch-arguments #testing-pyramid
- 테스트주관식클래스101커뮤니티 전언
TDD의 작은 피드백 루프
온라인 강의 앱에 쿠폰 할인 가격 계산 규칙을 TDD로 추가합니다. red-green-refactor 사이클에서 첫 번째 테스트로 어떤 예제를 고르겠습니까?
#tdd #red-green-refactor #unit-test #refactoring
- 테스트주관식SOOP커뮤니티 전언
비동기 스트림 테스트
라이브 방송 앱의 채팅 ViewModel이 AsyncSequence로 들어오는 메시지를 구독해 목록에 붙입니다. 테스트에서 이 메시지 스트림을 어떻게 제어하겠습니까?
#asyncstream #testing #cancellation #realtime
- 테스트주관식강남언니커뮤니티 전언
코드 리뷰와 회귀 테스트
미용 시술 예약 앱에서 버그를 고친 PR에 "재현 테스트가 없다"는 리뷰가 달렸습니다. 리뷰어가 코드를 이미 읽고 승인할 수 있는데도 재현 테스트를 따로 요구하는 이유는 무엇입니까?
#code-review #regression #behavior #testing
- 테스트주관식번개장터커뮤니티 전언
테스트 자동화의 계층
중고 거래 앱의 상품 등록 기능에 자동화 테스트를 처음 붙입니다. unit test, API 계약 test, UI test 세 층에 각각 무엇을 맡기겠습니까?
#test-pyramid #ci #automation #quality
- 테스트주관식
네트워크 목킹
URLSession을 직접 쓰는 네트워크 계층을 실제 서버 없이 테스트하고 싶습니다. 가능한 방법을 두 가지 이상 제시해 주세요.
#urlsession #urlprotocol #mock #network
- 테스트주관식
UI 테스트를 단위 테스트로 대체
느리고 자주 깨지는 UI 테스트가 수십 개 있습니다. 이 중 상당수를 단위 테스트로 대체하려면 코드와 테스트를 어떻게 재구성하겠습니까?
#ui-test #unit-test #presentation-logic #snapshot
- 테스트객관식
불안정한(flaky) 테스트
CI에서 가끔만 실패하는 flaky 테스트를 만드는 원인을 모두 고르세요.
#flaky #determinism #shared-state #test-isolation
- 테스트주관식
Core Data / SwiftData 테스트
Core Data(또는 SwiftData)에 의존하는 저장소 계층을 디스크에 아무것도 남기지 않고 단위 테스트하려면 어떻게 구성하나요?
#core-data #swiftdata #in-memory #persistence-test
- 테스트주관식
Swift Testing vs XCTest
Swift Testing은 XCTest와 무엇이 다른가요?
#swift-testing #xctest #migration #macros
- 테스트주관식
스냅샷 테스트
스냅샷 테스트를 팀에 도입하려 합니다. 스냅샷 테스트는 어떤 문제를 해결해 주나요?
#snapshot-test #visual-regression #swift-snapshot-testing #ci
- 테스트주관식
UI 테스트 안정화
XCUITest로 만든 로그인 플로우 테스트가 CI에서 30%쯤 실패합니다. 안정화하기 위해 앱 코드 쪽에서는 무엇을 바꾸겠습니까?
#xcuitest #accessibility-identifier #launch-arguments #flaky
- 테스트객관식
시간 의존 코드 테스트
"3초 후 자동 재시도" 로직이 Task.sleep(for: .seconds(3))을 쓰고 있어 테스트가 실제로 3초씩 기다립니다. 테스트를 빠르고 결정적으로 만드는 올바른 접근을 모두 고르세요.
#clock #time #task-sleep #determinism
- 테스트주관식Gojek
실무 프로젝트에 TDD 적용
온사이트 질문입니다. "지금 프로젝트에서 테스트를 어떻게 쓰고 있고, TDD를 실제 프로젝트에서 따르려면 어떻게 하겠어요?" 이미 코드가 많은 기존 앱에 TDD를 도입하는 현실적인 방법을 중심으로 답해 주세요.
#tdd #legacy #coverage #ui-test
- 테스트주관식Walmart
싱글톤 단위 테스트
AuthManager.shared를 코드 곳곳에서 직접 부르는 앱이 있습니다. 이 싱글톤에 의존하는 코드를 단위 테스트하려면 어떻게 하겠습니까? [코드]
#singleton #dependency-injection #test-isolation #protocol
- 테스트주관식Discord
테스트 추가가 쉬운 아키텍처
아키텍처 라운드의 평가 항목 중 하나가 "큰 리팩터링 없이 단위 테스트를 추가할 수 있는 구조인가"입니다. 어떤 설계 결정이 이 조건을 만족시키는지 예를 들어 설명해 주세요.
#architecture #testability #dependency-injection #design-round
- 테스트주관식CRED
테스트 가치 판단
라이브 코딩으로 상품 목록 화면(뷰모델 + 네트워크 + 가격 포맷팅 + 즐겨찾기 토글)을 만들었습니다. 면접관이 묻습니다. "이 화면에서 무엇은 테스트할 가치가 있고 무엇은 없나요?"
#test-strategy #what-to-test #cost-benefit #priority
- 테스트객관식Flipkart
URLProtocol 기반 네트워크 목킹
네트워크 계층을 테스트하려고 URLProtocol 서브클래스로 응답을 가로채기로 했습니다. 옳은 설명을 모두 고르세요. [코드]
#urlprotocol #mocking #urlsession #network-test
- 테스트주관식센드버드커뮤니티 전언
SDK(라이브러리) 테스트 전략
앱이 아니라 다른 회사 앱에 들어가는 채팅 SDK를 만든다고 합시다. 테스트 관점에서 앱 테스트와 무엇이 달라지나요?
#sdk #integration-test #contract-test #backward-compatibility
- 테스트객관식
Swift Testing 실행 모델
Swift Testing으로 작성한 스위트에서, 여러 테스트가 같은 파일 경로에 쓰고 읽는 바람에 간헐적으로 실패합니다. 가장 근본적인 해결책은?
#swift-testing #parallel #serialized #shared-state
- 테스트주관식
동시성 코드 테스트
actor와 Task를 사용하는 동시성 코드에서 데이터 레이스를 테스트로 재현하거나 검출하려면 어떻게 하나요?
#actor #sendable #data-race #thread-sanitizer
- 테스트주관식
대규모 프로젝트 테스트 전략
모듈 40개, 테스트 8,000개인 앱에서 CI 테스트가 40분 걸립니다. 테스트 구조와 실행 전략을 어떻게 바꿔 PR당 10분 이내로 만들겠습니까?
#test-plan #modularization #ci #parallel
- 테스트객관식
XCTestCase 인스턴스 생명주기
다음 테스트 클래스의 문제점을 모두 고르세요. [코드]
#xctest #lifecycle #memory #setup