거짓 통과테스트가 거짓으로 통과하는 것을 두 번 발견하다
구분
CASE 06 · 검증
검증 · 배선 잠금
상태
검출 · 차단
2026
역할
설계 · 판정 · 운영
코드는 AI
분야
검증
테스트 · 변이 검증 · 배선
CASE-06검증
9/9
확인 시트가 사라졌는데도 통과한 배선 잠금
iOS
백엔드
개요
거짓 통과
빌드와 테스트가 모두 통과하는데 화면 동작이 달라지는 일이 반복됐습니다. 어떤 뷰가 어떤 함수를 부르는지, 그 배선 자체를 잠그는 테스트를 만들어 붙였습니다.
01
발견
그 테스트가 두 번 거짓으로 통과했습니다.
호출부를
//로 주석 처리해도 문자열은 소스에 남아 통과했습니다수식어 체인을
/* */로 감싸니 확인 시트가 화면에서 사라졌는데도 배선 잠금 9건이 전량 통과했습니다02
조치
공용 단정이 비주석 라인에 있어야만 배선으로 인정하도록 고쳤습니다. 블록을 잘라낼 때 쓰던 종료 마커 표도 중괄호 짝으로 바꿨습니다. 마커 표에는 마커가 뒤로 밀리면 슬라이스가 커져 조용히 통과하는 방향이 있는데 중괄호 짝에는 그 방향이 없습니다.
03
규모
iOS · 백엔드 테스트 1,900건 이상이 상시 통과합니다. iOS는 계약 6 · 배선 9 · 게이트 4 · 경계 2 · 로직 11 · 뷰모델 2로 계층을 나눠, 무엇을 보장하는 테스트인지 파일 이름에서 드러나게 했습니다. 공용 배선 단정은 38개 파일이 씁니다.
숫자보다 중요한 건 그 테스트가 실제로 죽는지입니다. 주요 변경에는 일부러 코드를 망가뜨려(변이) RED가 나는지 확인하고 그 결과를 커밋에 남깁니다. "변이 N종 RED" 결과를 남긴 PR이 50건입니다.
숫자보다 중요한 건 그 테스트가 실제로 죽는지입니다. 주요 변경에는 일부러 코드를 망가뜨려(변이) RED가 나는지 확인하고 그 결과를 커밋에 남깁니다. "변이 N종 RED" 결과를 남긴 PR이 50건입니다.
기록
잰 숫자와 출처
측정 · 변이 실험
9/9확인 시트가 사라졌는데도 통과한 배선 잠금
측정 · 테스트 실행
1,900+iOS · 백엔드 테스트 상시 통과
측정 · PR 기록
50건"변이 N종 RED" 기록이 남은 PR
측정 · 사례 기록
2종차단한 오판 경로
결과
빌드·테스트가 통과한 조건부 렌더링 소실 결함을 실제 검출 · 주석 처리된 배선을 살아있다고 오판하던 경로 2종 차단
배운 것
검증 도구도 검증 대상입니다. "테스트가 통과한다"와 "테스트가 그것을 보고 있다"는 다른 말이었고 전자를 후자로 착각한 구간에서 결함이 조용히 지나갔습니다.
