Full Test Orchestrator: 10개 도메인 테스트 자동화가 필요한 이유

코드를 작성하고 나면 항상 따라오는 질문이 있다. “테스트는 충분한가?” 대부분의 개발자는 유닛 테스트 몇 개를 작성하고 넘어가거나, 시간에 쫓겨 테스트를 아예 건너뛰기도 한다. 하지만 실제 프로덕션에서 문제를 일으키는 것은 단위 테스트로는 잡을 수 없는 영역에서 발생한다.

이 글에서는 왜 종합적인 테스트가 필요한지, 그리고 이를 자동화하기 위해 만든 Claude Code 스킬 Full Test Orchestrator를 소개한다.

TL;DR

  • 코드 구현 후 테스트는 10개 도메인(Unit, API, Integration, E2E, Security, Accessibility, Performance, Load/Stress, Smoke, Chaos)을 모두 커버해야 한다.
  • 수동으로 하면 누락과 편향이 불가피하다. 자동화가 답이다.
  • Full Test Orchestrator는 3-Agent 병렬 실행으로 10개 도메인의 시나리오, 케이스, 코드를 자동 생성한다.
  • 커버리지 98% 이상, 9가지 품질 기준을 목표로 한다.
  • GitHub: greeun/full-test-orchestrator

왜 종합적인 테스트가 필요한가

유닛 테스트만으로는 부족하다

많은 프로젝트에서 “테스트 작성”이라 하면 유닛 테스트를 떠올린다. 함수 하나가 올바른 값을 반환하는지 확인하는 것이다. 물론 중요하다. 하지만 실제 장애의 대부분은 유닛 테스트가 커버하지 못하는 곳에서 발생한다.

장애 유형 유닛 테스트로 발견 가능? 필요한 테스트 도메인
SQL Injection 취약점 ❌ 불가능 Security
동시접속 1000명 시 서버 다운 ❌ 불가능 Load/Stress
스크린리더가 폼을 읽지 못함 ❌ 불가능 Accessibility
배포 후 로그인 불가 ❌ 불가능 Smoke
DB 연결 끊김 시 앱 크래시 ❌ 불가능 Chaos
페이지 로드 8초 소요 ❌ 불가능 Performance
모듈 A-B 연동 시 데이터 손실 ❌ 불가능 Integration
유닛 테스트만으로는 발견할 수 없는 실제 장애 유형들

유닛 테스트의 모든 항목이 통과해도 프로덕션에서 장애가 발생할 수 있다. 이것이 종합적인 테스트가 필요한 근본적인 이유다.

10개 테스트 도메인이라는 답

소프트웨어 품질을 제대로 검증하려면 기능적 테스트, 비기능적 테스트, 복원력 테스트를 모두 수행해야 한다. 이를 10개 도메인으로 체계화했다.

10개 테스트 도메인 분류 마인드맵
10개 테스트 도메인: 기능(Functional), 비기능(Non-Functional), 복원력(Resilience)으로 분류
# 도메인 검증 대상 핵심 질문
1 Unit 함수/모듈 격리 검증 이 함수가 올바른 값을 반환하는가?
2 API 엔드포인트 요청/응답 API 계약이 지켜지는가?
3 Integration 모듈 간 연동 모듈 A와 B가 함께 작동하는가?
4 E2E 전체 사용자 흐름 사용자가 로그인에서 결제까지 완료할 수 있는가?
5 Security OWASP Top 10 공격자가 시스템을 뚫을 수 있는가?
6 Accessibility WCAG 2.1 AA 장애를 가진 사용자도 이용할 수 있는가?
7 Performance LCP, FID, TTFB 사용자가 느리다고 느끼지 않는가?
8 Load/Stress 동시접속, TPS 1000명이 동시에 써도 버티는가?
9 Smoke 배포 후 핵심 경로 배포 직후 핵심 기능이 작동하는가?
10 Chaos 장애 주입 복원력 DB가 죽어도 앱이 살아남는가?
10개 테스트 도메인과 각각이 답하는 핵심 질문

수동 테스트의 한계

10개 도메인을 모두 수동으로 테스트하면 어떻게 될까? 현실적으로 불가능에 가깝다.

AS-IS 수동 테스트 vs TO-BE 자동화 테스트 비교
AS-IS: 10단계 순차 수동 작업 vs TO-BE: 3-Agent 병렬 자동화

수동 테스트가 실패하는 3가지 이유

문제 원인 결과
누락 10개 도메인을 매번 기억하고 수행하기 어려움 Security, Accessibility, Chaos 등이 빠짐
편향 개발자는 자신이 작성한 코드의 happy path만 테스트하는 경향 경계값, 에러 케이스 미검증
시간 10개 도메인 순차 수행 시 수 시간 소요 결국 “나중에 하자”가 되어 영영 안 함
수동 테스트가 실패하는 구조적 원인

특히 세 번째 문제인 시간이 가장 치명적이다. 구현에 3시간이 걸렸는데 테스트에 5시간을 쓸 수 있는 개발자는 많지 않다. 결국 테스트는 후순위로 밀리고, 프로덕션에서 문제가 터진 후에야 급하게 작성하게 된다.

Full Test Orchestrator: 자동화된 해결책

이 문제를 해결하기 위해 Full Test Orchestrator라는 Claude Code 스킬을 만들었다. 핵심 아이디어는 간단하다.

