Working with Jira
Learn how testers use Jira every day — projects, issue types, boards, sprints and workflows, the fields that matter, linking bugs to stories, comments and mentions, and finding anything with JQL filters and dashboards — with a hands-on mock board and a working JQL builder.
It’s your first week as a tester at a food delivery company. Your lead sends you a link and a message: “Here’s our Jira board. SHOP-142 is in testing, that one’s yours. Log any bugs against it, and set up a filter so you can see your open tickets. Ping me if you get lost.”
You open the link and see columns, colorful icons, dozens of tickets and a search box that wants something called “JQL”. Don’t panic. Jira looks busy, but testers use a small, predictable part of it every day. This lesson covers exactly that part.
Jira in one picture
Jira is a tool for tracking work. Every piece of work, from “build the tipping feature” to “the total is wrong on Android”, is an issue (a ticket) with a unique key like SHOP-142: the project key plus a number.
| Concept | What it is | Example |
|---|---|---|
| Project | A container for one product or team’s work | SHOP (customer app), COUR (courier app) |
| Issue | One piece of work with a key, fields and history | SHOP-142 |
| Board | A visual view of issues as cards in columns | SHOP board |
| Sprint | A fixed time box (often 2 weeks) of planned work | Sprint 14 |
| Workflow | The statuses an issue moves through | To Do → In Progress → … → Done |
The essentials
Issue types
- Epic: a big piece of work split into smaller items. Courier tipping.
- Story: a feature from the user’s point of view, usually a user storyUser storyA short description of a feature from the user's point of view.Open in glossary → with acceptance criteriaAcceptance criteriaConditions a user story must meet to be considered done and accepted.Open in glossary →. Add a tip for the courier at checkout.
- Task: technical work that isn’t a user feature. Update the regression suite.
- Bug: something that doesn’t work as expected. Order total ignores custom tip on Android.
- Sub-task: a small step inside any of the above. Tip selector UI.
Boards, sprints and workflows
A Scrum board shows the current sprintSprintA short, fixed period (often two weeks) in which a team builds and tests a set of work.Open in glossary →; a Kanban board shows a continuous flow of work without sprints. Each column is one or more statuses, and the statuses come from the team’s workflow, which is different in every team. Common ones: To Do, In Progress, In Review, In Testing (or QA), Done.
Fields testers use most
Summary (the title), Description (steps, expected, actual), Environment, Component, Labels, Affects version (where you found it), Fix version (where it will be fixed, usually set by the lead), Priority, Attachments, and Links like blocks, relates to and duplicates. For what goes inside a great bug ticket, see How to Write a Bug Report.
Daily habits
- Link every bug to the story it was found in, so nobody closes the story with an open bug.
- @mention people only when you need them; watch issues you care about to get updates.
- Keep comments factual and short: what you did, on which build, what happened.
JQL: Jira’s search language
project = SHOP AND type = Bug AND status != Done ORDER BY priority DESCRead it like a sentence: “In project SHOP, bugs that aren’t Done, most important first.” Save it as a filter, and put filters on a dashboard. Other handy pieces: assignee = currentUser(), created >= -7d, fixVersion = "3.8.0", labels = regression.
Switch to Detailed for each concept in depth: workflows and who moves what, every tester field explained, links, comment etiquette, JQL step by step, dashboards and test management add-ons.
Issue types
Jira organizes work in a small hierarchy. Your team may add custom types, but these five are nearly universal:
| Type | What it means | QuickBite example |
|---|---|---|
| Epic | A large goal, split into stories and tasks, often spanning several sprints | SHOP-120 Courier tipping |
| Story | A user-facing feature, usually written as a user storyUser storyA short description of a feature from the user's point of view.Open in glossary → | SHOP-142 Add a tip for the courier at checkout |
| Task | Work that isn’t a user feature: setup, tech work, test prep | SHOP-158 Update the regression suite for tipping |
| Bug | Behavior that doesn’t match what’s expected | SHOP-150 Order total ignores custom tip on Android |
| Sub-task | A smaller step inside a story, task or bug | SHOP-143 Tip selector UI |
Boards and sprints
A board shows issues as cards in columns, one column per status (or group of statuses). Teams usually use one of two kinds:
- Scrum board: work is planned into a sprintSprintA short, fixed period (often two weeks) in which a team builds and tests a set of work.Open in glossary →, a time box of usually one to four weeks. The board shows only the current sprint; everything else waits in the backlog. At the end of the sprint the team reviews what got done. See ScrumScrumA popular agile framework where a team works in short sprints with fixed roles and meetings.Open in glossary → for the bigger picture.
- Kanban board: no sprints. Work flows continuously from left to right, and teams often limit how many cards can sit in a column at once (a “WIP limit”) to avoid bottlenecks. Common for support and maintenance teams.
As a tester, the board is your daily to-do list: the cards in In Testing (or QA, Ready for test, whatever your team calls it) are waiting for you.
Workflows and statuses
A workflow is the set of statuses an issue can be in and the allowed moves between them. Every team’s workflow is different, so learn yours in your first week. A typical one:
- To Do: planned, nobody working on it yet.
- In Progress: a developer is building or fixing it.
- In Review: the code is written and another developer is reviewing it.
- In Testing: the change is on a test environmentEnvironmentA setup of servers, data and configuration where the software runs, such as dev, staging or production.Open in glossary → such as stagingStagingA pre-release environment that mirrors production as closely as possible.Open in glossary →, and a tester is checking it.
- Done: finished. For a bug, the resolutionResolutionThe field that records why work on a bug ended, such as Fixed, Duplicate, Won't fix or Cannot reproduce.Open in glossary → field says how it ended, for example Done or Fixed, Duplicate, Won’t Do, Cannot Reproduce (each team can change the list).
Bugs often have their own workflow with extra statuses like Reopened. If a fixed bug fails your retest, you move it back (reopen it) with a comment explaining what still happens. How often that happens is tracked as the reopen rateReopen rateThe share of fixed bugs that fail retesting or come back later.Open in glossary →. For the full journey of a bug, see the Bug Life Cycle lesson.
The fields testers use
| Field | What to put in it | Tip |
|---|---|---|
| Summary | Where + what + when | “Checkout: order total ignores custom tip on Android” |
| Description | Preconditions, steps, expected, actual, notes | Use numbered lists; paste errors as code |
| Environment | Device, OS, app version + buildBuildA specific compiled version of the app or website that is ready to be installed or tested.Open in glossary →, server | “Pixel 8, Android 15, 3.8.0 (409), Staging” |
| Component | The part of the product | Routes the bug to the right team |
| Labels | Free tags for filtering | android, regression, checkout |
| Affects version | The version where you found it | 3.8.0 |
| Fix version | The release that will contain the fix | Usually set in triageTriageReviewing new bugs to decide if they're valid, how severe and urgent they are, and who fixes them.Open in glossary →, not by you |
| Priority | How soon it should be fixed | Your proposal; the team may change it |
| Attachments | Screenshots, videos, logs | Name them clearly: tip-total-wrong.mp4 |
Links between issues
Links connect tickets so the whole team sees how work relates. The three you’ll use most:
- blocks / is blocked by: SHOP-150 blocks SHOP-142 means the story can’t be finished until the bug is fixed.
- relates to: connected, but not blocking. A similar bug on iOS, a related story.
- duplicates / is duplicated by: the same problem was already reported. Close the newer one as a duplicateDuplicate bugA bug report that describes a bug someone already reported.Open in glossary → and link it to the original.
Bugs found while testing a story are linked to that story (or created as a sub-task of it, if that’s your team’s habit). That’s what stops a story from being closed with known bugs, and it’s what lets a lead see at a glance which features are healthy.
Creating a good bug ticket
Everything from How to Write a Bug Report applies. The Jira-specific checklist:
- Search first. Someone may have reported it already. A quick filter like
project = SHOP AND type = Bug AND text ~ "tip" AND statusCategory != Donesaves a duplicate. - Choose the right project and the Bug type.
- Write the summary: where, what, when. No “broken”, no ”!!!”.
- Fill the description using your team’s template: Preconditions, Steps, Expected, Actual, Notes.
- Set the fields your team uses: environment, component, labels, affects version, a proposed priority.
- Attach evidence and link the bug to the story or related issues.
- Create it, then watch it. Answer questions quickly; you’re the expert on this bug.
Ready to work on
Summary: Checkout: order total ignores custom tip on Android Environment: Pixel 8, Android 15, QuickBite 3.8.0 (409), Staging Links: blocks SHOP-142 · Labels: android, checkout Attachment: tip-total-wrong.mp4
Needs three rounds of questions
Summary: Tip broken!! Environment: my phone Description: Tip does not work. Please fix. Links: none
Comments, mentions and watching
The comment thread is where the real conversation about an issue happens. A few habits make you easy to work with:
- @mention a person when you need them to act or answer: “@Luka can you check if this also affects the web checkout?” Don’t mention the whole team for information.
- Watch issues you care about (your bugs, stories you test). You’ll get notified about changes and comments, without anyone mentioning you.
- Be factual and specific. “Retested on build 412, Pixel 8: fixed. Also checked preset tips and no tip.” beats “works now”.
- Keep decisions in the ticket, not only in chat. If a product owner says “won’t fix, by design” in a call, add a comment so the next person knows why.
- One topic per comment, newest information first if you edit. Use the description for the reproducible facts and comments for the conversation.
- No blame, no sarcasm. The ticket is permanent and widely read.
Finding things: filters and JQL
The search box in Jira understands two modes: a simple one with dropdowns, and JQL (Jira Query Language) for precise queries. JQL looks like code, but it’s really just sentences made of field, operator, value, joined with AND / OR, plus an optional ORDER BY.
project = SHOP AND type = Bug AND status != Done ORDER BY priority DESC
| Piece | Meaning |
|---|---|
project = SHOP | Only issues in the SHOP project |
type = Bug | Only bugs (type is short for issuetype) |
status != Done | Everything not in the Done status |
ORDER BY priority DESC | Highest priority first |
A few more you’ll use constantly:
| Query | Finds |
|---|---|
assignee = currentUser() AND statusCategory != Done | My open work |
project = SHOP AND type = Bug AND created >= -7d | Bugs from the last 7 days |
fixVersion = "3.8.0" AND status != Done | What’s left for the release |
labels = regression AND type = Bug | Bugs tagged as regressions |
assignee is EMPTY AND type = Bug | Bugs nobody picked up |
reporter = currentUser() ORDER BY updated DESC | Issues I reported, latest activity first |
Saved filters and dashboards
When a query is useful, save it as a filter with a clear name (“SHOP open bugs by priority”). Saved filters can be shared with the team, used as the source of a board, and subscribed to, so Jira emails you the results on a schedule.
A dashboard is a page of small panels (gadgets), each fed by a filter: a list of your open bugs, a pie chart of bugs by component, a “created vs resolved” chart for the release. A simple tester dashboard might show:
- My open work (
assignee = currentUser() AND statusCategory != Done) - Bugs waiting for retest (
status = "In Testing" AND type = Bug) - New bugs this week, by priority
- Open bugs for the next release (
fixVersion = "3.8.0" AND type = Bug AND statusCategory != Done)
Test management add-ons
Jira on its own tracks stories, tasks and bugs, but not test cases or test runs. Teams add that with apps from Atlassian’s marketplace, such as Xray or Zephyr, or connect an external tool like TestRail. With these, test cases can be linked to stories (for test coverageTest coverageHow much of the product, requirements or risks your tests actually check.Open in glossary → and a traceability matrixTraceability matrixA table linking each requirement to the test cases that cover it.Open in glossary →), test runs record results per build, and a failed test can create a linked bug in one click. You’ll learn the specific tool on the job; the ideas are covered in Regression and Smoke Suites.
Common mistakes
Practice: run a story through the sprint
This is a simplified mock of a Jira-like board, not the real product. Story SHOP-142 is in In Testing and assigned to you. Read what you found, create the bug (the form gives hints as you go), then move both tickets through the workflow. You’ll play the developer too. Use the status dropdown on each card to move it, and watch the activity log.
Your sprint goals
- 1. Report the bug and link it to the story
- 2. Get the bug through the fix (play the developer)
- 3. Retest the bug and close it
- 4. Close the story
What you found while testing SHOP-142
Pixel 8, Android 15, QuickBite 3.8.0 build 409 on staging. Cart subtotal €18.40 + delivery €2.50. Checkout, then Tip your courier → Custom → 2.50 → Done. The tip row says €2.50 but the total stays €20.90 (should be €23.40). Preset tips work. Happens every time. You recorded a short video.
To Do 0
No issues
In Progress 0
No issues
In Review 0
No issues
In Testing 1
Add a tip for the courier at checkout
StorySHOP-142Priority HighAssignee Mia Novak
Done 0
No issues
Activity
- Luka Petrov: Moved SHOP-142 to In Testing. Ready on staging, build 409. @Mia Novak over to you!
Practice: build JQL queries
Compose a query from the dropdowns and watch the JQL and the results update. The filter really runs on the mock issues below. Try to solve all five challenges.
Challenge 1 of 5: Open bugs
All SHOP bugs that are not Done yet.
Hint: Three conditions: project, issue type and status.
Not yet: 0 missing, 8 extra.
JQL
project = SHOP ORDER BY priority DESC15 issues found
| Key | Summary | Status | Priority and assignee |
|---|---|---|---|
| BugSHOP-150 | Checkout: order total ignores custom tip on Android· checkout, android | To Do | Priority HighestAssignee Luka Petrov |
| StorySHOP-142 | Add a tip for the courier at checkout· checkout | In Testing | Priority HighAssignee Mia Novak |
| BugSHOP-153 | Checkout: Pay button text cut off in German· checkout, l10n | In Review | Priority HighAssignee Sara Kim |
| BugSHOP-156 | Promo: expired code still accepted on web· checkout, web, regression | To Do | Priority HighAssignee Mia Novak |
| BugSHOP-159 | Cart: badge shows 0 after app restart· cart, regression | Done | Priority HighAssignee Mia Novak |
| EpicSHOP-120 | Courier tipping· checkout | In Progress | Priority MediumUnassigned |
| Sub-taskSHOP-143 | Tip selector UI· checkout | Done | Priority MediumAssignee Sara Kim |
| TaskSHOP-144 | Send tip amount to the order API· checkout, backend | Done | Priority MediumAssignee Luka Petrov |
| BugSHOP-151 | Search: results flicker while typing fast· search | In Progress | Priority MediumAssignee Sara Kim |
| BugSHOP-154 | Push: "Courier picked up" arrives twice on iOS· tracking, ios | In Testing | Priority MediumAssignee Mia Novak |
| BugSHOP-155 | Profile: avatar upload fails above 5 MB· profile | Done | Priority MediumAssignee Luka Petrov |
| StorySHOP-157 | Save favorite restaurants· search | To Do | Priority MediumUnassigned |
| TaskSHOP-158 | Update the regression suite for tipping· regression | In Progress | Priority MediumAssignee Mia Novak |
| BugSHOP-152 | Tracking: map pin one street off on first load· tracking | To Do | Priority LowUnassigned |
| BugSHOP-160 | Settings: dark mode toggle label misaligned· ui | To Do | Priority LowestUnassigned |
You are signed in as Mia Novak (MN). "Today" in this mock is fixed, so relative dates always give the same answer. The mock's text search is a simple "contains"; real JQL text search matches whole words.
Your first-week Jira checklist
Your first-week Jira checklist
0 of 10 checked
Check your understanding
Quick quiz
0/6 answered · 0 correct
1.You find that the order total is wrong when a custom tip is entered. Which issue type should you use?
2.Your bug means the story can't be released until it's fixed. Which link fits best?
3.What does this JQL return? project = SHOP AND type = Bug AND status != Done ORDER BY priority DESC
4.Which query shows your own open work and keeps working when a teammate uses the same filter?
5.A developer moved your bug to In Testing. What should you do before moving it to Done?
6.Why does this lesson avoid exact click paths for Jira?
Key takeaways
- Jira tracks work as issues (Epic, Story, Task, Bug, Sub-task) inside projects, shown on Scrum or Kanban boards.
- Workflows and fields differ per team: learn yours, and treat any tutorial’s screens as examples.
- A good bug ticket uses the Bug type, a specific summary, steps/expected/actual, environment, evidence, and a link to its story.
- Link, watch and comment factually; @mention only when you need someone.
- JQL is field-operator-value sentences:
project = SHOP AND type = Bug AND status != Done ORDER BY priority DESC. Save useful queries as filters and put them on a dashboard. - Never move a bug to Done without retesting it on a build with the fix.
Finished this page?Nice work, this page is complete!
Mark it as done to track your progress. It's saved in this browser, no account needed.
Its review cards are now in Bites ⚡