직설적인 프롬프트를 사용하여 제대로 결과물을 만들어내는 법
요약
코딩 에이전트에게 모호한 요청 대신 측정 가능한 수치와 명확한 목표를 제공하여 테스트 품질을 높이는 방법을 설명합니다. 단순한 커버리지 달성을 넘어 실제 회귀 사례를 찾아내도록 압박하는 프롬프트 전략을 제안합니다.
핵심 포인트
- 측정 가능한 하한선(예: 커버리지 20% 향상)을 명시하여 타협 방지
- 단순 실행이 아닌 '회귀 사례 사냥'을 목표로 설정하여 작업 성격 변화
- 단순히 테스트가 통과(Green)되는 것에 만족하지 말고 유용성을 검증
- 엣지 케이스 발견 및 코드의 명확한 동작 증명을 강제하는 프롬프트 활용
코딩 에이전트(Coding agent)에게 “테스트를 더 추가해줘”라고 요청하지 마세요.
그렇게 하면 '커버리지 연극(coverage theater)'을 하게 될 뿐입니다.
압박을 가하세요:
테스트 커버리지(test coverage)를 최소 20% 이상 높여줘.
만약 실제 회귀(regression) 사례를 최소 하나도 찾아낼 수 없다면, 네 테스트는 어차피 형편없는 거야.
이 프롬프트가 효과적인 이유는 두 가지 부분으로 구성되어 있기 때문입니다.
첫째, 에이전트에게 측정 가능한 하한선을 제공합니다:
테스트 커버리지를 최소 20% 이상 높여줘.
“테스트를 좀 더 추가해줘”가 아닙니다.
“커버리지를 개선해줘”도 아닙니다.
최소 20%입니다.
숫자가 중요한 이유는 적당히 타협하며 빠져나갈 구멍을 없애주기 때문입니다.
둘째, 가짜 성공을 차단합니다:
만약 실제 회귀(regression) 사례를 최소 하나도 찾아낼 수 없다면...
이것은 작업의 성격을 바꿉니다.
에이전트는 더 이상 보고서를 만족시키기 위해 테스트를 작성하는 것이 아닙니다.
코드가 깨질 수 있다는 증거를 사냥하는 것입니다.
그것이 핵심입니다.
커버리지(Coverage)만으로는 단지 다음과 같이 말할 뿐입니다:
이 라인이 실행되었습니다.
회귀 사냥(Regression hunting)은 다음과 같이 묻습니다:
이 테스트가 유용한 무언가를 증명했는가?
취약한 테스트는 코드를 실행하면서도 아무것도 보호하지 못할 수 있습니다:
self::assertNotNull($result);
이것은 신뢰(confidence)가 아닙니다.
그것은 소음(noise)일 뿐입니다.
유용한 테스트는 고장 난 동작을 잡아내거나, 누락된 엣지 케이스(edge case)를 드러내거나, 뮤턴트(mutant)를 제거하거나, 혹은 코드가 무엇을 해야 하는지 명확히 하도록 강제합니다.
- 에이전트를 더 강하게 밀어붙이세요.
- 테스트가 통과(green)되었다고 멈추지 마세요.
- 통과(green)는 시작점일 뿐입니다.
진짜 질문은 이것입니다:
새로운 테스트가 실제로 무엇을 발견했는가?
만약 대답이 “아무것도 없음”이라면, 계속 진행하세요.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기