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

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

예상 결과와 실제 결과를 분리한다

오늘의 질문

요구사항에서 expected result를 먼저 도출하고 실행에서 얻은 actual result와 관찰 조건을 분리해 첫 불일치를 판정한다. 이 판단을 생략하면 통과한 test와 많은 log가 있어도 결함을 놓치거나 잘못된 수정을 승인할 수 있습니다.

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

01 · 같이 연습해요

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

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

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

    찾아보기 · 기초

    td01 td01 예상 결과와 실제 결과를 분리한다: 요구사항에서 expected result를 먼저 도출하고 실행에서 얻은 actual result와 관찰 조건을 분리해 첫 불일치를 판정한다.에서 expected·actual·oracle·fixture·diagnostic evidence와 근거 없는 주장을 분류한다.

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

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

      예상 결과와 실제 결과를 분리한다에서 expected, actual, exception/warning/log, state before/after를 섞지 말고 따로 기록하세요.

    2. 개념

      expected result는 현재 구현의 출력이 아니라 요구사항·계약·독립 모델에서 실행 전에 도출한다.

    3. 다음 도움

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

    정답과 비교
  2. 02

    먼저 생각하기 · 기초

    td01 가격 계산 함수의 회귀 검토에서 예상 결과와 실제 결과를 분리한다 계약을 적용한다.의 collection·setup·act·assert·teardown·log 결과를 실행 전에 예측한다.

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

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

      예상 결과와 실제 결과를 분리한다에서 expected, actual, exception/warning/log, state before/after를 섞지 말고 따로 기록하세요.

    2. 개념

      expected result는 현재 구현의 출력이 아니라 요구사항·계약·독립 모델에서 실행 전에 도출한다.

    3. 다음 도움

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

    정답과 비교
  3. 03

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

    td01 td01 예상 결과와 실제 결과를 분리한다: 요구사항에서 expected result를 먼저 도출하고 실행에서 얻은 actual result와 관찰 조건을 분리해 첫 불일치를 판정한다.를 baseline→inject/run→first divergence→replay 순서로 누적 추적한다.

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

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

      예상 결과와 실제 결과를 분리한다에서 expected, actual, exception/warning/log, state before/after를 섞지 말고 따로 기록하세요.

    2. 개념

      expected result는 현재 구현의 출력이 아니라 요구사항·계약·독립 모델에서 실행 전에 도출한다.

    3. 다음 도움

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

    정답과 비교
  4. 04

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

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

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

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

      예상 결과와 실제 결과를 분리한다에서 expected, actual, exception/warning/log, state before/after를 섞지 말고 따로 기록하세요.

    2. 개념

      expected result는 현재 구현의 출력이 아니라 요구사항·계약·독립 모델에서 실행 전에 도출한다.

    3. 다음 도움

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

    설명 기준과 비교
  5. 05

    빈칸 채우기 · 도전

    td01 expected/actual/evidence 세 열을 가진 최소 observation receipt를 구현한다.의 fixture·oracle·assertion·diagnostic 빈칸을 완성하고 요구사항에서 독립 도출한 값·예외·상태 postcondition

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

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

      예상 결과와 실제 결과를 분리한다에서 expected, actual, exception/warning/log, state before/after를 섞지 말고 따로 기록하세요.

    2. 개념

      expected result는 현재 구현의 출력이 아니라 요구사항·계약·독립 모델에서 실행 전에 도출한다.

    3. 다음 도움

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

    답과 설명 함께 비교
  6. 06

    틀린 곳 고치기 · 도전

    td01 구현을 실행한 뒤 그 출력으로 expected를 작성한다.에서 last-good·first-bad state와 실패 owner를 찾아 최소 수정을 검증한다.

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

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

      예상 결과와 실제 결과를 분리한다에서 expected, actual, exception/warning/log, state before/after를 섞지 말고 따로 기록하세요.

    2. 개념

      expected result는 현재 구현의 출력이 아니라 요구사항·계약·독립 모델에서 실행 전에 도출한다.

    3. 다음 도움

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

    답과 설명 함께 비교
  7. 07

    직접 만들기 · 도전

    td01 expected/actual/evidence 세 열을 가진 최소 observation receipt를 구현한다.

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

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

      예상 결과와 실제 결과를 분리한다에서 expected, actual, exception/warning/log, state before/after를 섞지 말고 따로 기록하세요.

    2. 개념

      expected result는 현재 구현의 출력이 아니라 요구사항·계약·독립 모델에서 실행 전에 도출한다.

    3. 다음 도움

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

    답과 설명 함께 비교
  8. 08

    새 문제에 써보기 · 새 문제

    td01 td01 예상 결과와 실제 결과를 분리한다: 요구사항에서 expected result를 먼저 도출하고 실행에서 얻은 actual result와 관찰 조건을 분리해 첫 불일치를 판정한다.를 가격 계산 함수의 회귀 검토에 전이하고 결정성·격리·oracle·비노출 경계를 방어한다.

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

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

      예상 결과와 실제 결과를 분리한다에서 expected, actual, exception/warning/log, state before/after를 섞지 말고 따로 기록하세요.

    2. 개념

      expected result는 현재 구현의 출력이 아니라 요구사항·계약·독립 모델에서 실행 전에 도출한다.

    3. 다음 도움

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

    설명 기준과 비교

