Skip to main content
Glama
TESTER_USAGE_GUIDE.mdโ€ข4.59 kB
# ๐Ÿ“– World-Class Tester Usage Guide **์‹ค์ „ ํ™œ์šฉ ๊ฐ€์ด๋“œ** --- ## ๐Ÿ“‹ 4๊ฐ€์ง€ ์‹ค์ „ ์‹œ๋‚˜๋ฆฌ์˜ค ### 1. ์‹ ๊ทœ ๊ธฐ๋Šฅ ํ…Œ์ŠคํŠธ (AI Chat ์˜ˆ์‹œ) #### Step 1: ์š”๊ตฌ์‚ฌํ•ญ ๋ถ„์„ (30๋ถ„) - AI Chat ๋ชฉ์ , ์ง€์› ๋ชจ๋ธ, ์ž…๋ ฅ ์ œํ•œ ํŒŒ์•… - ์‘๋‹ต ์‹œ๊ฐ„ ๋ชฉํ‘œ, ์—๋Ÿฌ ์‹œ๋‚˜๋ฆฌ์˜ค ํ™•์ธ #### Step 2: ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์ž‘์„ฑ (1์‹œ๊ฐ„) ```yaml Happy Paths: - ๊ธฐ๋ณธ ๋ฉ”์‹œ์ง€ ์†ก์ˆ˜์‹  - Follow-up ์ปจํ…์ŠคํŠธ ์œ ์ง€ - ์ฑ„ํŒ… ํžˆ์Šคํ† ๋ฆฌ ํ‘œ์‹œ Error Paths: - ๋„คํŠธ์›Œํฌ ์˜ค๋ฅ˜ โ†’ Retry - API ํƒ€์ž„์•„์›ƒ โ†’ ์•ˆ๋‚ด ๋ฉ”์‹œ์ง€ Edge Cases: - 10,000์ž ๋ฉ”์‹œ์ง€ - ํŠน์ˆ˜๋ฌธ์ž/์ด๋ชจ์ง€ - 50๊ฐœ ์—ฐ์† ๋ฉ”์‹œ์ง€ โ†’ Rate limiting ``` #### Step 3: Manual Testing (1์‹œ๊ฐ„) ```bash 1. Chrome DevTools (F12) ์—ด๊ธฐ 2. Happy Path ์‹คํ–‰ โ†’ ์‘๋‹ต์‹œ๊ฐ„, ๋ Œ๋”๋ง ํ™•์ธ 3. Error Path โ†’ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€, Retry ๋ฒ„ํŠผ 4. ๋ฐœ๊ฒฌ๋œ ๋ฒ„๊ทธ โ†’ Loom ๋…นํ™” + ์Šคํฌ๋ฆฐ์ƒท ``` #### Step 4: E2E ์ž๋™ํ™” (2์‹œ๊ฐ„) ```typescript test('should send message and get AI response', async ({ page }) => { await page.fill('[data-testid="chat-input"]', 'What is AI?'); await page.click('[data-testid="send-btn"]'); const aiMsg = page.locator('[data-testid="msg-ai"]').last(); await expect(aiMsg).toBeVisible({ timeout: 10000 }); }); ``` --- ### 2. Pre-release ๊ฒ€์ฆ (4์‹œ๊ฐ„) ```markdown ### CI/CD (30๋ถ„) - [ ] All tests pass (Unit/Integration/E2E) - [ ] Code coverage >80% ### Critical Path (2์‹œ๊ฐ„) - [ ] Login/Logout - [ ] Project CRUD - [ ] AI Chat - [ ] File upload - [ ] Report generation ### Cross-Browser (1์‹œ๊ฐ„) - [ ] Chrome/Firefox/Safari/Edge - [ ] iOS Safari, Android Chrome ### Performance (30๋ถ„) - [ ] Lighthouse >90 - [ ] Load time <2sec ### Security (30๋ถ„) - [ ] OWASP ZAP scan clean - [ ] XSS/SQL injection blocked ``` --- ### 3. ํšŒ๊ท€ ํ…Œ์ŠคํŠธ ```bash # E2E Regression Suite ์‹คํ–‰ npm run test:e2e:regression # Smoke Test (Critical paths๋งŒ) npm run test:e2e:smoke ``` --- ### 4. ์„ฑ๋Šฅ ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ ```javascript // k6 load test export let options = { stages: [ { duration: '2m', target: 50 }, { duration: '5m', target: 100 }, ], thresholds: { http_req_duration: ['p(95)<500'], // 95% <500ms }, }; ``` --- ## ์‹ ๊ทœ QA 4์ฃผ ์˜จ๋ณด๋”ฉ ### Week 1: ๊ธฐ์ดˆ - ํ”„๋กœ์ ํŠธ ์ดํ•ด, ๋กœ์ปฌ ํ™˜๊ฒฝ ์„ค์ • - Chrome DevTools ๋งˆ์Šคํ„ฐ - ์ฒซ ๋ฒ„๊ทธ ๋ฆฌํฌํŠธ ์ž‘์„ฑ ### Week 2: ์ˆ˜๋™ ํ…Œ์ŠคํŠธ - ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์ž‘์„ฑ (10๊ฐœ) - Critical Path ํ…Œ์ŠคํŠธ ์‹คํ–‰ - ๋ฒ„๊ทธ 5๊ฐœ ๋ฐœ๊ฒฌ ๋ฐ ๋ฆฌํฌํŠธ ### Week 3: ์ž๋™ํ™” ๊ธฐ์ดˆ - Playwright ํŠœํ† ๋ฆฌ์–ผ - Page Object Model ์ดํ•ด - ์ฒซ E2E ํ…Œ์ŠคํŠธ 3๊ฐœ ์ž‘์„ฑ ### Week 4: ๋…๋ฆฝ ์ž‘์—… - ์ „์ฒด ๊ธฐ๋Šฅ ํ…Œ์ŠคํŠธ ํ”Œ๋žœ ์ˆ˜๋ฆฝ - Pre-release checklist ์‹คํ–‰ - ํŒ€ ํšŒ๊ณ  ๋ฐœํ‘œ --- ## Daily/Weekly/Sprint ์ฒดํฌํฌ์ธํŠธ ### Daily ```markdown ์˜ค์ „ (9:00-12:00): - Standup ์ฐธ์—ฌ - ๊ณ„ํš๋œ ํ…Œ์ŠคํŠธ ์‹คํ–‰ ์˜คํ›„ (1:00-6:00): - ๋ฒ„๊ทธ ๊ฒ€์ฆ ๋ฐ ํšŒ๊ท€ ํ…Œ์ŠคํŠธ - ํƒ์ƒ‰์  ํ…Œ์ŠคํŠธ - ๋ฒ„๊ทธ ๋ฆฌํฌํŠธ ์ž‘์„ฑ Daily Metrics: - ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค: ~20๊ฐœ - ๋ฒ„๊ทธ ๋ฐœ๊ฒฌ: 2-3๊ฐœ - E2E ์ž‘์„ฑ: 1-2๊ฐœ ``` ### Weekly - Monday: Sprint planning - Tue-Thu: ํ…Œ์ŠคํŠธ ์‹คํ–‰ - Friday: ์ฃผ๊ฐ„ ๋ฆฌํฌํŠธ, retrospective ### Sprint - Start: ํ…Œ์ŠคํŠธ ๊ณ„ํš ์ˆ˜๋ฆฝ - Mid: ์กฐ๊ธฐ ํ…Œ์ŠคํŠธ (dev branch) - End: Pre-release ๊ฒ€์ฆ --- ## FAQ ### Q1: Flaky test ์ˆ˜์ •? ```typescript // โŒ Bad: ๊ณ ์ • ๋Œ€๊ธฐ await page.waitForTimeout(5000); // โœ… Good: ์กฐ๊ฑด๋ถ€ ๋Œ€๊ธฐ await page.waitForSelector('[data-testid="result"]'); await page.waitForLoadState('networkidle'); ``` ### Q2: ๋ฒ„๊ทธ ์šฐ์„ ์ˆœ์œ„? - **P0**: ์„œ๋น„์Šค ์ค‘๋‹จ โ†’ ์ฆ‰์‹œ (1์‹œ๊ฐ„) - **P1**: ์ฃผ์š” ๊ธฐ๋Šฅ ๋ถˆ๊ฐ€ โ†’ ๋‹น์ผ - **P2**: ์šฐํšŒ ๊ฐ€๋Šฅ โ†’ 3์ผ - **P3**: ๋งˆ์ด๋„ˆ โ†’ ๋‹ค์Œ Sprint ### Q3: ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€ ๋‚ฎ์„ ๋•Œ? 1. Critical paths ๋จผ์ € 2. ๋ณต์žกํ•œ ๋กœ์ง (์—๋Ÿฌ ์ฒ˜๋ฆฌ) 3. Edge cases ### Q4: ๊ฐœ๋ฐœ์ž์™€ ์˜๊ฒฌ ์ฐจ์ด? โœ… ๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜ ๋Œ€ํ™” โœ… ์š”๊ตฌ์‚ฌํ•ญ ์ฐธ์กฐ โœ… ํƒ€ํ˜‘์•ˆ ์ œ์‹œ --- ## ๋„๊ตฌ ์„ค์ • ### Playwright ```bash npm init playwright@latest npx playwright test --ui # ๋””๋ฒ„๊น… npx playwright test --headed # ๋ธŒ๋ผ์šฐ์ € ๋ณด๊ธฐ ``` ### Chrome DevTools ```javascript // Console ์œ ์šฉ ๋ช…๋ น์–ด $('[data-testid="button"]') // ์š”์†Œ ์„ ํƒ performance.timing.loadEventEnd // ๋กœ๋”ฉ ์‹œ๊ฐ„ ``` ### JIRA ํ…œํ”Œ๋ฆฟ ```markdown Title: [Component] Brief description Priority: P1 Labels: bug, sprint-22 [Bug report template ์‚ฌ์šฉ] ``` --- ## ์ฐธ๊ณ  ๋ฌธ์„œ - [World-Class Tester Persona](WORLD_CLASS_TESTER_PERSONA.md) - [Tester Competencies](WORLD_CLASS_TESTER_COMPETENCIES.md)

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/seanshin0214/persona-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server