Skip to content

Test Guide

dogfootman edited this page Sep 28, 2026 · 1 revision

Test Guide

생성: 2026-09-28 · 결과 기준: 최근 실행 2026-09-16 · 대상 배포 버전: web:0.5.2 infra:0.12.9 conn:0.12.18 wf:0.5.1 app:0.5.2 data:0.5.3 cost:0.5.2 obs:0.5.0

mc-web-console 기능 테스트의 전략, 테스트 케이스(TC) 작성 규칙, 실행 방법을 설명한다. 테스트는 Playwright(TypeScript)로 자동화했으며, TC 정의(registry)와 실행 결과를 조인해 Test Scenarios, Test Results, API Coverage 문서를 자동 생성한다.

1. 테스트 대상

mc-web-console 화면은 세 가지 방식으로 프레임워크와 통합된다. 방식마다 결함이 생기는 지점이 달라서 검증 방법도 다르다.

통합 유형 설명 주로 깨지는 지점
native 콘솔이 직접 구현한 화면 (Workloads, Cloud Resources, IAM 등) 폼 입력 검증, API payload 매핑, 상태 표시
iframe 프레임워크 UI를 콘솔 안에 띄우는 화면 (Workflow, Cost, Monitoring 등) 화면 로딩, 콘솔↔iframe 인증 핸드셰이크(postMessage)
proxy 콘솔 API가 프레임워크 API로 중계하는 경로 라우팅, 상태코드, 권한

2. 4계층 테스트 전략

결함은 가능한 가장 낮은 계층에서 잡는다. 위 계층일수록 느리고 비용(실 CSP 자원)이 들기 때문이다.

계층 이름 브라우저 클라우드(CSP) 검증 내용 TC 수
L0 contract 없음 사용 안 함 콘솔 API·proxy 라우팅 상태코드, 스키마, 권한 {{N_L0}}
L1 ui 사용 응답 mock native 폼·토스트의 정상/비정상 동작, iframe 로딩과 핸드셰이크 {{N_L1}}
L2 csp 사용 실제 CSP 리소스 실생성·제어·삭제, CSP × 기능 매트릭스 {{N_L2}}
L3 journey 사용 선택 페르소나 여정(여러 화면을 가로지르는 업무 흐름), 회귀 겸 시연 여정 12건

L2는 비용이 드는 만큼 CSP Tier로 실행 폭과 주기를 나눈다.

Tier CSP 범위 주기 대상
A 8종 전수 (AWS, GCP, Azure, Alibaba, Tencent, NCP, NHN, KT) 주 1회 Infra/K8s Workload 생성·삭제, nodegroup, node 제어, disk
B 대표 CSP nightly network, security group, image, spec
C mock (L0/L1) PR · nightly IAM, workspace, cost 화면, workflow 편집

리소스 수명주기는 두 가지로 운영한다.

  • Infra Workload — 재사용 풀: CSP별 상설 테스트 Infra를 suspend 상태로 두고, 테스트 시 resume → 종료 시 suspend한다. 생성·삭제 자체를 검증하는 TC만 매번 새로 만든다.
  • K8s Workload — ephemeral: 테스트마다 생성하고 종료 시 삭제한다. 삭제 누락에 대비해 teardown → 전역 정리 → 주기적 잔존 자원 정리의 3중 방어선을 둔다.

3. 기능 → 여정 → 테마

4계층이 "어떤 방식으로 검증하는가"라면, 이 축은 "무엇을 어떤 단위로 묶는가"다.

단위 정의 예
기능 (TC) 더 쪼갤 수 없는 단일 확인 단위. 기능마다 정상 1개 + 비정상 1개 이상 필수 VPC 생성, VPC 생성 시 CIDR 누락
여정 (J, IV) 여러 기능을 업무 흐름으로 이은 시나리오 Infra 운영 여정(J5), 설치 후 통합 검증(IV1~IV8)
테마 목적이 같은 여정의 묶음. 자체 판정 없이 소속 여정 결과를 집계 설치 후 통합 검증

4. 테스트 케이스 작성 규칙

TC ID: TC-{FW}-{FEATURE}-{NN} — FW는 IAM · INFRA · K8S · OBS · WF · COST · DATA · APP · CONSOLE. 여정은 J{N}, 설치검증 여정은 IV{N}.

TC 정의 항목 (registry):

항목 설명
제목 한 줄 요약 — 무엇을 하면 어떤 결과가 나와야 하는가
구분 정상 / 비정상
계층 L0 ~ L3
사전 조건 로그인 · Workspace/Project 선택 · 실행 중 Infra 등 필요한 상태
절차 (steps) 단계별 동작과 확인 지점. 자동화 코드의 test.step과 1:1로 대응해 실패 지점을 단계 수준으로 좁힌다
화면 / 검증 API 기능이 있는 화면과, 이 TC가 검증하는 프레임워크 API(operationId)

