Issue Types
| Type |
Meaning |
| Epic |
A large body of work spanning sprints |
| Story |
A user-facing requirement |
| Task |
A unit of work |
| Sub-task |
A breakdown of a parent issue |
| Bug |
A defect |
Defect Life Cycle
New → Assigned → Open → Fixed → Retest → Closed
↘ Reopened ↗
↘ Deferred / Rejected / Duplicate / Cannot Reproduce
| Status |
Meaning |
| New |
Just logged |
| Assigned |
Given to a developer |
| Open / In Progress |
Being worked on |
| Fixed |
Dev says it's done |
| Retest |
Back with QA to verify |
| Closed |
Verified fixed |
| Reopened |
Verification failed |
| Deferred |
Valid, but postponed |
| Rejected |
Not a valid defect |
Severity vs Priority
| |
Severity |
Priority |
| About |
Functional impact |
Business urgency |
| Levels |
Blocker · Critical · Major · Minor |
Urgent · High · Medium · Low |
| Decided by |
The tester |
The developer/PO |
→ Full comparison with all 4 combinations
A Good Bug Report
| Field |
Content |
| Summary |
Specific and searchable — "Login button unresponsive after entering valid credentials" |
| Description |
What happened, in context |
| Steps to Reproduce |
Numbered, from a known starting state |
| Expected vs Actual |
Both, explicitly |
| Severity / Priority |
With reasoning |
| Environment |
Browser, OS, build version |
| Attachments |
Screenshot, video, logs |
JQL Basics
sql
project = "QA" AND status = "Open" AND assignee = currentUser()
ORDER BY created DESC
| Operator |
Use |
= != |
Exact match |
> < >= <= |
Comparison / dates |
IN (a, b) / NOT IN |
Match a list |
~ / !~ |
Contains text |
IS EMPTY / IS NOT EMPTY |
Null checks |
AND OR NOT |
Logical |
ORDER BY x ASC/DESC |
Sorting |
Common fields: project issuetype status priority assignee reporter created updated resolution sprint fixVersion labels component
Functions: currentUser() now() startOfDay() endOfWeek() -7d openSprints() membersOf()
Advertisement
Ready-Made JQL for Testers
sql
-- My open bugs
project = ABC AND issuetype = Bug AND status != Closed AND assignee = currentUser()
-- High-priority bugs still open
project = ABC AND issuetype = Bug AND priority in (Highest, High) AND status != Closed
ORDER BY created DESC
-- Bugs I raised in the last 7 days
project = ABC AND reporter = currentUser() AND created >= -7d
-- Bugs ready for retest
project = ABC AND status = "Ready for QA" ORDER BY priority DESC
-- Bugs in the current sprint
project = ABC AND sprint in openSprints() AND issuetype = Bug
-- Reopened bugs (a quality signal)
project = ABC AND status changed TO "Reopened"
-- Bugs with no fix version (release risk)
project = ABC AND issuetype = Bug AND fixVersion IS EMPTY AND status != Closed
-- Unassigned bugs
project = ABC AND issuetype = Bug AND assignee IS EMPTY
-- Blockers only
project = ABC AND priority = Highest AND status != Closed
-- Stale — untouched for 14 days
project = ABC AND status != Closed AND updated <= -14d
-- Bugs per developer (then group in a dashboard gadget)
project = ABC AND issuetype = Bug AND created >= -30d ORDER BY assignee
Agile Board Terms
| Term |
Meaning |
| Product backlog |
Everything pending, prioritized |
| Sprint backlog |
Committed for this sprint |
| Story points |
Relative effort estimate (not hours) |
| Velocity |
Points completed per sprint |
| Burndown chart |
Remaining work vs time |
| Scrum board |
Fixed sprints |
| Kanban board |
Continuous flow with WIP limits |
| Epic link |
Ties stories to an epic |
Issue Links
| Link |
Use |
blocks / is blocked by |
Dependency |
duplicates / is duplicated by |
Same defect |
relates to |
Loose connection |
causes / is caused by |
Root-cause chain |
tests / is tested by |
Test ↔ requirement traceability |
Go Deeper