학습 본문으로 건너뛰기
VAIRODE
pytest·debugging·logging4번째 작은 수업
오늘은 질문 하나만 해결해요4 / 52

따라 해보기 · 직접 바꿔보기

근본 원인을 보존한 최소 재현을 만든다

오늘의 질문

불필요한 입력·dependency·단계를 하나씩 제거하면서 failure signature와 causal condition을 보존한 최소 재현 사례를 만든다. 이 판단을 생략하면 통과한 test와 많은 log가 있어도 결함을 놓치거나 잘못된 수정을 승인할 수 있습니다.

아직 답을 몰라도 괜찮아요. 아래 작은 예시를 보고 먼저 예상해 보세요.

01 · 같이 연습해요

작은 문제부터 하나씩 직접 풀어봐요

먼저 예상하고, 한 단계씩 확인하고, 막힌 곳을 고쳐 봐요. 도움을 열어도 괜찮아요. 도움을 본 문제는 나중에 모양을 바꿔 다시 풀어보면 됩니다.

연습에서 작성 중인 답0 / 8
  1. 01

    찾아보기 · 기초

    td04 td04 근본 원인을 보존한 최소 재현을 만든다: 불필요한 입력·dependency·단계를 하나씩 제거하면서 failure signature와 causal condition을 보존한 최소 재현 사례를 만든다.에서 expected·actual·oracle·fixture·diagnostic evidence와 근거 없는 주장을 분류한다.

    이 문제는 주어진 내용과 정답 기준을 더 만드는 중이에요. 지금 적은 답은 연습 메모로만 저장돼요.

    정답 대신 4단계 힌트 보기
    1. 관찰

      근본 원인을 보존한 최소 재현을 만든다에서 expected, actual, exception/warning/log, state before/after를 섞지 말고 따로 기록하세요.

    2. 개념

      최소 재현은 가장 짧아 보이는 코드가 아니라 원인 조건과 동일 failure signature를 보존하는 가장 작은 사례다.

    3. 다음 도움

      내 생각을 먼저 적고 ‘내 답과 맞춰 볼 기준 보기’을 누르면, 풀 순서와 더 자세한 도움을 열어 드려요.

    정답과 비교
  2. 02

    먼저 생각하기 · 기초

    td04 대규모 ETL pipeline의 parser 결함 축소에서 근본 원인을 보존한 최소 재현을 만든다 계약을 적용한다.의 collection·setup·act·assert·teardown·log 결과를 실행 전에 예측한다.

    이 문제는 주어진 내용과 정답 기준을 더 만드는 중이에요. 지금 적은 답은 연습 메모로만 저장돼요.

    정답 대신 4단계 힌트 보기
    1. 관찰

      근본 원인을 보존한 최소 재현을 만든다에서 expected, actual, exception/warning/log, state before/after를 섞지 말고 따로 기록하세요.

    2. 개념

      최소 재현은 가장 짧아 보이는 코드가 아니라 원인 조건과 동일 failure signature를 보존하는 가장 작은 사례다.

    3. 다음 도움

      내 생각을 먼저 적고 ‘내 답과 맞춰 볼 기준 보기’을 누르면, 풀 순서와 더 자세한 도움을 열어 드려요.

    정답과 비교
  3. 03

    순서 따라가기 · 익힌 것을 써보기

    td04 td04 근본 원인을 보존한 최소 재현을 만든다: 불필요한 입력·dependency·단계를 하나씩 제거하면서 failure signature와 causal condition을 보존한 최소 재현 사례를 만든다.를 baseline→inject/run→first divergence→replay 순서로 누적 추적한다.

    이 문제는 주어진 내용과 정답 기준을 더 만드는 중이에요. 지금 적은 답은 연습 메모로만 저장돼요.

    정답 대신 4단계 힌트 보기
    1. 관찰

      근본 원인을 보존한 최소 재현을 만든다에서 expected, actual, exception/warning/log, state before/after를 섞지 말고 따로 기록하세요.

    2. 개념

      최소 재현은 가장 짧아 보이는 코드가 아니라 원인 조건과 동일 failure signature를 보존하는 가장 작은 사례다.

    3. 다음 도움

      내 생각을 먼저 적고 ‘내 답과 맞춰 볼 기준 보기’을 누르면, 풀 순서와 더 자세한 도움을 열어 드려요.

    정답과 비교
  4. 04

    내 말로 설명하기 · 익힌 것을 써보기

    td04 결과를 Python 3.14.6·pytest 9.0.0 공식 계약과 최소 반례로 설명한다.

    이 문제는 주어진 내용과 정답 기준을 더 만드는 중이에요. 지금 적은 답은 연습 메모로만 저장돼요.

    정답 대신 4단계 힌트 보기
    1. 관찰

      근본 원인을 보존한 최소 재현을 만든다에서 expected, actual, exception/warning/log, state before/after를 섞지 말고 따로 기록하세요.

    2. 개념

      최소 재현은 가장 짧아 보이는 코드가 아니라 원인 조건과 동일 failure signature를 보존하는 가장 작은 사례다.

    3. 다음 도움

      내 생각을 먼저 적고 ‘내 답과 맞춰 볼 기준 보기’을 누르면, 풀 순서와 더 자세한 도움을 열어 드려요.

    설명 기준과 비교
  5. 05

    빈칸 채우기 · 도전

    td04 단일 축 delta와 signature 비교를 강제하는 minimization worksheet를 구현한다.의 fixture·oracle·assertion·diagnostic 빈칸을 완성하고 원본과 같은 first divergence·exception chain·postcondition을 보존한 최소 fixture

    이 문제는 주어진 내용과 정답 기준을 더 만드는 중이에요. 지금 적은 답은 연습 메모로만 저장돼요.

    정답 대신 4단계 힌트 보기
    1. 관찰

      근본 원인을 보존한 최소 재현을 만든다에서 expected, actual, exception/warning/log, state before/after를 섞지 말고 따로 기록하세요.

    2. 개념

      최소 재현은 가장 짧아 보이는 코드가 아니라 원인 조건과 동일 failure signature를 보존하는 가장 작은 사례다.

    3. 다음 도움

      내 생각을 먼저 적고 ‘내 답과 맞춰 볼 기준 보기’을 누르면, 풀 순서와 더 자세한 도움을 열어 드려요.

    답과 설명 함께 비교
  6. 06

    틀린 곳 고치기 · 도전

    td04 비동기 순서를 제거해 단순 함수로 바꾼다.에서 last-good·first-bad state와 실패 owner를 찾아 최소 수정을 검증한다.

    이 문제는 주어진 내용과 정답 기준을 더 만드는 중이에요. 지금 적은 답은 연습 메모로만 저장돼요.

    정답 대신 4단계 힌트 보기
    1. 관찰

      근본 원인을 보존한 최소 재현을 만든다에서 expected, actual, exception/warning/log, state before/after를 섞지 말고 따로 기록하세요.

    2. 개념

      최소 재현은 가장 짧아 보이는 코드가 아니라 원인 조건과 동일 failure signature를 보존하는 가장 작은 사례다.

    3. 다음 도움

      내 생각을 먼저 적고 ‘내 답과 맞춰 볼 기준 보기’을 누르면, 풀 순서와 더 자세한 도움을 열어 드려요.

    답과 설명 함께 비교
  7. 07

    직접 만들기 · 도전

    td04 단일 축 delta와 signature 비교를 강제하는 minimization worksheet를 구현한다.

    이 문제는 주어진 내용과 정답 기준을 더 만드는 중이에요. 지금 적은 답은 연습 메모로만 저장돼요.

    정답 대신 4단계 힌트 보기
    1. 관찰

      근본 원인을 보존한 최소 재현을 만든다에서 expected, actual, exception/warning/log, state before/after를 섞지 말고 따로 기록하세요.

    2. 개념

      최소 재현은 가장 짧아 보이는 코드가 아니라 원인 조건과 동일 failure signature를 보존하는 가장 작은 사례다.

    3. 다음 도움

      내 생각을 먼저 적고 ‘내 답과 맞춰 볼 기준 보기’을 누르면, 풀 순서와 더 자세한 도움을 열어 드려요.

    답과 설명 함께 비교
  8. 08

    새 문제에 써보기 · 새 문제

    td04 td04 근본 원인을 보존한 최소 재현을 만든다: 불필요한 입력·dependency·단계를 하나씩 제거하면서 failure signature와 causal condition을 보존한 최소 재현 사례를 만든다.를 대규모 ETL pipeline의 parser 결함 축소에 전이하고 결정성·격리·oracle·비노출 경계를 방어한다.

    이 문제는 주어진 내용과 정답 기준을 더 만드는 중이에요. 지금 적은 답은 연습 메모로만 저장돼요.

    정답 대신 4단계 힌트 보기
    1. 관찰

      근본 원인을 보존한 최소 재현을 만든다에서 expected, actual, exception/warning/log, state before/after를 섞지 말고 따로 기록하세요.

    2. 개념

      최소 재현은 가장 짧아 보이는 코드가 아니라 원인 조건과 동일 failure signature를 보존하는 가장 작은 사례다.

    3. 다음 도움

      내 생각을 먼저 적고 ‘내 답과 맞춰 볼 기준 보기’을 누르면, 풀 순서와 더 자세한 도움을 열어 드려요.

    설명 기준과 비교