상황 케이스 도출 기준 — 기능 하나를 등재할 때 아래 차원을 검토해 해당하는 것마다 TC를 만든다.

차원 질문
진입 가드 Workspace/Project·권한 없이 진입하면?
자동 동작 전제가 충족되면 목록이 자동 조회되는가?
빈 데이터 0건일 때 화면이 정상인가?
API 실패 백엔드 5xx·timeout 시 화면이 깨지지 않는가?
입력 검증 필수값 누락·형식 오류 시 오류 표시 + API 미호출인가?
권한 경계 하위 역할에서 버튼 미노출 또는 거부되는가?
중복·연타 같은 동작을 연속 실행하면 요청이 1회만 나가는가?
상태 충돌 대상이 이미 다른 상태(예: Suspended)면 오류 처리되는가?

결과 판정:

기호 의미
✅ PASS 통과
❌ FAIL 실패 — 제품 결함 또는 테스트 결함 조사 필요
🚧 BLOCKED 알려진 외부 결함(업스트림 이슈)으로 차단. 이슈마다 재확인 기한을 두어 기한이 지나면 다시 실행된다
⏭️ SKIP 환경 전제 미충족 (예: 멀티 CSP 자원이 등록되지 않은 환경)
⬜ 미실행 자동화는 있으나 최근 실행 결과 없음
📝 미구현 TC 정의만 있고 자동화 미작성 (백로그)

5. 신규 기능 인수 절차 (Acceptance)

  1. 기능 개발 시작 시 TC 정의(정상 1 + 비정상 1)와 인수 테스트를 먼저 추가한다.
  2. 기능 PR 본문에 TC ID를 명기한다. 예: Acceptance: TC-K8S-NODEGROUP-ADD-01
  3. 해당 TC만 실행해 통과를 확인한 뒤 머지한다.
  4. 머지 후 인수 태그를 회귀 태그로 승격해 테스트 자산으로 편입한다.

정상/비정상 TC 동시 등재는 CI(registry lint)가 강제한다.

6. 실행 방법

테스트 코드는 mcmp-qa 저장소(현재 내부 저장소)에서 관리한다. 실행 환경은 Node.js 20+와 Playwright(Chromium)이고, 대상 콘솔과 연동 프레임워크가 기동된 상태여야 한다.

npm ci
npx playwright install chromium
cp .env.example .env        # 대상 서버·계정 입력

npm run test:smoke          # L0 + L1 @smoke — PR 게이트
npm run test:contract       # L0
npm run test:ui             # L1
npm run test:csp -- --grep "@csp:aws"   # L2, CSP 지정
npm run test:journey -- --grep J5       # L3 여정
npm run coverage            # 결과 문서 재생성
트리거 실행 범위
PR L0 + L1 @smoke (실 CSP 없음)
nightly L1 @regression + L2 Tier B + 잔존 자원 정리 + 결과 문서 재생성
weekly L2 Tier A 8종 CSP 전수 + 시연 영상 재생산

환경변수 (값은 각 환경에서 지정):

변수 용도
BASE_URL 대상 mc-web-console 주소
ADMIN_ID, ADMIN_PASSWORD 플랫폼 관리자 계정
OPERATOR_ID, OPERATOR_PASSWORD, VIEWER_ID, VIEWER_PASSWORD 역할별 페르소나 계정
BILLVIEWER_ID · APPOPERATOR_ID · WFOPERATOR_ID · MONVIEWER_ID 등 (*_PASSWORD 쌍) 도메인별 viewer/operator 페르소나 계정
TEST_WORKSPACE, TEST_PROJECT 기본 Workspace/Project
TUMBLEBUG_URL, TUMBLEBUG_AUTH L2 상태 교차검증용 mc-infra-manager API
DEMO_LIVE_CSP 시연 모드에서 실 CSP 사용 시 CSP 지정

7. 결과 문서

문서 내용
Test Scenarios 영역별 TC 정의(절차 포함), 여정·설치검증 Step
Test Results 전체/영역별 집계, CSP 매트릭스, 알려진 이슈, TC별 최근 결과·실패 Step
API Coverage 프레임워크별 API 검증 커버리지
MC-Web-Console Features 화면·기능·API 정의와 검증 TC 연결

모든 수치는 실행 결과에서 자동 생성되며, 각 문서 상단에 결과 기준일과 대상 배포 버전을 표기한다.

Clone this wiki locally