AI 테스트 케이스 비교: 표가 맞아 보여도 예상 결제금액은 틀렸다
쿠폰과 배송비 요구사항을 ChatGPT·Gemini·Claude에 주고 출시 전 테스트 표를 부탁했다. 위키렙AI는 이번 작업의 초안으로 Claude를 고른다. 필수 9개 금액이 모두 맞았고, 쿠폰 해제·배송지 변경에 따른 재계산까지 다뤘다. Gemini는 필수 행에서 1원을 틀렸고, ChatGPT의 두 번째 응답은 추가 케이스에 불필요한 배송비 3,000원을 붙였다. 검산하지 않은 예상 결과는 버그를 찾는 기준으로 쓸 수 없다.
먼저 결론: Claude의 표에 검산한 기준값을 붙인다
Claude는 금액 계산표, 추가 경계값, 잘못된 입력, 명세에서 비어 있는 조건을 나눴다. 특히 쿠폰을 적용했다가 해제하는 경우와 일반 지역을 도서산간으로 바꾸는 경우를 넣었다. 숫자 하나를 계산하는 것에서 실제 화면 조작 순서로 나아간 점을 높게 평가한다.
ChatGPT도 필수 9행은 정확했다. 이번에는 질문을 한 번 전송했는데 서비스가 응답 1과 응답 2를 나란히 보여줬다. 좋은 쪽만 골라 보존하지 않고 두 원문을 모두 검토했다. 두 응답을 독립적인 재실행 두 번으로 세지는 않았다.
Gemini는 짧은 표와 세 단계 실행 순서가 읽기 편했다. 다만 이 작업에서는 표현보다 예상 금액의 정확성이 먼저다. 49,999원 행을 고치지 않고 테스트 도구에 옮기면 정상 계산을 오히려 실패로 판정한다.
같은 요구사항에서 갈리는 두 기준: 할인 전 3만원, 할인 후 5만원
상품 합계는 양의 정수다. 쿠폰을 선택하고 할인 전 합계가 30,000원 이상이면 10%를 할인한다. 원 미만은 버리고 최대 할인액은 5,000원이다. 기본 배송비는 할인 후 상품 금액이 50,000원 이상일 때만 면제되며, 그 미만은 3,000원이다. 도서산간 추가비 3,000원은 무료배송이어도 남는다.
따라서 쿠폰을 쓴 50,000원 주문은 45,000원에 배송비 3,000원을 더해 48,000원이다. 쿠폰을 쓴 55,000원 주문은 할인 후 50,000원이어서 기본 배송비가 없다. 이름이 비슷한 금액 두 개를 섞는 순간 테스트 표도 틀어진다.
세 서비스에는 동일한 한국어 질문을 길이 제한 없이 한 번씩 보냈다. 질문 전에 필수 9행의 정답과 입력 오류·버림·상한·추가 경계값 확인 기준을 고정했다.
Gemini: 할인액은 맞았는데 빼기가 1원 어긋났다
Gemini의 TC-03은 49,999원의 10%를 버림해 4,999원으로 적었다. 여기까지는 맞다. 그런데 할인 후 금액을 44,999원, 최종 결제금액을 47,999원으로 썼다. 49,999 − 4,999는 45,000이고 배송비를 더하면 48,000이다. 필수 9행 중 나머지 8행은 독립 계산과 일치했다.
이 1원은 작은 매출 손실을 뜻하는 관측값이 아니다. 테스트 표의 정답 자체가 틀렸다는 뜻이다. 실제 구현이 48,000원을 돌려줘도 이 표를 그대로 쓰면 실패 표시가 나온다.
0원과 소수 입력을 차단하는 방향은 맞았다. 다만 “상품 금액은 0원보다 커야 합니다.” 같은 정확한 오류 문구는 원문 요구사항에 없었다. 문구 제안으로는 쓸 수 있지만 승인된 UI 명세처럼 검사하면 안 된다.
Gemini TC-03: 할인 4,999원 → 할인 후 44,999원 → 최종 47,999원
ChatGPT: 필수 표는 맞았지만 추가 표까지 맞지는 않았다
응답 1과 응답 2의 필수 9행은 모두 맞았다. 응답 1은 도서산간·쿠폰 미선택 조합을, 응답 2는 자동화에서 확인할 규칙을 풍부하게 적었다. 답변 길이 자체보다 추가된 행의 정확성을 보는 편이 유용했다.
응답 2의 TC-23은 쿠폰 미선택·일반 지역·54,999원 주문의 최종 금액을 57,999원으로 적었다. 할인 없이도 50,000원 이상이므로 배송비는 0원, 정답은 54,999원이다. 필수 표만 확인했다면 놓쳤을 오류다.
설명에서도 “10%가 5,000원을 처음 초과하는 지점은 50,000원”이라고 썼다. 정확히는 50,000원에서 같아진다. 더 실용적인 보완은 50,010원 사례다. 50,001원의 10%는 버림만 해도 5,000원이라 상한을 빼먹은 구현이 통과할 수 있다. 50,010원에서는 상한 없이는 5,001원, 상한을 적용하면 5,000원으로 갈린다.
ChatGPT 응답 2 TC-23: 54,999 / 미선택 / 일반 / 57,999
Claude: 상태 변경과 미정 조건을 분리한 것이 좋았다
Claude의 필수 9행은 모두 맞았다. 55,000원에서 쿠폰을 해제하면 50,000원에서 55,000원으로, 일반 지역을 도서산간으로 바꾸면 50,000원에서 53,000원으로 바뀐다는 검사도 넣었다. 처음 화면의 계산은 맞아도 선택을 바꾼 뒤 이전 값이 남는 문제를 확인하는 데 쓸 수 있는 설계다.
숫자 입력 “30000.0”의 표현, 쉼표 허용 여부, 최대 금액은 별도 확인사항으로 뒀다. 수학적으로 정수인 값과 입력 문자열의 허용 형식을 구분해야 한다는 점에서 좋은 초안이다.
반면 배송비 기준 오류가 “가장 흔하다”, 입력 검증 실수는 “상대적으로 드물다”는 빈도 판단을 뒷받침할 자료는 이번 실행에 없다. 위키렙AI는 이 표현을 근거로 우선순위를 정하지 않는다. 잘못된 입력 차단과 큰 금액 차이를 만드는 배송 경계를 먼저 확인한다.
위키렙AI의 바로 쓰는 검산표
아래는 AI 원문이 아니라 위키렙AI가 요구사항으로 다시 계산한 기준값이다. 모두 원 단위다. 일반 지역·쿠폰 선택 기준으로 “상품 합계 → 할인 / 배송비 / 최종 금액” 순서로 읽으면 된다.
29,999 → 0 / 3,000 / 32,999 30,000 → 3,000 / 3,000 / 30,000 49,999 → 4,999 / 3,000 / 48,000 50,000 → 5,000 / 3,000 / 48,000 54,999 → 5,000 / 3,000 / 52,999 55,000 → 5,000 / 0 / 50,000 55,001 → 5,000 / 0 / 50,001
추가로 55,000원·쿠폰 선택·도서산간은 53,000원이다. 50,000원·쿠폰 미선택·일반은 50,000원, 54,999원·쿠폰 미선택·일반은 54,999원이다. 상한 누락을 드러낼 50,010원·쿠폰 선택·일반은 할인 5,000원, 최종 48,010원이다.
0, −1, 30,000.5는 오류이며 최종 결제금액을 계산하지 않는다. 입력 문자열의 허용 형식과 오류 문구는 담당자가 확정한 뒤 별도 검사한다.
실행 순서와 다시 사용할 질문
첫 단계는 쿠폰 미선택 50,000원 정상 경로와 0·음수·소수 차단이다. 다음은 54,999↔55,000원의 무료배송 경계, 도서산간 추가비, 29,999↔30,000원 쿠폰 시작점, 49,999원 버림과 50,010원 상한을 확인한다. 마지막으로 쿠폰 해제와 배송지 변경 후 다시 계산되는지 본다.
담당자 실행표에는 입력값·예상 할인·예상 배송비·예상 최종금액·실제 결과·통과 여부·증거 위치를 나눠 적는다. 예상 결과를 AI로 만들었다면 같은 답변 안의 설명과 표가 서로 맞는지도 검사해야 한다.
아래 요구사항으로 테스트 케이스와 예상 결과를 만들어줘. 각 예상 결과를 어느 규칙에서 도출했는지 설명하고, 명세에 없는 UI 동작이나 입력 형식은 확인사항으로 분리해줘. 숫자 계산뿐 아니라 사용자가 선택을 변경했을 때의 재계산도 검토해줘. [요구사항 붙여넣기]
관련 작업으로 이어가기
요구사항이 바뀌었다면 두 버전의 문서 변경점 비교 글에서 누락을 먼저 점검할 수 있다. 출시 뒤 주문 데이터의 취소·중복·빈칸을 정리하는 일은 CSV 주문 매출 비교 글에서 별도로 다뤘다.
출처와 실제 기록
2026년9월21일12:04~12:08KST 한국어 동일 질문 각1회. ChatGPT Free·Think꺼짐·모델명미표시(A/B 두 응답이 자동 표시되어 모두 보존), Gemini Flash·요금제미확인, Claude Free·Sonnet5 Medium. 한국어 원문 실행을 영어·중국어로 현지화했다. 검증은 사전 기준30개 대조와 네 표시응답의 필수행36개 Python 산술 대조이며, 실제 쇼핑몰 결제·UI·API를 실행한 결과가 아니다. 필수행만의 결과는 ChatGPT각9/9, Gemini8/9, Claude9/9이고, 본문은 추가행 오류도 포함한다. 공식 도구 문서는 작업의 용례이며 한국 검색량은 미확인이다.
Katalon官方:从需求生成AI测试用例 / Generate test cases from requirements
문서 변경점 비교 / Document version comparison
CSV 주문 매출 비교 / Order CSV comparison
ChatGPT · 2026-09-21 12:04–12:08 KST
쇼핑몰의 쿠폰·배송비 기능을 출시하기 전에 QA 테스트 케이스를 만들고 싶어. 아래는 우리가 만든 가상 요구사항이야. 상품 합계는 0보다 큰 정수 원 단위여야 해. 0, 음수, 소수 금액은 오류로 처리하고 결제 금액을 계산하지 않아. 쿠폰을 선택했을 때 할인 전 상품 합계가 30,000원 이상이면 10% 할인하되 할인액은 원 미만을 버리고 최대 5,000원까지만 적용해. 30,000원 미만에서는 쿠폰을 선택해도 할인은 0원이야. 쿠폰을 선택하지 않으면 할인은 없어. 다른 할인이나 세금은 없어. 기본 배송비는 쿠폰 할인 후 상품 금액이 50,000원 이상이면 0원, 그 미만이면 3,000원이야. 도서산간 지역은 무료배송 여부와 관계없이 3,000원을 추가해. 최종 결제 금액은 할인 후 상품 금액에 기본 배송비와 도서산간 추가비를 더한 값이야. 담당자가 바로 실행할 수 있는 테스트 케이스와 예상 결과를 만들어줘. 쿠폰을 선택한 일반 지역의 상품 합계 29,999 / 30,000 / 49,999 / 50,000 / 54,999 / 55,000 / 55,001원, 쿠폰을 선택한 도서산간 지역 55,000원, 쿠폰을 선택하지 않은 일반 지역 50,000원은 꼭 포함해줘. 잘못된 금액 입력과 놓치기 쉬운 경계값도 함께 검토하고, 무엇부터 테스트할지 네 판단도 알려줘. 응답 1 요구사항을 기준으로 금액 검증 → 쿠폰 할인 → 배송비 → 최종 결제금액 순서로 계산되도록 테스트 케이스를 구성했습니다. 특히 30,000원, 50,000원, 55,000원 주변을 집중적으로 잡았습니다. 1. 핵심 QA 테스트 케이스 ID 상품 합계 쿠폰 지역 예상 할인 할인 후 상품금액 기본 배송비 도서산간 추가 최종 결제금액 TC-01 29,999 선택 일반 0 29,999 3,000 0 32,999 TC-02 30,000 선택 일반 3,000 27,000 3,000 0 30,000 TC-03 49,999 선택 일반 4,999 45,000 3,000 0 48,000 TC-04 50,000 선택 일반 5,000 45,000 3,000 0 48,000 TC-05 54,999 선택 일반 5,000 49,999 3,000 0 52,999 TC-06 55,000 선택 일반 5,000 50,000 0 0 50,000 TC-07 55,001 선택 일반 5,000 50,001 0 0 50,001 TC-08 55,000 선택 도서산간 5,000 50,000 0 3,000 53,000 TC-09 50,000 미선택 일반 0 50,000 0 0 50,000 계산상 중요한 점: 무료배송 기준은 쿠폰 할인 후 금액에 적용됩니다. 따라서 50,000원 상품에 쿠폰을 적용하면 45,000원이 되어 기본 배송비 3,000원이 붙습니다. 2. 할인액 버림과 최대 5,000원 경계 위 필수 케이스 외에 다음도 실행하는 것이 좋습니다. ID 상품 합계 쿠폰 예상 할인 할인 후 기본 배송비 최종 TC-10 30,001 선택 3,000 27,001 3,000 30,001 TC-11 30,009 선택 3,000 27,009 3,000 30,009 TC-12 30,011 선택 3,001 27,010 3,000 30,010 TC-13 49,999 선택 4,999 45,000 3,000 48,000 TC-14 50,001 선택 5,000 45,001 3,000 48,001 TC-15 55,000 선택 5,000 50,000 0 50,000 30,011 × 10% = 3,001.1원이므로 할인액은 3,001원이어야 합니다. 소수점 이하를 반올림하면 안 됩니다. 또한 50,000원 자체는 할인액이 정확히 5,000원이지만, 50,001원부터도 10% 계산값이 5,000원을 넘으므로 5,000원으로 상한 적용되는지 확인해야 합니다. 3. 쿠폰 미선택 / 지역 조합 쿠폰과 배송비 로직이 서로 섞이지 않는지도 확인합니다. ID 상품 합계 쿠폰 지역 예상 할인 기본 배송비 추가비 최종 TC-16 49,999 미선택 일반 0 3,000 0 52,999 TC-17 50,000 미선택 일반 0 0 0 50,000 TC-18 50,000 미선택 도서산간 0 0 3,000 53,000 TC-19 55,000 미선택 도서산간 0 0 3,000 58,000 TC-20 49,999 선택 도서산간 4,999 3,000 3,000 51,000 특히 도서산간 추가 3,000원은 무료배송이어도 붙어야 하므로 50,000원 이상 + 도서산간 조합을 반드시 포함하는 것이 좋습니다. 4. 잘못된 상품 금액 입력 요구사항상 오류가 되어 결제 금액 자체를 계산하지 않아야 합니다. ID 입력값 예상 결과 TC-21 0 금액 오류 / 결제금액 미계산 TC-22 -1 금액 오류 / 결제금액 미계산 TC-23 -10,000 금액 오류 / 결제금액 미계산 TC-24 0.1 금액 오류 / 결제금액 미계산 TC-25 29,999.9 금액 오류 / 결제금액 미계산 TC-26 30,000.5 금액 오류 / 결제금액 미계산 TC-27 "30000" 등 숫자가 아닌 문자열 입력 형식 오류 처리 확인 TC-28 공백/빈값 입력 오류 처리 확인 가능하다면 999,999,999, 아주 큰 정수도 넣어 금액 범위 초과나 오버플로가 없는지 별도 확인하는 것이 좋습니다. 요구사항에 최대 금액이 정의되어 있지 않으므로 이 경우에는 구체적인 기대 금액을 임의로 정하기보다 시스템의 허용 범위와 오류 처리 정책을 확인하는 것이 맞습니다. 5. 제가 먼저 테스트할 순서 1순위: 금액 유효성 0, 음수, 소수 정상적인 양의 정수 여기서 실패하면 이후 계산 테스트의 의미가 떨어집니다. 2순위: 쿠폰 임계값 29,999 → 30,000 → 30,001 쿠폰이 정확히 30,000원부터 적용되는지 확인합니다. 3순위: 할인액 버림 + 5,000원 상한 30,011 같은 소수점이 생기는 금액 50,000, 50,001처럼 상한에 걸리는 금액 4순위: 무료배송 임계값 할인 후 상품금액이 49,999 → 50,000 → 50,001이 되는 조합을 확인합니다. 여기서 중요한 것은 원래 상품 합계가 아니라 할인 후 금액이라는 점입니다. 5순위: 도서산간 무료배송 상태에서도 +3,000원이 붙는지 확인합니다. 6순위: 쿠폰 미선택 및 조합 회귀 테스트 쿠폰을 선택하지 않았을 때 할인 0원인지 일반/도서산간 조합이 모두 정상인지 확인합니다. QA에서 특히 놓치기 쉬운 포인트 30,000원 기준은 할인 전 상품 합계입니다. 50,000원 무료배송 기준은 할인 후 상품금액입니다. 할인액의 소수점은 버림입니다. 할인은 최대 5,000원입니다. 도서산간 +3,000원은 무료배송이어도 면제되지 않습니다. 잘못된 상품 금액은 배송비까지 계산하지 말고 전체 결제금액 계산을 중단해야 합니다. 쿠폰을 선택했지만 30,000원 미만이면 할인 0원이어야 합니다. 따라서 실제 QA 실행에서는 TC-01~09 → TC-10~15 → TC-21~28 순으로 먼저 돌리는 것을 권합니다. 이 순서면 핵심 비즈니스 규칙과 가장 위험한 경계값을 초기에 빠르게 검증할 수 있습니다. 이 응답이 더 좋아요 ChatGPT 응답 2 아래처럼 규칙별 경계값 → 할인/배송 상호작용 → 잘못된 입력 → 조합 테스트 순서로 만들면 담당자가 바로 실행하기 좋습니다. 1. 우선 테스트할 순서 상품 합계 입력 검증 — 잘못된 값이면 이후 계산을 하지 않는지 먼저 확인 쿠폰 할인 경계값 — 29,999 ↔ 30,000, 그리고 할인 상한 5,000원 경계 기본 배송비 경계값 — 쿠폰 할인 후 금액이 49,999 ↔ 50,000인지 확인 도서산간 추가비 — 무료배송과 별개로 항상 +3,000원인지 확인 쿠폰 미선택 및 주요 조합 — 정상 흐름과 회귀 테스트 특히 상품 합계 50,000원이 아니라 "쿠폰 할인 후 상품 금액"이 배송비 기준이라는 점이 이번 QA에서 가장 놓치기 쉬운 부분입니다. 2. 핵심 테스트 케이스 ID 상품 합계 쿠폰 지역 할인액 할인 후 상품금액 기본 배송비 도서산간 추가 최종 결제금액 TC-01 29,999 선택 일반 0 29,999 3,000 0 32,999 TC-02 30,000 선택 일반 3,000 27,000 3,000 0 30,000 TC-03 49,999 선택 일반 4,999 45,000 3,000 0 48,000 TC-04 50,000 선택 일반 5,000 45,000 3,000 0 48,000 TC-05 54,999 선택 일반 5,000 49,999 3,000 0 52,999 TC-06 55,000 선택 일반 5,000 50,000 0 0 50,000 TC-07 55,001 선택 일반 5,000 50,001 0 0 50,001 TC-08 55,000 선택 도서산간 5,000 50,000 0 3,000 53,000 TC-09 50,000 미선택 일반 0 50,000 0 0 50,000 TC-04와 TC-05가 특히 중요합니다. 쿠폰 할인은 각각 5,000원으로 상한에 도달하지만, 할인 후 금액이 50,000원에 못 미치므로 배송비 3,000원이 붙습니다. 반면 55,000원에서는 할인 후 정확히 50,000원이 되어 무료배송입니다. 3. 원 미만 버림 검증 요구사항상 할인액은 10% 계산 후 원 미만을 버려야 합니다. ID 상품 합계 쿠폰 계산된 10% 실제 할인액 할인 후 금액 TC-10 30,001 선택 3,000.1 3,000 27,001 TC-11 30,009 선택 3,000.9 3,000 27,009 TC-12 49,999 선택 4,999.9 4,999 45,000 TC-13 50,001 선택 5,000.1 5,000 45,001 TC-12는 원 미만 버림과 50,000원 배송 기준을 함께 확인할 수 있어서 좋은 경계 테스트입니다. 4. 할인 상한 경계값 10%가 5,000원을 처음 초과하는 지점은 50,000원입니다. 따라서 다음을 별도로 확인하는 것이 좋습니다. 상품 합계 기대 할인액 49,999 4,999 50,000 5,000 50,001 5,000 여기서 50,001원에 대해 5,000.1원을 그대로 적용하거나 5,001원으로 반올림하면 오류입니다. 5. 잘못된 상품 금액 입력 ID 입력값 기대 결과 TC-14 0 오류, 결제금액 계산하지 않음 TC-15 -1 오류, 결제금액 계산하지 않음 TC-16 -30,000 오류, 결제금액 계산하지 않음 TC-17 0.1 오류, 결제금액 계산하지 않음 TC-18 30,000.5 오류, 결제금액 계산하지 않음 TC-19 49,999.99 오류, 결제금액 계산하지 않음 TC-20 빈 값 입력 오류 처리 TC-21 숫자가 아닌 값(abc) 입력 오류 처리 요구사항에 따르면 유효한 상품 합계는 0보다 큰 정수 원 단위뿐이므로, 소수는 0.1뿐 아니라 30,000.5, 49,999.99 등도 모두 거부해야 합니다. 6. 추가로 놓치기 쉬운 조합 ID 상품 합계 쿠폰 지역 기대 최종금액 TC-22 30,000 미선택 일반 33,000 TC-23 54,999 미선택 일반 57,999 TC-24 55,000 미선택 일반 55,000 TC-25 55,000 선택 도서산간 53,000 TC-26 55,001 선택 도서산간 53,001 TC-27 54,999 선택 도서산간 55,999 특히 TC-25는 "무료배송이면 도서산간 추가비도 없어지는 것 아닌가?"라는 구현 실수를 잡습니다. 요구사항상 무료배송 여부와 무관하게 도서산간 추가비 3,000원이 붙습니다. 7. QA에서 확인할 핵심 불변조건 자동화 테스트까지 고려한다면 다음 규칙을 체크하면 좋습니다. 상품 합계가 유효하지 않으면 결제금액을 계산하지 않는다. 쿠폰 미선택 → 할인액 0 쿠폰 선택 + 상품 합계 < 30,000 → 할인액 0 쿠폰 선택 + 상품 합계 ≥ 30,000 → floor(상품합계 × 10%) 위 할인액은 최대 5,000원 기본 배송비의 판단 기준은 원래 상품 합계가 아니라 할인 후 상품 금액 할인 후 상품 금액 ≥ 50,000 → 기본 배송비 0 할인 후 상품 금액 < 50,000 → 기본 배송비 3,000 도서산간 → 위 결과와 관계없이 추가 3,000 최종금액 = 할인 후 상품금액 + 기본 배송비 + 도서산간 추가비 실행 우선순위를 딱 5개로 줄인다면: TC-01 → TC-02 → TC-05 → TC-06 → TC-08을 먼저 돌리겠습니다. 이 다섯 개만으로 쿠폰 적용 시작점, 할인 상한 근처, 무료배송 시작점, 도서산간 추가비라는 핵심 경계와 상호작용을 가장 빠르게 검증할 수 있습니다. 이 응답이 더 좋아요
Gemini · 2026-09-21 12:04–12:08 KST
쇼핑몰의 쿠폰·배송비 기능을 출시하기 전에 QA 테스트 케이스를 만들고 싶어. 아래는 우리가 만든 가상 요구사항이야. 상품 합계는 0보다 큰 정수 원 단위여야 해. 0, 음수, 소수 금액은 오류로 처리하고 결제 금액을 계산하지 않아. 쿠폰을 선택했을 때 할인 전 상품 합계가 30,000원 이상이면 10% 할인하되 할인액은 원 미만을 버리고 최대 5,000원까지만 적용해. 30,000원 미만에서는 쿠폰을 선택해도 할인은 0원이야. 쿠폰을 선택하지 않으면 할인은 없어. 다른 할인이나 세금은 없어. 기본 배송비는 쿠폰 할인 후 상품 금액이 50,000원 이상이면 0원, 그 미만이면 3,000원이야. 도서산간 지역은 무료배송 여부와 관계없이 3,000원을 추가해. 최종 결제 금액은 할인 후 상품 금액에 기본 배송비와 도서산간 추가비를 더한 값이야. 담당자가 바로 실행할 수 있는 테스트 케이스와 예상 결과를 만들어줘. 쿠폰을 선택한 일반 지역의 상품 합계 29,999 / 30,000 / 49,999 / 50,000 / 54,999 / 55,000 / 55,001원, 쿠폰을 선택한 도서산간 지역 55,000원, 쿠폰을 선택하지 않은 일반 지역 50,000원은 꼭 포함해줘. 잘못된 금액 입력과 놓치기 쉬운 경계값도 함께 검토하고, 무엇부터 테스트할지 네 판단도 알려줘. 쇼핑몰 쿠폰·배송비 기능 출시 전 QA 담당자가 즉시 활용할 수 있는 **테스트 케이스(TC)** 및 **우선순위 가이드**입니다. --- ## 1. QA 테스트 케이스 (Test Cases) ### A. 필수 포함 및 주요 경계값 테스트 케이스 (정상/할인/배송비 조건) | TC ID | 쿠폰 여부 | 배송지 | 입력 상품 합계 | 할인액 계산 과정 | 할인 후 상품 금액 | 기본 배송비 | 도서산간 추가비 | **예상 최종 결제 금액** | 비고 / 검증 포인트 | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | **TC-01** | 선택 | 일반 | **29,999원** | 3만원 미만 $\rightarrow$ 0원 | 29,999원 | 3,000원 | 0원 | **32,999원** | 쿠폰 적용 최소 금액 미달 경계값 | | **TC-02** | 선택 | 일반 | **30,000원** | $30,000 \times 10\% = 3,000$원 | 27,000원 | 3,000원 | 0원 | **30,000원** | 쿠폰 할인 조건 진입 경계값 | | **TC-03** | 선택 | 일반 | **49,999원** | $49,999 \times 10\% = 4,999.9 \rightarrow$ 버림 **4,999원** | 44,999원 | 3,000원 | 0원 | **47,999원** | 소수점 버림 처리 검증 | | **TC-04** | 선택 | 일반 | **50,000원** | $50,000 \times 10\% = 5,000$원 | 45,000원 | 3,000원 | 0원 | **48,000원** | 최대 할인 적용 / 무료배송 금액 미달 | | **TC-05** | 선택 | 일반 | **54,999원** | 최대 한도 제한 $\rightarrow$ **5,000원** | 49,999원 | 3,000원 | 0원 | **52,999원** | 무료배송 조건 미달 경계값 (49,999원) | | **TC-06** | 선택 | 일반 | **55,000원** | 최대 한도 제한 $\rightarrow$ **5,000원** | 50,000원 | 0원 | 0원 | **50,000원** | 할인 후 5만원 달성 $\rightarrow$ 기본 무료배송 조건 경계값 | | **TC-07** | 선택 | 일반 | **55,001원** | 최대 한도 제한 $\rightarrow$ **5,000원** | 50,001원 | 0원 | 0원 | **50,001원** | 할인 후 5만원 초과 무료배송 유지 | | **TC-08** | 선택 | **도서산간** | **55,000원** | 최대 한도 제한 $\rightarrow$ **5,000원** | 50,000원 | 0원 | 3,000원 | **53,000원** | 기본 무료배송 + 도서산간 추가비 부과 검증 | | **TC-09** | 미선택 | 일반 | **50,000원** | 쿠폰 미선택 $\rightarrow$ 0원 | 50,000원 | 0원 | 0원 | **50,000원** | 쿠폰 미선택 시 할인 없음 및 무료배송 | --- ### B. 예외 처리 및 입력값 유효성 테스트 케이스 (오류 처리) | TC ID | 입력 상품 합계 | 예상 결과 (오류 처리 및 결제 금액) | 비고 / 검증 포인트 | | --- | --- | --- | --- | | **TC-10** | **0원** | 결제 금액 계산 불가. "상품 금액은 0원보다 커야 합니다." 에러 문구 노출 및 결제 진행 차단 | 0원 입력 처리 | | **TC-11** | **-10,000원** | 결제 금액 계산 불가. 에러 문구 노출 및 결제 진행 차단 | 음수 입력 처리 | | **TC-12** | **35,000.5원** | 결제 금액 계산 불가. "소수점 금액은 입력할 수 없습니다." 에러 문구 노출 및 결제 진행 차단 | 소수점 입력 처리 | | **TC-13** | **문자/공백/Special Code** | 결제 금액 계산 불가. 입력 필드 차단 또는 즉시 유효성 에러 처리 | 비정상 입력값 방어 | --- ### C. 놓치기 쉬운 추가 경계값 및 엣지 케이스 | TC ID | 조건 | 입력 상품 합계 | 할인 및 배송비 계산 logic | 예상 최종 결제 금액 | 검증 포인트 | | --- | --- | --- | --- | --- | --- | | **TC-14** | 쿠폰 선택 / 일반 | **1원** | 최소 금액 정상 입력값 / 쿠폰 할인 0원 / 기본 배송비 3,000원 | **3,001원** | 0보다 큰 최소 정수(1원) 처리 | | **TC-15** | 쿠폰 선택 / 일반 | **30,001원** | $30,001 \times 10\% = 3,000.1 \rightarrow$ 버림 **3,000원** | **30,001원** | 소수점 발생 시 원 미만 버림 처리 ($30,001 - 3,000 + 3,000$) | | **TC-16** | 쿠폰 선택 / 도서산간 | **29,999원** | 쿠폰 할인 0원 / 기본 배송비 3,000원 / 도서산간 3,000원 | **35,999원** | 유료 배송 조건 + 도서산간 추가비 이중 부과 | --- ## 2. 우선순위 가이드 (무엇부터 테스트할 것인가?) QA 진행 시 아래 **3단계 순서**로 실행하는 것을 권장합니다. 1. **1단계: 예외 처리 및 결제 차단 검증 (Blocker 방지)** * **대상:** TC-10 ~ TC-13 (0원, 음수, 소수점 입력) * **이유:** 잘못된 입력값이 시스템에 들어갔을 때 결제 연동 에러가 발생하거나 서버 장애로 이어질 수 있으므로, 입구 단계에서 올바르게 차단되는지 최우선 확인해야 합니다. 2. **2단계: 단올림/버림 및 경계값 이중 조건 검증 (핵심 로직)** * **대상:** TC-03, TC-05, TC-06, TC-08, TC-15 * **이유:** 특히 54,999원(TC-05)과 **55,000원(TC-06)** 구간은 쿠폰 최대 할인 한도(5,000원)와 무료배송 기준(5,000원 할인 후 50,000원)이 동시에 맞물리는 지점입니다. 1원 차이로 배송비 3,000원이 변동되므로 오차가 발생하기 가장 쉬운 핵심 구간입니다. 3. **3단계: 기본 정상 흐름 및 일반 지역/도서산간 조합 검증** * **대상:** TC-01, TC-02, TC-04, TC-07, TC-09, TC-14, TC-16 * **이유:** 쿠폰 선택 유무 및 도서산간 3,000원 추가 수수료가 무료배송 수수료 계산 결과에 영향을 주지 않고 독립적으로 정확히 가산되는지 확인합니다.
Claude · 2026-09-21 12:04–12:08 KST
쇼핑몰의 쿠폰·배송비 기능을 출시하기 전에 QA 테스트 케이스를 만들고 싶어. 아래는 우리가 만든 가상 요구사항이야.
상품 합계는 0보다 큰 정수 원 단위여야 해. 0, 음수, 소수 금액은 오류로 처리하고 결제 금액을 계산하지 않아. 쿠폰을 선택했을 때 할인 전 상품 합계가 30,000원 이상이면 10% 할인하되 할인액은 원 미만을 버리고 최대 5,000원까지만 적용해. 30,000원 미만에서는 쿠폰을 선택해도 할인은 0원이야. 쿠폰을 선택하지 않으면 할인은 없어. 다른 할인이나 세금은 없어.
기본 배송비는 쿠폰 할인 후 상품 금액이 50,000원 이상이면 0원, 그 미만이면 3,000원이야. 도서산간 지역은 무료배송 여부와 관계없이 3,000원을 추가해. 최종 결제 금액은 할인 후 상품 금액에 기본 배송비와 도서산간 추가비를 더한 값이야.
담당자가 바로 실행할 수 있는 테스트 케이스와 예상 결과를 만들어줘. 쿠폰을 선택한 일반 지역의 상품 합계 29,999 / 30,000 / 49,999 / 50,000 / 54,999 / 55,000 / 55,001원, 쿠폰을 선택한 도서산간 지역 55,000원, 쿠폰을 선택하지 않은 일반 지역 50,000원은 꼭 포함해줘. 잘못된 금액 입력과 놓치기 쉬운 경계값도 함께 검토하고, 무엇부터 테스트할지 네 판단도 알려줘.
**핵심:** 아래 케이스는 유효값 20건(필수 9건 + 추가 11건)과 오류 입력 10건입니다. 가장 먼저 볼 곳은 **쿠폰 할인 후 금액 기준의 무료배송 경계(54,999 / 55,000)** 입니다. 무료배송 판정을 할인 전 금액으로 잘못 구현하는 실수가 가장 흔하고 금액 영향도 크기 때문입니다.
**계산 기준:** 할인 = 쿠폰 선택 시, 합계 ≥ 30,000이면 min(⌊합계×10%⌋, 5,000), 아니면 0. 배송비 = 할인 후 금액 ≥ 50,000이면 0, 아니면 3,000. 최종 = 할인 후 금액 + 배송비 + 도서산간 3,000(해당 시).
## 1. 필수 케이스 (요청 항목)
| ID | 쿠폰 | 지역 | 상품 합계 | 할인 | 할인 후 | 기본 배송비 | 도서산간 | **최종 결제** | 확인 포인트 |
|---|---|---|---|---|---|---|---|---|---|
| TC-01 | O | 일반 | 29,999 | 0 | 29,999 | 3,000 | 0 | **32,999** | 쿠폰 최소금액 직전 |
| TC-02 | O | 일반 | 30,000 | 3,000 | 27,000 | 3,000 | 0 | **30,000** | 쿠폰 최소금액 경계 (이상) |
| TC-03 | O | 일반 | 49,999 | 4,999 | 45,000 | 3,000 | 0 | **48,000** | 원 미만 절사, 상한 직전 |
| TC-04 | O | 일반 | 50,000 | 5,000 | 45,000 | 3,000 | 0 | **48,000** | 할인 상한 정확히 도달 |
| TC-05 | O | 일반 | 54,999 | 5,000 | 49,999 | 3,000 | 0 | **52,999** | 할인 후 49,999 → 유료배송 |
| TC-06 | O | 일반 | 55,000 | 5,000 | 50,000 | 0 | 0 | **50,000** | 할인 후 50,000 → 무료배송 경계 |
| TC-07 | O | 일반 | 55,001 | 5,000 | 50,001 | 0 | 0 | **50,001** | 무료배송 경계 직후 |
| TC-08 | O | 도서산간 | 55,000 | 5,000 | 50,000 | 0 | 3,000 | **53,000** | 무료배송이어도 추가비 부과 |
| TC-09 | X | 일반 | 50,000 | 0 | 50,000 | 0 | 0 | **50,000** | 미선택 시 할인 없음, 무료배송 |
## 2. 추가 경계값 (유효 입력)
| ID | 쿠폰 | 지역 | 상품 합계 | 할인 | 할인 후 | 기본 배송비 | 도서산간 | **최종 결제** | 확인 포인트 |
|---|---|---|---|---|---|---|---|---|---|
| TC-10 | O | 일반 | 1 | 0 | 1 | 3,000 | 0 | **3,001** | 최소 유효 금액 |
| TC-11 | O | 일반 | 30,009 | 3,000 | 27,009 | 3,000 | 0 | **30,009** | 3,000.9 → 절사(반올림 아님) |
| TC-12 | O | 일반 | 50,001 | 5,000 | 45,001 | 3,000 | 0 | **48,001** | 상한 직후 (5,000.1 → 5,000) |
| TC-13 | O | 일반 | 1,000,000 | 5,000 | 995,000 | 0 | 0 | **995,000** | 고액에서도 상한 유지 |
| TC-14 | O | 도서산간 | 29,999 | 0 | 29,999 | 3,000 | 3,000 | **35,999** | 쿠폰 미달 + 추가비 합산 |
| TC-15 | O | 도서산간 | 54,999 | 5,000 | 49,999 | 3,000 | 3,000 | **55,999** | 배송비 + 추가비 중복 부과 |
| TC-16 | X | 일반 | 30,000 | 0 | 30,000 | 3,000 | 0 | **33,000** | 쿠폰 최소금액 충족이어도 미선택이면 할인 없음 |
| TC-17 | X | 일반 | 49,999 | 0 | 49,999 | 3,000 | 0 | **52,999** | 미선택 시 무료배송 직전 |
| TC-18 | X | 도서산간 | 50,000 | 0 | 50,000 | 0 | 3,000 | **53,000** | 미선택 + 도서산간 |
| TC-19 | O→X | 일반 | 55,000 | 0 | 55,000 | 0 | 0 | **55,000** | 쿠폰 선택 후 해제 시 재계산 (선택 상태 50,000 → 해제 후 55,000) |
| TC-20 | O | 일반→도서산간 | 55,000 | 5,000 | 50,000 | 0 | 0→3,000 | **50,000 → 53,000** | 지역 변경 시 재계산 |
## 3. 잘못된 금액 입력
**공통 기대 결과:** 오류 표시, 할인·배송비·최종 결제금액 모두 계산·표시하지 않음, 결제 진행 불가.
| ID | 입력 | 쿠폰 / 지역 | 비고 |
|---|---|---|---|
| TC-E01 | 0 | O / 일반 | 명세 |
| TC-E02 | -1 | X / 일반 | 명세 |
| TC-E03 | -30,000 | O / 일반 | 쿠폰 조건을 절댓값으로 처리하지 않는지 |
| TC-E04 | 0 | O / 도서산간 | 오류가 쿠폰·추가비보다 우선하는지 (3,000 등이 남지 않아야 함) |
| TC-E05 | 30,000.5 | O / 일반 | 소수 (명세) |
| TC-E06 | 0.5 | X / 일반 | 0 < x < 1 소수 |
| TC-E07 | 54,999.99 | O / 일반 | 소수, 무료배송 경계 근처 |
**명세에 없어 확인이 필요한 입력** (기대 결과는 제 가정입니다):
| ID | 입력 | 가정한 기대 결과 | 확인할 점 |
|---|---|---|---|
| TC-E08 | 빈 값 / null | 오류 | 요구사항에 명시 필요 |
| TC-E09 | "abc", "3만원" | 오류 | 입력 UI가 숫자 전용이면 N/A |
| TC-E10 | 30000.0 | 불명확 | "소수 금액"에 포함되는지. 정수값이면 허용할지 정해야 함 |
## 4. 명세 공백 (테스트 전 확인 권장)
1. 상품 합계의 상한이 있는가 (TC-13보다 큰 값, 정수 오버플로 포함)
2. 쉼표 포함 입력("30,000")을 허용하는가
3. 쿠폰 선택 + 30,000원 미만일 때 "적용 불가" 안내가 필요한가 (현재는 할인 0원만 명시)
## 5. 테스트 우선순위 (제 판단)
| 순서 | 대상 | 이유 |
|---|---|---|
| 0 | TC-09 (스모크) | 미선택 기본 경로가 깨져 있으면 이후 결과를 신뢰할 수 없음 |
| 1 | TC-05, 06, 07, 08, 15 | 무료배송 판정 기준이 "할인 후 금액"인지 확인. 오류 시 매 주문 금액이 틀어짐 |
| 2 | TC-01, 02, 16 | 쿠폰 발동 경계(30,000)와 선택 여부 의존성 |
| 3 | TC-03, 04, 12, 11 | 절사와 5,000원 상한 경계 |
| 4 | TC-E01~E07 | 입력 검증 (오류 시 결제 자체가 막히므로 영향은 크지만 구현 실수는 상대적으로 드묾) |
| 5 | TC-19, 20, 10, 13, 14, 17, 18 | 재계산과 나머지 조합 |
| 6 | TC-E08~E10 | 명세 확정 후 |
한 가지 가정: 최종 결제금액과 할인 후 금액을 화면에 각각 노출한다고 보고 검증 포인트를 잡았습니다. 결제금액만 노출되는 화면이라면 중간값 검증은 API 응답이나 로그로 바꿔야 합니다.