함수에 맞는 테스트 코드 짜기

정상·경계·실패 경우를 나눠 테스트를 만든다

프롬프트 · 변수 2개

아래 함수의 단위 테스트를 {{테스트 도구}}로 작성해 주세요. 테스트할 경우를 "정상 동작 · 경계값 · 실패와 예외" 세 묶음으로 나누고, 각 묶음에서 실제로 결과가 갈리는 경우만 골라 주세요.

형식: 먼저 표로 어떤 경우를 왜 테스트하는지 정리해 주세요. 열은 "묶음 · 입력값 · 기대 결과 · 이 경우를 넣은 이유"입니다. 그다음에 표의 순서대로 테스트 코드를 써 주세요. 테스트 이름만 읽어도 무엇을 확인하는지 알 수 있게 지어 주세요.

코드에 보이지 않는 함수·설정·데이터는 지어내지 말고, 필요하면 가짜로 대체한 뒤 무엇을 대체했는지 주석으로 남겨 주세요. 테스트는 12개를 넘기지 말고, 같은 것을 값만 바꿔 확인하는 테스트는 하나로 합쳐 주세요.

코드를 다 쓴 뒤, 각 테스트가 표에 적은 경우를 정말 확인하는지 스스로 점검해 주세요. 함수를 어떻게 고쳐도 항상 통과하는 테스트가 있으면 지우고, 지운 이유를 마지막에 한 줄로 알려 주세요.

코드: """ {{코드}} """

복사한 뒤 여기에 붙여 넣으세요 · ChatGPT·Claude는 프롬프트를 실은 채 열립니다 ChatGPT에서 열기 ↗Claude에서 열기 ↗Gemini에서 열기 ↗뤼튼에서 열기 ↗ 빌더에서 고치기 수업용 카드 이미지 받기

이 프롬프트에는 개인정보가 들어갈 수 있는 변수가 있습니다. 실제 이름·번호·회사명은 가명으로 바꿔 넣으세요.

결과 예시

아직 실제 결과를 확인하지 않았습니다. 확인 후 예시가 채워집니다.

왜 이렇게 쓰는가

과제
아래 함수의 단위 테스트를 {{테스트 도구}}로 작성해 주세요. 테스트할 경우를 "정상 동작 · 경계값 · 실패와 예외" 세 묶음으로 나누고, 각 묶음에서 실제로 결과가 갈리는 경우만 골라 주세요.
형식
형식: 먼저 표로 어떤 경우를 왜 테스트하는지 정리해 주세요. 열은 "묶음 · 입력값 · 기대 결과 · 이 경우를 넣은 이유"입니다. 그다음에 표의 순서대로 테스트 코드를 써 주세요. 테스트 이름만 읽어도 무엇을 확인하는지 알 수 있게 지어 주세요.
제약
코드에 보이지 않는 함수·설정·데이터는 지어내지 말고, 필요하면 가짜로 대체한 뒤 무엇을 대체했는지 주석으로 남겨 주세요. 테스트는 12개를 넘기지 말고, 같은 것을 값만 바꿔 확인하는 테스트는 하나로 합쳐 주세요.
자기 검토
코드를 다 쓴 뒤, 각 테스트가 표에 적은 경우를 정말 확인하는지 스스로 점검해 주세요. 함수를 어떻게 고쳐도 항상 통과하는 테스트가 있으면 지우고, 지운 이유를 마지막에 한 줄로 알려 주세요.
입력 자료
코드: """ {{코드}} """

테스트 코드 생성 프롬프트를 그냥 "테스트 만들어 줘"로 쓰면, 잘 되는 경우만 확인하는 테스트가 열 개쯤 나옵니다. 값만 다른 정상 케이스가 줄줄이 통과하니 안심하게 되지만, 정작 버그가 사는 곳인 경계와 예외는 한 번도 지나가지 않습니다.

