Jira for SDET

59Jira for SDET

What you will master here

  • Jira hierarchy: Epic → Story → Task → Bug → Subtask
  • Workflow states + transitions
  • Writing a great bug report (template + example)
  • JQL — the query language every SDET should know
  • Sprints, boards (Scrum vs Kanban), velocity
  • Linking test cases (Zephyr / Xray / Tricentis)
  • Automating Jira from CI (Jira REST API)

59.1 Hierarchy + issue types

TypeWhat
EpicLarge body of work spanning multiple sprints
StoryUser-facing feature delivered in one sprint
TaskEngineering work without a direct user story
BugDefect found by QA / users / monitoring
SubtaskDecomposition of a story/task

59.2 Common workflow states

Open → In Progress → In Review → Ready for QA → In QA → Done. Variations per team. Each transition can have rules (must have PR linked, must have AC met).

59.3 Writing a great bug report

Title:    [Checkout] Quantity stepper accepts negative values

Environment: staging, Chrome 130, build a3f5b2

Steps:
1. Add SKU-42 to cart.
2. Click Decrement (–) twice on the quantity stepper.
3. Click Checkout.

Expected: Quantity cannot go below 1; minimum-quantity warning shown.

Actual:   Quantity becomes -1; checkout proceeds with subtotal -49.99.

Severity: High
Priority: High
Frequency: 100%
Reproducible: Yes (3/3 attempts)

Attachments:
- screenshot: cart-negative.png
- video: checkout-flow.webm
- console errors: console.log
- trace: trace.zip (Playwright)

Related: epic ACME-1234, similar to ACME-5670 (closed wontfix)
Three things that make a great bug report(1) Reproducible steps a stranger can follow. (2) Concrete expected vs actual with numbers/values, not "doesn't work". (3) Attachments (screenshot, video, trace, logs).

59.4 Severity vs Priority (Jira fields)

SeverityPriority
Decided byQA / engineeringPM / business
AboutTechnical impactBusiness urgency
ScaleCritical / High / Medium / LowP0 / P1 / P2 / P3
ExampleLogin crashes for all users = CriticalTypo on launch landing page = P0 even if Low severity

59.5 JQL — Jira Query Language

# My open bugs
assignee = currentUser() AND type = Bug AND status != Done

# High-severity bugs in current sprint
sprint in openSprints() AND priority = High AND type = Bug

# Bugs created in last 7 days
created >= -7d AND type = Bug ORDER BY created DESC

# Stories without test cases linked (custom field)
type = Story AND "Test Cases" is EMPTY

# Flaky tests quarantined
labels = quarantine AND status != Done

# Released in 2026.06
fixVersion = "2026.06"

59.6 Sprints + boards

59.7 Test case management add-ons

ToolNotes
Zephyr (Squad/Scale)Most common Jira-native test mgmt
XrayCompetitor; also Jira-native
Tricentis qTestEnterprise; integrates with Jira
TestRailStandalone; links to Jira via app

Test cases live in the add-on; results execute against a "test run" linked to a story or release. SDETs can push automated test results from CI via the add-on's REST API.

59.8 Automating Jira from CI

# Comment on a Jira issue when a test fails
curl -X POST -u $JIRA_USER:$JIRA_TOKEN \
  -H "Content-Type: application/json" \
  -d '{"body":"Test failed in build #'$BUILD'. See: '$BUILD_URL'"}' \
  "$JIRA_HOST/rest/api/3/issue/$ISSUE/comment"

# Create a Bug automatically
curl -X POST -u $JIRA_USER:$JIRA_TOKEN \
  -H "Content-Type: application/json" \
  -d '{"fields":{"project":{"key":"ACME"},"summary":"Auto: '$TEST' failed","issuetype":{"name":"Bug"},"priority":{"name":"Medium"}}}' \
  "$JIRA_HOST/rest/api/3/issue"

59.9 Linking strategy

Module 58 — Jira Q&A

What's the Jira issue hierarchy?
Epic → Story → Task → Bug → Subtask. Epic groups multiple stories across sprints. Story is one user-facing feature within a sprint. Task is engineering work without direct user value. Bug is a defect. Subtask is decomposition of any of them.
What's in a great bug report?
Clear title with [Area]. Environment. Reproducible steps. Expected vs actual with concrete values. Severity + priority. Attachments (screenshot, video, trace, logs). Links to related issues. A stranger should reproduce it from your text alone.
What's JQL and one common query you use?
Jira Query Language — SQL-like filter syntax. Example: assignee = currentUser() AND type = Bug AND status != Done shows my open bugs. Saved as filters → dashboards.
Severity vs priority?
Severity: technical impact (Critical/High/Medium/Low) — decided by QA/eng. Priority: business urgency (P0/P1/P2/P3) — decided by PM. Same bug can be Low severity, High priority (typo on launch page) or vice versa.
Scrum vs Kanban?
Scrum: time-boxed sprints, fixed scope per sprint, ceremonies (planning, review, retro). Kanban: continuous flow, WIP limits, no sprints, optimise cycle time. Scrum suits feature delivery; Kanban suits support/ops.
What's velocity and is it a good metric?
Average story points completed per sprint. Useful for capacity planning, dangerous as a target (teams inflate points). Don't compare velocity across teams — points are estimated differently.
How do you link automated test failures back to Jira?
Either manually file a bug with the failing test info + trace, or automate via Jira REST API in CI — when a tagged test fails, post a comment to its issue or create a new bug. Avoid noise — only on persistent failures, not first flake.
What's a fix version?
Jira field representing the release the issue is targeted for or fixed in. Used to build release notes and to scope regression testing for a release.
How would you find tests that don't have a Jira story linked?
In Zephyr/Xray, query test cases where the "Linked Issues" field is empty. Reveals coverage gaps. Combine with stories without test cases linked for a two-way audit.