8개 답이 남았습니다.

02 · 막힌 곳을 찾아요

틀린 답에서 생각이 갈라진 첫 지점 찾기

헷갈림 01

비동기 순서를 제거해 단순 함수로 바꾼다.

겉으로 보이는 막힘
race가 사라져 엉뚱한 ValueError만 남는다.
막힌 까닭
검증 계약에서 다음 원칙을 빠뜨렸다: 최소 재현은 가장 짧아 보이는 코드가 아니라 원인 조건과 동일 failure signature를 보존하는 가장 작은 사례다.
다시 해보는 방법
원래 signature와 activation condition을 고정하고 다시 축소한다.
헷갈림 02

세 입력 field를 동시에 삭제한다.

겉으로 보이는 막힘
어느 field가 causal한지 알 수 없다.
막힌 까닭
검증 계약에서 다음 원칙을 빠뜨렸다: 요소를 한 번에 하나씩 제거하고 제거 전후 signature를 기록해야 인과 관계를 잃지 않는다.
다시 해보는 방법
한 축씩 제거한 delta ledger를 남긴다.
헷갈림 03

mock으로 실제 parser를 대체한다.

겉으로 보이는 막힘
encoding defect가 가려진다.
막힌 까닭
검증 계약에서 다음 원칙을 빠뜨렸다: 축소 과정에서 failure가 사라지면 마지막 제거 요소는 원인 또는 activation condition 후보다.
다시 해보는 방법
원인 경계 안쪽 dependency는 real minimal implementation으로 유지한다.