핵심 아이디어

  • 코드를 분석하여 테스트 대상을 자동으로 파악한다.
  • 10개 도메인의 테스트 시나리오, 케이스, 코드를 한 번에 생성한다.
  • 3개 Agent 병렬 실행으로 시간을 단축한다.
  • 문서와 코드를 분리하여 시나리오/케이스는 tests/doc/에, 코드는 tests/에 배치한다.

5-Phase 워크플로우

Full Test Orchestrator 워크플로우 - 5단계 병렬 실행 구조
Full Test Orchestrator의 5-Phase 워크플로우
Phase 작업 실행 방식 산출물
A 코드 분석 순차 분석 컨텍스트 (모든 Agent에 공유)
B 테스트 문서 생성 3-Agent 병렬 tests/doc/scenarios/*.md, tests/doc/testcases/*.md
C 테스트 코드 생성 3-Agent 병렬 tests/**/*.test.*, Test Preparation Report
D 테스트 실행 검증 3-Agent 병렬 Test Execution Report
E 리포트 표시 순차 준비 리포트 + 실행 리포트
각 Phase의 작업, 실행 방식, 산출물

병렬 Agent 그룹

10개 도메인을 3개 Agent에 분배하여 병렬로 실행한다. 그룹핑 기준은 도메인 간의 관련성이다.

Agent 담당 도메인 그룹핑 이유
Agent 1 Unit + API + Smoke 빠르고 격리된 테스트 – 빠른 피드백
Agent 2 Integration + E2E 흐름 기반 테스트 – 통합 컨텍스트 공유
Agent 3 Security + Accessibility + Performance + Load/Stress + Chaos 비기능/복원력 테스트 – 품질/보안 컨텍스트 공유
3-Agent 병렬 그룹 구성과 그룹핑 근거

9가지 품질 기준

생성된 모든 테스트는 9가지 품질 기준으로 측정된다. “테스트를 작성했다”는 것만으로는 부족하다. 그 테스트가 좋은 테스트인지까지 검증해야 한다.

기준 목표 의미
커버리지 line 98%+, branch 90%+ 코드의 거의 모든 경로를 테스트
독립성 테스트 간 의존 0 어떤 순서로 실행해도 동일 결과
결정성 flaky 0건 같은 코드에 항상 같은 결과
경계값 null, empty, max 포함 edge case까지 빈틈없이 검증
실패 명확성 기대값/실제값 포함 실패 시 원인을 즉시 파악 가능
실행 속도 unit < 1s, e2e < 30s CI에서 빠르게 피드백
보안 OWASP Top 10 커버 주요 공격 벡터 차단 확인
접근성 WCAG 2.1 AA 통과 모든 사용자가 이용 가능
성능 LCP < 2.5s, FID < 100ms 사용자 체감 속도 보장
9가지 품질 기준과 각각의 의미

2개의 분리된 리포트

테스트 준비(코드 생성)와 테스트 실행 결과를 분리하여 리포트한다. 준비 리포트에서 생성된 테스트의 양과 구조를 확인하고, 실행 리포트에서 실제 pass/fail 결과와 품질 기준 달성 여부를 확인한다.

구분 Test Preparation Report Test Execution Report
시점 Phase C 완료 후 Phase D 완료 후
내용 시나리오/케이스/파일 수, 라인 수 pass/fail 수, 커버리지, 소요 시간
목적 “무엇이 만들어졌는가” “결과가 어떤가”
품질 기준 포함하지 않음 9가지 기준 달성 여부 표시
2개 리포트의 차이

사용법

어떤 프로젝트에서든 Claude Code 세션에서 다음 키워드로 트리거할 수 있다.

언어 트리거 키워드 예시
한국어 테스트 작성, 테스트 생성, 모든 테스트, 커버리지, 검증, QA 검증
English write tests, generate tests, create test suite, coverage, QA
한국어/영어 양쪽 모두 트리거 지원

특정 도메인만 선택적으로 실행할 수도 있다.

# 전체 10개 도메인
"테스트 작성해줘"

# 특정 도메인만
"unit이랑 security 테스트만 만들어줘"

프로젝트 구조

full-test-orchestrator/
├── SKILL.md                    # 메인 워크플로우 지침
├── README.md                   # 영문 문서
├── README.ko.md                # 한국어 문서
├── references/
│   ├── test-domains.md         # 10개 도메인 상세 가이드
│   ├── quality-criteria.md     # 9가지 품질 기준
│   ├── doc-templates.md        # 문서 구조 규칙
│   ├── parallel-strategy.md    # 병렬 실행 전략
│   └── report-format.md        # 리포트 템플릿
└── assets/templates/
    ├── scenario-template.md    # 시나리오 문서 템플릿
    └── testcase-template.md    # 테스트 케이스 문서 템플릿

결론

테스트는 “시간이 남으면 하는 것”이 아니라 “코드 작성의 일부”다. 하지만 10개 도메인을 매번 수동으로 커버하는 것은 현실적으로 불가능하다. Full Test Orchestrator는 이 간극을 메운다.

  • 매 세션마다 자동으로 종합 테스트를 생성하여 누락을 방지한다.
  • 3-Agent 병렬 실행으로 시간 부담을 최소화한다.
  • 9가지 품질 기준으로 테스트의 품질 자체를 보장한다.
  • 프로젝트의 기존 프레임워크를 자동 감지하여 추가 설정 없이 바로 사용할 수 있다.

“테스트 작성해줘” 한 마디면 된다.

GitHub: https://github.com/greeun/full-test-orchestrator

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