주소가 게시 시점에 굳어 저장되는 구조, 축 링크를 두 번 옮긴 순서, 한글 slug 가 간헐적으로 보인 두 가지 어긋남을 표로 갈랐다. 화면이 실패를 없음으로 그릴 때 작성 도구에서 왜 더 오래 숨는지, Promise.all 이 거절과 던짐에서 다른 경로를 타는 이유를 채웠다. CSS module 이 왜 전역 규칙에 닿지 않는지, 403 과 404 가 원인을 어떻게 좁혔는지도 적었다. link-audit.py 를 감사 Case 의 evidence 로 걸어 배정한 증거 하나를 메웠다. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
70 lines
3.5 KiB
Markdown
70 lines
3.5 KiB
Markdown
---
|
|
kind: REFERENCE
|
|
slug: an-expected-failure-must-not-be-counted-as-a-failure
|
|
title: 매번 우는 검사는 읽히지 않는다 — 기대된 실패는 조건을 적어 빼고 나머지는 전부 실패시킨다
|
|
topic: failure-drawn-as-absence
|
|
topicName: 실패를 없음으로 그린다
|
|
project: TechLog
|
|
status: 게시 전
|
|
verifiedOn: 2026-09-04
|
|
sourceRevision: tech-log@2026-09-02
|
|
source:
|
|
- final/document.md#§10.5
|
|
---
|
|
|
|
# 매번 우는 검사는 읽히지 않는다 — 기대된 실패는 조건을 적어 빼고 나머지는 전부 실패시킨다
|
|
|
|
배포 뒤 전 화면을 훑는 스윕이 기대된 404 를 실패로 셌다. 건강한 배포 아래에 매번 같은 빨간 줄이 남았고, 그 줄은 곧 읽히지 않게 됐다. 기대된 실패는 조건을 적어 빼고 나머지는 전부 실패시킨다.
|
|
|
|
## 관계
|
|
|
|
- **화면은 못 읽은 것을 없다고 말하지 않는다**
|
|
같은 프로젝트에서 실패를 어떻게 다룰지 정한 짝이 되는 기준이다.
|
|
- **가드는 결함을 되돌려 실제로 멈추는 것을 확인한 뒤 커밋한다**
|
|
검사가 실제로 무엇을 잡는지 확인하는 기준이다.
|
|
- **계약은 앵커라고 적었고 만드는 쪽은 경로를 만들었다**
|
|
같은 스윕이 실제 결함을 잡아야 했던 사건이다.
|
|
|
|
## 목적
|
|
|
|
매번 우는 검사가 읽히지 않게 되는 것을 막는다.
|
|
|
|
> 매번 늑대를 외치는 검사는 읽히지 않게 되고, 진짜 실패가 그 옆에 눈에 띄지 않은 채 앉아 있게 된다.
|
|
|
|
## 규칙
|
|
|
|
### 1. 기대된 실패는 조건을 적어 뺀다
|
|
|
|
미리보기가 아직 없는 문서는 현재 미리보기를 물으면 404 를 답하고, 화면은 그것을 「미리보기를 만드세요」로 바꾼다. 이 404 는 정상 동작이 오류 상태 코드로 나타난 것이지 실패가 아니다.
|
|
|
|
로그인 전 세션 탐침의 401 도 같은 부류다. 어느 쪽도 사람이 고칠 것이 없다.
|
|
|
|
### 2. 뺀 나머지는 전부 실패시킨다
|
|
|
|
조건에 걸리지 않는 4xx 와 5xx 는 모두 스윕을 실패시킨다. 「이건 아마 괜찮을 것」이라는 판단을 스윕 안에 두지 않는다.
|
|
|
|
### 3. 조건을 적을 수 없으면 빼지 않는다
|
|
|
|
조건 없이 빼면 진짜 실패도 같이 빠진다. 어떤 요청이 왜 그 응답을 받는지 한 줄로 적을 수 없으면 그것은 아직 기대된 실패가 아니다.
|
|
|
|
### 4. 뺀 조건을 사람이 읽을 수 있는 곳에 남긴다
|
|
|
|
왜 그 응답이 기대된 것인지 적혀 있지 않으면 다음 사람이 조건을 넓힌다. 비슷한 404 가 하나 더 나왔을 때 같은 조건에 넣을지 판단할 근거가 없기 때문이다.
|
|
|
|
## 적용 조건
|
|
|
|
- 배포 뒤 전 화면을 훑는 스윕처럼 결과를 사람이 훑어보는 검사를 만들 때
|
|
- 정상 동작이 오류 상태 코드로 나타나는 화면이 있는 서비스에서
|
|
- 같은 빨간 줄이 매번 남기 시작했을 때
|
|
|
|
## 예외
|
|
|
|
- 기계가 판정하고 사람이 결과를 읽지 않는 검사라면 빨간 줄이 쌓여도 무뎌지지 않는다. 그래도 통과 기준은 정해야 한다.
|
|
- 그 응답이 정말 고쳐야 하는 것이면 조건으로 빼지 말고 고친다. 뺄지 고칠지는 사람이 고칠 것이 있는가로 가른다.
|
|
|
|
## 예시
|
|
|
|
- 미리보기가 없는 문서의 404 를 스윕이 실패로 셌다. 건강한 배포 아래에 매번 같은 빨간 줄이 남았다
|
|
- 로그인 전 세션 탐침의 401 도 같은 부류라 같은 조건으로 제외했다
|
|
- 나머지 4xx·5xx 는 전부 스윕을 실패시킨다
|