개념
변경된 코드가 곧 리스크 지도다
모듈 4(레슨 2)에서 배운 위험기반 테스트(Risk-Based Testing)를 떠올려보자 — 발생 가능성과 영향도가 큰 곳에 테스트 리소스를 집중하는 전략이었다. PR diff(레슨 7)를 읽으면, 이번 변경으로 새로 생긴 리스크가 어디에 있는지를 구체적으로 짚어낼 수 있다.
Diff를 읽을 때 던지는 질문들
1. 무엇이 바뀌었는가?
조건문의 경계값이 바뀌었는가, 새로운 분기가 추가됐는가, 함수의 입력·출력 형식이 바뀌었는가 — 레슨 1의 코드 읽기 능력이 여기서 쓰인다.
2. 이 변경이 영향을 주는 범위는 어디까지인가?
이 함수를 호출하는 다른 곳이 있는가? 변경된 함수가 여러 화면에서 공유되는 코드라면, 그 화면들 전부가 회귀 테스트 대상이 된다.
3. 테스트 코드도 함께 바뀌었는가?
PR에 테스트 코드 변경이 없는데 로직만 바뀌었다면, 그 변경을 검증하는 자동 테스트가 없다는 뜻일 수 있다 — 수동 테스트로 더 꼼꼼히 확인해야 할 신호다.
사례로 읽어보기
function isEligibleForFreeShipping(cartTotal, memberLevel) {
if (memberLevel === "VIP") {
return true
}
- if (cartTotal >= 30000) {
+ if (cartTotal >= 50000) {
return true
}
return false
}이 diff 하나만 보고도 다음을 읽어낼 수 있다.
- 무엇이 바뀌었나: 무료배송 기준 금액이 30,000원에서 50,000원으로 상향됐다
- 리스크는 어디에 있나: 경계값이 바뀌었으니, 정확히
50000,49999,50001에서의 동작(모듈 3의 경계값 분석과 연결)을 반드시 재확인해야 한다 - 영향 범위는 어디까지인가: 이 함수가 장바구니 페이지·주문 확인 페이지·이메일 안내 문구 등 여러 곳에서 쓰인다면, 그 모든 곳에 새 기준(50,000원)이 일관되게 반영됐는지 확인해야 한다(모듈 5 레슨 7의 데이터 따라가기)
변경 크기와 리스크는 비례하지 않는다
"한 줄만 바뀐 변경"이 가장 위험한 경우도 많다. 위 예시처럼
숫자 하나(30000 → 50000)만 바뀐 diff는 코드량은 작아도, 그
숫자가 쓰이는 모든 곳에 영향을 준다. 반대로 파일 수백 줄이 바뀐
diff라도, 그게 로그 문구 정리 같은 낮은 리스크 변경이면 회귀
테스트 부담이 크지 않을 수 있다. diff의 줄 수가 아니라, 그 변경이
무엇을 건드리는가로 리스크를 판단해야 한다.
실무에서 왜 필요한가
릴리스 직전에 "이번에 뭘 테스트해야 하죠?"라는 질문에 "전체 다 해야죠"라고 답하면 시간이 부족하다. PR diff를 읽고 리스크가 높은 변경(경계값 수정, 여러 곳에서 공유되는 함수 수정, 테스트 코드 없는 변경)을 짚어낼 수 있으면, 제한된 시간 안에서 가장 중요한 곳에 테스트를 집중할 수 있다 — 이건 모듈 4의 위험기반 테스트를 "코드 diff"라는 구체적인 근거 위에서 실천하는 것이다.