처음이어도 괜찮아요 · 그림부터 시작해요
수정 전에 regression test를 먼저 고정한다
재현된 defect를 수정하기 전에 현재 코드에서 정확히 실패하고 올바른 계약에서 통과할 좁은 regression test를 작성한다. 이 판단을 생략하면 통과한 test와 많은 log가 있어도 결함을 놓치거나 잘못된 수정을 승인할 수 있습니다.
아직 답을 몰라도 괜찮아요. 아래 작은 예시를 보고 먼저 예상해 보세요.01 · 가볍게 시작하기
정답을 보기 전에 먼저 골라볼까요?
synthetic td08 fixture · secret 없는 고정 입력 · exact Python 3.14.6- 1먼저 골라보기
틀려도 괜찮아요. 지금 생각한 답 하나를 정해요.
- 2그림으로 확인하기
움직이는 순서와 달라지는 곳만 천천히 찾아요.
- 3내 말로 다시 말하기
한 문장으로 말해 보면 내가 이해한 곳을 확인할 수 있어요.
02 · 그림으로 보기
그림이 움직이는 순서를 직접 확인해요
- 01관찰regression test · red test · defect fixture · behavior contract
- 02추론regression test는 patch 전 실패해야 하며 원래 failure signature와 요구사항 postcondition을 함께 고정한다. test가 구현 세부보다 public behavior와 causal boundary를 검사해야 안전한 refactor를 허용한다. patch 뒤 test만 통과시키지 말고 인접 정상·경계 test가 유지되는지도 확인한다.
- 03검증수정 전에 regression test를 먼저 고정한다의 예상 결과·관찰 결과·판정 oracle을 실행 전에 분리해 기록한다. patch 후 현재 출력을 expected로 쓴다.에서 최초 불일치 지점과 근본 원인을 재현 가능한 evidence로 국소화한다. patch 전 예상 failure·patch 후 pass·인접 behavior 불변을 함께 증명하는 suite을 정상·경계·실패 fixture에 적용하고 false green·false red가 없는지 검증한다.
처음 보는 말도 책 읽듯 풀어봐요
이 수업은 쉬운 뜻과 생활 예를 아직 함께 준비하지 못했어요. 설명 없는 정확한 이름은 먼저 보여 주지 않을게요.
그림에서 찾을 쉬운 규칙
- 01regression test는 patch 전 실패해야 하며 원래 failure signature와 요구사항 postcondition을 함께 고정한다.
- 02test가 구현 세부보다 public behavior와 causal boundary를 검사해야 안전한 refactor를 허용한다.
- 03patch 뒤 test만 통과시키지 말고 인접 정상·경계 test가 유지되는지도 확인한다.
03 · 같이 풀어보기
한 단계씩 따라가면 어렵지 않아요
날짜 rollover 결함의 hotfix에서 수정 전에 regression test를 먼저 고정한다 계약을 적용한다.
synthetic td08 fixture · secret 없는 고정 입력 · exact Python 3.14.604 · 이제 내가 해볼 차례
여기까지 오면 이런 일을 할 수 있어요
재현된 defect를 수정하기 전에 현재 코드에서 정확히 실패하고 올바른 계약에서 통과할 좁은 regression test를 작성한다.
- 수정 전에 regression test를 먼저 고정한다의 예상 결과·관찰 결과·판정 oracle을 실행 전에 분리해 기록한다.
- patch 후 현재 출력을 expected로 쓴다.에서 최초 불일치 지점과 근본 원인을 재현 가능한 evidence로 국소화한다.
- patch 전 예상 failure·patch 후 pass·인접 behavior 불변을 함께 증명하는 suite을 정상·경계·실패 fixture에 적용하고 false green·false red가 없는지 검증한다.
05 · 자주 헷갈리는 지점
틀린 답도 이유를 알면 다음에는 맞힐 수 있어요
01수정이 간단하면 test를 patch 뒤에 추가해도 같은 증거다.
한 번 더 생각해 볼 질문수정 전에 regression test를 먼저 고정한다의 최소 fixture에서 이 주장을 깨는 관찰값과 판정 근거를 각각 한 줄로 쓰세요.
이렇게 고쳐 생각해요regression test는 patch 전 실패해야 하며 원래 failure signature와 요구사항 postcondition을 함께 고정한다.
02내부 helper 호출 횟수를 고정하면 가장 강한 regression test다.
한 번 더 생각해 볼 질문수정 전에 regression test를 먼저 고정한다의 최소 fixture에서 이 주장을 깨는 관찰값과 판정 근거를 각각 한 줄로 쓰세요.
이렇게 고쳐 생각해요test가 구현 세부보다 public behavior와 causal boundary를 검사해야 안전한 refactor를 허용한다.
03새 test 하나가 초록이면 patch의 side effect도 모두 검증됐다.
한 번 더 생각해 볼 질문수정 전에 regression test를 먼저 고정한다의 최소 fixture에서 이 주장을 깨는 관찰값과 판정 근거를 각각 한 줄로 쓰세요.
이렇게 고쳐 생각해요patch 뒤 test만 통과시키지 말고 인접 정상·경계 test가 유지되는지도 확인한다.
06 · 더 궁금할 때만 보기
선생님과 검토자를 위한 믿을 만한 원문
원문과 어디까지 참고했는지 펼쳐 보기처음 배우는 동안에는 열지 않아도 괜찮아요.
TestCase, assertion methods, assertRaises, setup·cleanup, discovery와 CLI의 공식 계약
discovery, assertion introspection, parametrization, markers, raises, warning·capture·debugging과 import 경계
testing purpose·error/defect/failure, types·levels·process, coverage·refactoring, debugging·assertions·logging·white/black-box objective
assert·AssertionError·pytest와 testable function 분리의 공개 학습 경로
correct·incorrect implementation을 구분하는 test suite와 mutant-like test-the-tests practice
