Chương 06 Cơ Bản
JIRA — Issue Tracking
Sử dụng JIRA hiệu quả — từ issue types, JQL queries đến board management và tích hợp test management.
🎯 Issue Types Required
- EpicTính năng lớn kéo dài nhiều sprint. Chứa nhiều Stories. Ví dụ: "Payment Integration," "User Authentication Module." Epic có thể kéo dài 2-3 tháng.
- Story (User Story)Tính năng cụ thể có thể hoàn thành trong 1 sprint. Format: "As a [user], I want [action] so that [benefit]." Có Acceptance Criteria.
- TaskCông việc kỹ thuật hoặc non-feature. Ví dụ: "Setup Staging environment," "Update API documentation," "QA regression suite update."
- BugDefect tìm được trong testing. Liên kết với Story liên quan. Có Severity, Priority, Steps to Reproduce.
- Sub-taskBreakdown của Story/Task thành phần nhỏ hơn. Ví dụ: Story "User Login" có sub-tasks: "Frontend form," "API endpoint," "Test cases," "Documentation."
- ImprovementEnhancement cho tính năng đã tồn tại, không phải bug. Ví dụ: "Make search results load faster."
🔍 JQL — JIRA Query Language Deep Dive
JQL là ngôn ngữ query mạnh để filter và search issues. QA cần thành thạo JQL để tạo saved filters và dashboards.
Operators cơ bản:
AND, OR, NOTLogic operators.ANDthu hẹp kết quả,ORmở rộng,NOTloại trừ.IN, NOT INSo sánh với list:status IN (Open, "In Progress", Retest)WAS, CHANGEDHistorical queries:status WAS "In Progress" BEFORE "2025-01-01"~, !~Text search (contains):summary ~ "payment"IS EMPTY, IS NOT EMPTYCheck null fields:assignee IS EMPTY
JQL Queries thực tế cho QA:
project = "SPORTS" AND issuetype = Bug AND status != Done ORDER BY priority ASC— Tất cả bug chưa fixsprint in openSprints() AND issuetype = Bug AND priority in (Critical, High)— Critical/High bugs trong sprint hiện tạiassignee = currentUser() AND status = "Retest"— Bugs đang chờ tôi verifyproject = "SPORTS" AND created >= -7d AND issuetype = Bug— Bugs mới trong 7 ngàystatus CHANGED TO "Reopen" AFTER startOfWeek()— Bugs bị reopen tuần nàyfixVersion = "v2.5.0" AND issuetype = Bug AND status != Done— Bugs còn lại cho release cụ thểlabels = "regression" AND status = Fail ORDER BY priority— Regression failuresproject = "SPORTS" AND issuetype = Story AND status = Done AND sprint in closedSprints() ORDER BY updated DESC— Stories đã xong các sprint trước
💡 Save Filters cho Quick Access
Tạo Saved Filter cho các queries hay dùng: "My Open Bugs to Verify," "Sprint Critical Issues," "Release Blocker Dashboard." Share filter với team để mọi người có cùng view.
📋 Board & Workflow
- Scrum BoardSprint-based: Backlog → To Do → In Progress → In Review → Done. Stories move across columns. QA column: "In Testing" hoặc "Retest".
- Kanban BoardFlow-based, không có sprint. WIP limits per column. Phù hợp với maintenance/support teams.
- Workflow CustomizationQA có thể đề xuất thêm status: "Ready for QA" (dev done, waiting QA), "In Testing," "Retest" (bug fixed, need verify). Clear status = clear accountability.
- Backlog RefinementQA tham gia grooming backlog: add Acceptance Criteria, estimate test effort, xác định testing risks.
📊 Reports & Charts cho QA
- Burndown ChartStory points còn lại vs ideal burndown. Nếu thực tế cao hơn ideal → sprint at risk. QA cần biết đọc để anticipate testing crunch.
- Velocity ChartStory points completed per sprint. Giúp QA estimate testing capacity cho sprint tiếp theo.
- Bug Trend ReportSố bug open/close theo thời gian. Trend tăng → chất lượng đang giảm. Cần raise với PM.
- Created vs ResolvedNếu Created > Resolved nhiều ngày liên tiếp → bug backlog đang tăng, release risk.
- Test Coverage DashboardTạo JIRA dashboard với gadgets: Bug count by priority, bugs by component, sprint burndown. Visible cho toàn team.
🧪 Test Management Tools trong JIRA
| Tool | Description | Best For |
|---|---|---|
| Zephyr Scale | Native JIRA plugin, test cases as JIRA issues | Teams already heavy in JIRA |
| Xray | Powerful test management, BDD support, CI integration | Automation-heavy teams |
| TestRail | Standalone tool với JIRA integration | Large QA teams, complex projects |
| qTest | Enterprise test management platform | Enterprise/regulated industries |
| Spreadsheet + JIRA | Simple: Google Sheets cho TC, link JIRA bugs | Small teams, startups |
📌 Khi nào cần dedicated test management tool?
Khi: team > 3 QA, cần compliance/audit trail, muốn execution metrics tự động, có automation reporting cần integrate. Small teams có thể dùng JIRA + spreadsheet hiệu quả.
✏️ Bài Tập JQL
📝 Bài Tập: Viết JQL Queries
Viết JQL query cho các scenarios sau (project = "ECOMMERCE"):
- Tìm tất cả Critical bugs được tạo trong sprint hiện tại chưa được assign cho ai
- Tìm tất cả bugs thuộc Payment module đã được fix trong 2 tuần qua
- Tìm tất cả stories được mark là Done trong sprint vừa kết thúc, nhưng có ít nhất 1 bug liên quan vẫn còn Open
- Tìm bugs được report bởi tôi (currentUser) và đã bị reopen nhiều hơn 1 lần
- Tạo query cho "Release Readiness Dashboard": tất cả issues trong fixVersion "v3.0" còn chưa Done