03 · 내게 맞는 도움 고르기

같은 목표를 원하는 도움만큼 연습해요

안내 받으며

안내형

minimal reproducer → causal condition → delta → failure signature 순서로 expected·actual·first divergence·oracle·evidence 칸을 채우고, 각 칸의 출처를 표시한다.

근본 원인을 보존한 최소 재현을 만든다의 정상 경로와 실패 경로 및 최초 불일치 지점을 번호와 선 종류로 구분한 도식에서 색 외에도 baseline·actual·first divergence·oracle·phase·verdict label과 선 종류를 대응한다.
혼자 해보기

내 힘으로

td04 근본 원인을 보존한 최소 재현을 만든다: 불필요한 입력·dependency·단계를 하나씩 제거하면서 failure signature와 causal condition을 보존한 최소 재현 사례를 만든다.의 처음 보는 fixture를 먼저 예측한 뒤 exact Python 3.14.6과 고정 toolchain에서 실행하고 불일치만 공식 규칙으로 교정한다.

공식 문서·문법·도구 사용법은 열 수 있지만 해당 변형의 exact expected·failure owner·patch target·hidden verdict는 먼저 제공하지 않는다.
더 도전하기

심화형

대규모 ETL pipeline의 parser 결함 축소에 같은 test contract를 이식하고 입력·상태·시간·dependency 중 두 축을 바꾼 미공개 변형을 추가한다.

근본 원인을 보존한 최소 재현을 만든다에서 짧은 test 수보다 결함 탐지력·결정성·격리·진단성·유지보수 비용을 우선하고 선택 근거를 남긴다.