과제 문단이 그 지점을 정면으로 겁니다. 경우를 "정상 · 경계값 · 실패와 예외" 세 묶음으로 나누라고 하면 AI는 각 묶음을 채우려고 코드의 조건문을 다시 읽습니다. 위 예시라면 3만 원과 5만 원처럼 값이 뒤바뀌는 지점, 0과 음수처럼 예외가 나는 지점이 그때 드러납니다.

형식에서 코드보다 표를 먼저 받는 이유는 검토 순서 때문입니다. 테스트 코드를 먼저 보면 문법만 훑고 넘어가지만, 표를 보면 빠진 경우가 눈에 띕니다. "이 경우를 넣은 이유" 열은 의미 없는 테스트를 스스로 걸러 내게 만듭니다.

"테스트는 12개를 넘기지 말라"는 한 줄도 일부러 넣었습니다. 개수를 열어 두면 정상 케이스만 값을 바꿔 가며 스무 개가 나오고, 그 목록을 다 읽지 않게 됩니다. 상한을 두면 AI가 무엇을 남길지 스스로 고르게 되고, 그 선택에서 경계값이 앞으로 나옵니다.

마지막 문단은 다 쓴 뒤 스스로 점검하게 합니다. 단위 테스트 chatgpt 결과에서 흔한 문제가 "무엇을 고쳐도 통과하는 테스트"인데, 이렇게 한 번 되짚게 하면 상당수가 걸러집니다. 코드를 """ 로 감싼 것은 함수 안의 문자열이나 주석이 지시로 읽히지 않게 하기 위해서입니다.

용어가 낯설면 아하AI에서: output-format, hallucination

나쁜 예와 비교

흔한 나쁜 예

이 함수 테스트 코드 짜줘

(코드 붙여넣기)

정상 입력 몇 개를 넣어 결과를 확인하는 테스트가 나옵니다. 조건이 뒤집히는 경계값과 예외가 빠져 있고, 코드에 없는 설정 파일이나 픽스처를 전제로 한 코드가 섞여 그대로는 실행되지 않는 일도 잦습니다. 통과하는 초록 불만 보고 안심하게 되는 것이 가장 위험한 부분입니다.

변형

이미 있는 테스트에서 빠진 것만 찾을 때

이미 있는 테스트에서 빠진 것만 찾을 때

아래에 함수와 지금 있는 테스트가 함께 들어 있습니다. 새 테스트를 바로 쓰지 말고, 아직 확인되지 않은 경우만 표로 뽑아 주세요. 열은 "확인되지 않은 경우 · 왜 필요한가 · 위험도"입니다. 그다음 위험도가 높은 것부터 {{테스트 도구}} 테스트 코드로 3개만 써 주세요.

""" {{코드}} """

테스트가 이미 있을 때 씁니다. 빠진 것부터 표로 받으면 비슷한 테스트가 늘어나는 것을 막을 수 있습니다.

테스트가 왜 실패하는지 모를 때

테스트가 왜 실패하는지 모를 때

아래 {{테스트 도구}} 테스트가 실패합니다. 코드와 테스트 중 어느 쪽이 잘못됐는지 먼저 판단해 주고, 그 근거를 알려 주세요. 테스트를 통과시키려고 기대값을 바꾸는 제안은 하지 말아 주세요.

""" {{코드}} """

실패한 테스트를 붙여 넣으면 AI가 기대값을 슬쩍 고쳐 통과시키는 일이 흔합니다. 그 길을 미리 막아 둡니다.

모델별 주의

테스트가 통과하는지는 반드시 직접 돌려 보세요. 실행해 보지 않은 테스트 코드는 이름만 그럴듯하고 통과하지 않는 경우가 있습니다

테스트 도구의 버전에 따라 단언 함수 이름이 다릅니다. 결과가 낯설면 "제가 쓰는 도구는 몇 버전입니다"라고 덧붙여 다시 요청하세요.

관련 프롬프트

마지막 수정 2026-09-02 · 잘못된 점이 있나요? 알려 주세요