Test Guide - MZC-CSC/mc-web-console GitHub Wiki
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)
- ๊ธฐ๋ฅ ๊ฐ๋ฐ ์์ ์ TC ์ ์(์ ์ 1 + ๋น์ ์ 1)์ ์ธ์ ํ ์คํธ๋ฅผ ๋จผ์ ์ถ๊ฐํ๋ค.
- ๊ธฐ๋ฅ PR ๋ณธ๋ฌธ์ TC ID๋ฅผ ๋ช
๊ธฐํ๋ค. ์:
Acceptance: TC-K8S-NODEGROUP-ADD-01 - ํด๋น TC๋ง ์คํํด ํต๊ณผ๋ฅผ ํ์ธํ ๋ค ๋จธ์งํ๋ค.
- ๋จธ์ง ํ ์ธ์ ํ๊ทธ๋ฅผ ํ๊ท ํ๊ทธ๋ก ์น๊ฒฉํด ํ ์คํธ ์์ฐ์ผ๋ก ํธ์ ํ๋ค.
์ ์/๋น์ ์ 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 ์ฐ๊ฒฐ |
๋ชจ๋ ์์น๋ ์คํ ๊ฒฐ๊ณผ์์ ์๋ ์์ฑ๋๋ฉฐ, ๊ฐ ๋ฌธ์ ์๋จ์ ๊ฒฐ๊ณผ ๊ธฐ์ค์ผ๊ณผ ๋์ ๋ฐฐํฌ ๋ฒ์ ์ ํ๊ธฐํ๋ค.