8개 답이 남았습니다.

02 · 막힌 곳을 찾아요

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

헷갈림 01

구현을 실행한 뒤 그 출력으로 expected를 작성한다.

겉으로 보이는 막힘
결함 있는 동작을 test가 승인한다.
막힌 까닭
검증 계약에서 다음 원칙을 빠뜨렸다: expected result는 현재 구현의 출력이 아니라 요구사항·계약·독립 모델에서 실행 전에 도출한다.
다시 해보는 방법
요구사항 문장과 독립 계산표에서 expected를 다시 도출한다.
헷갈림 02

timezone과 locale을 기록하지 않은 문자열 비교를 실행한다.

겉으로 보이는 막힘
환경마다 actual이 달라진다.
막힌 까닭
검증 계약에서 다음 원칙을 빠뜨렸다: actual result에는 값뿐 아니라 예외, 상태 변화, 출력, warning, log와 실행 조건을 함께 기록한다.
다시 해보는 방법
실행 조건을 fixture fingerprint에 고정한다.
헷갈림 03

값만 검사하고 파일 변경을 무시한다.

겉으로 보이는 막힘
숨은 side effect가 회귀해도 test가 통과한다.
막힌 까닭
검증 계약에서 다음 원칙을 빠뜨렸다: expected와 actual이 같아도 oracle이 요구사항을 잘못 번역했다면 test는 false green이다.
다시 해보는 방법
관찰 가능한 효과를 before/after snapshot으로 추가한다.

03 · 내게 맞는 도움 고르기

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

안내 받으며

안내형

expected result → actual result → observation → oracle 순서로 expected·actual·first divergence·oracle·evidence 칸을 채우고, 각 칸의 출처를 표시한다.

예상 결과와 실제 결과를 분리한다의 정상 경로와 실패 경로 및 최초 불일치 지점을 번호와 선 종류로 구분한 도식에서 색 외에도 baseline·actual·first divergence·oracle·phase·verdict label과 선 종류를 대응한다.
혼자 해보기

내 힘으로

td01 예상 결과와 실제 결과를 분리한다: 요구사항에서 expected result를 먼저 도출하고 실행에서 얻은 actual result와 관찰 조건을 분리해 첫 불일치를 판정한다.의 처음 보는 fixture를 먼저 예측한 뒤 exact Python 3.14.6과 고정 toolchain에서 실행하고 불일치만 공식 규칙으로 교정한다.

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

심화형

가격 계산 함수의 회귀 검토에 같은 test contract를 이식하고 입력·상태·시간·dependency 중 두 축을 바꾼 미공개 변형을 추가한다.

예상 결과와 실제 결과를 분리한다에서 짧은 test 수보다 결함 탐지력·결정성·격리·진단성·유지보수 비용을 우선하고 선택 근거를 남긴다.