Topic 1 of 100%
📋 Complete Tutorial

JIRA
Software Tutorial

Learn JIRA from scratch — issue types, bug lifecycle, workflows, JQL queries. Simple language, real QA examples.

⏱️ ~2 hrs 🎯 10 Topics 🧪 Quiz each section
01
Introduction
What is JIRA?
JIRA is a project management and issue tracking tool made by Atlassian. It is used by software teams to plan work, track bugs, manage sprints, and monitor project progress. It is one of the most widely used tools in the software industry.

The word "JIRA" comes from the Japanese word Gojira (ゴジラ) meaning Godzilla — which was Atlassian's internal nickname for Bugzilla (a competing bug tracker they used before building their own).

🧠 Real-life analogy: Imagine your team is building a house. JIRA is the project manager's notebook — it tracks every task (lay the foundation, paint walls, fix electrical), who is doing what, which task is done, which is stuck, and what problems (bugs) came up during construction.

What does JIRA do for QA engineers?

  • Log bugs When you find a defect during testing, you create a Bug issue in JIRA with all details — steps to reproduce, expected result, actual result, screenshots.
  • Track bug status See which bugs are Open, In Progress (developer fixing), or Resolved (ready for retest).
  • Understand sprint tasks See which User Stories are assigned for the current sprint and what needs to be tested.
  • Link bugs to stories Connect a bug to the User Story it belongs to, so context is never lost.
  • Communicate with developers Add comments, attach screenshots/logs, tag developers — all within JIRA.
💡
JIRA is free to use for up to 10 users. Visit atlassian.com/software/jira and sign up with a free account to practice.
🧪 Quiz: What company made JIRA?
02
Core Concept
Issue Types in JIRA
In JIRA, everything you track is called an Issue. Issues are categorised into different Issue Types based on what kind of work they represent. The 5 default issue types in JIRA Software are:
🟣 Epic 🟢 Story 🔵 Task 🔴 Bug 🔷 Sub-task
  • E
    Epic — Large feature / big initiative A large body of work that is broken down into multiple Stories and Tasks. Epics span multiple sprints.
    Example: "User Authentication System" — this one Epic will contain multiple Stories like "Login page", "Forgot Password", "OTP verification".
  • S
    Story (User Story) — A user-facing requirement A small, self-contained feature written from the user's perspective. Format: "As a [user], I want to [do something] so that [benefit]."
    Example: "As a user, I want to reset my password so that I can recover my account." — This fits in one sprint.
  • T
    Task — General work item Work that does not directly deliver a new user feature — e.g. writing documentation, setting up an environment, DB configuration, code refactoring.
    Example: "Set up Postman collection for regression testing" or "Update test documentation for login module".
  • B
    Bug — A defect in the software A problem that prevents the software from working as expected. Created by QA when a defect is found during testing.
    Example: "Login button is not clickable on Safari browser" or "OTP not sent when email has a + symbol".
  • ST
    Sub-task — Smaller piece of work inside a Story/Task Breaks a Story or Task into smaller steps. A sub-task cannot have its own child issues.
    Example: Inside Story "Login Page" — Sub-tasks: "Write test cases", "Perform functional testing", "Perform UI testing".
ℹ️
JIRA also allows teams to create Custom Issue Types — e.g. "Test Case", "Change Request", "Improvement" — based on what your project needs.
🧪 Quiz: A QA engineer finds the "OTP not working" defect. What issue type should they create?
03
Structure
Issue Hierarchy in JIRA
JIRA organises work in a parent-child hierarchy. The default hierarchy from top to bottom is: Epic → Story / Task / Bug → Sub-task. Each level represents a different scope of work.
🟣
Epic — Large goal spanning multiple sprints (e.g. "Build User Authentication System")
🟢
Story — User-facing feature (e.g. "As a user, I want to log in")
🔵
Task — Technical work (e.g. "Set up test environment")
🔴
Bug — Defect found (e.g. "Login fails on Safari")
🔷
Sub-task — Smallest unit (e.g. "Write test cases for login")
📁 Real Project Example — E-Commerce App
🟣 Epic: Shopping Cart Feature
   🟢 Story: As a user, I want to add items to cart
      🔷 Sub-task: Write test cases for cart
      🔷 Sub-task: Perform functional testing
   🟢 Story: As a user, I want to remove items from cart
   🔴 Bug: Cart count not updating after item removal
   🔵 Task: Update cart regression test suite
⚠️
Important: A Sub-task cannot have its own child issues. It is the lowest level in the hierarchy. Also, Epics can contain Stories from multiple projects, but a Story's Sub-tasks belong only to that Story's project.
🧪 Quiz: Which is the LARGEST unit of work in JIRA's default hierarchy?
04
Getting Started
JIRA Interface — What's Where

When you open JIRA, here is what each part of the interface does:

Projects
Left navbar — shows all projects you have access to. Each project has its own board, backlog, and settings.
Board
Visual Kanban/Scrum board showing all issues in columns (To Do → In Progress → Done). Drag cards to update status.
Backlog
List of all issues waiting to be worked on. Product Owner prioritises this list. Sprint planning happens here.
Active Sprint
The current sprint's board — shows what the team is working on right now during this iteration.
Create Button
Blue "+ Create" button (top) — use this to log a new bug, story, task, or any issue type.
Issue Detail Page
Click any issue to open its full detail — summary, description, comments, attachments, status, assignee, priority, linked issues.
Filters / Search
Search issues by keyword, assignee, status, project. Advanced search uses JQL (JIRA Query Language).
Reports
Burndown chart, velocity chart, sprint report — used by Scrum Master and QA leads to track progress.
Components
Sub-sections of a project (e.g. "Login Module", "Payment Module"). Used to group related issues.
🧪 Quiz: Where in JIRA do you go to log a new bug?
05
Hands-On
How to Create a Bug in JIRA

Logging a bug properly in JIRA is one of the most critical skills for a QA engineer. A poorly written bug report wastes developer time. Here's how to do it right.

  1. 1
    Click "+ Create" button at the top of JIRA.
  2. 2
    Select Issue Type = Bug from the dropdown.
  3. 3
    Select the correct Project where this bug belongs.
  4. 4
    Fill all mandatory fields — Summary, Description, Priority, Component, Assignee.
  5. 5
    Add attachments — screenshot, screen recording, or log file showing the bug.
  6. 6
    Click "Create" to submit. JIRA auto-generates a unique issue key (e.g. PROJ-142).

What a well-written Bug report looks like:

🔴 BUG — PROJ-142
Summary
Login button not working on Safari browser v17 — user cannot log in
Priority
🔴 Critical
Environment
Safari v17 | macOS Ventura | Staging server
Steps to Reproduce
1. Open app in Safari v17
2. Enter valid email and password
3. Click the "Login" button
Expected Result
User should be redirected to the dashboard after login
Actual Result
Clicking the Login button does nothing. No error message shown. Console shows TypeError: Cannot read property 'submit' of null
Attachments
screenshot_login_safari.png, console_log.txt
Linked To
Story PROJ-101: "As a user, I want to log in"
💡
Summary writing rule: Write what broke + where + on what. Bad: "Login not working". Good: "Login button not clickable on Safari v17 — user cannot sign in". The developer should understand the bug just from the summary line.
⚠️
Never skip: Steps to Reproduce, Expected Result, Actual Result. Without these 3, a developer cannot fix the bug efficiently. These 3 fields are non-negotiable in any professional QA team.
🧪 Quiz: Which 3 fields are MOST critical in a bug report?
06
Core Knowledge
Bug Lifecycle in JIRA
The Bug Lifecycle (also called Defect Lifecycle) is the journey a bug travels from the moment it is found to the moment it is officially closed. In JIRA, each stage is represented by a Status.

Standard JIRA Bug Workflow:

Open
In Progress
Resolved
Closed
Reopened
  • 1
    Open — QA creates the bug. It is in the initial state, ready to be picked up by a developer. The bug is visible in the backlog.
  • 2
    In Progress — A developer is assigned the bug and is actively working on fixing it. When the developer clicks "Start Progress", status changes to In Progress.
  • 3
    Resolved — Developer has completed the fix and marks it Resolved. This means: "I think I've fixed it." Now it goes back to QA for verification (retest).
  • 4
    Closed — QA retests the bug, verifies the fix is correct, and closes the issue. This means: "Yes, it is fixed." Closed is the final state.
  • Reopened — QA retests after Resolved status, but the bug is STILL present or was fixed incorrectly. QA reopens the bug. It goes back to the developer.
🔍 Real Example — Bug Journey
Day 1: QA Priya finds "Login button broken on Safari" → creates bug → Status: Open
Day 2: Developer Ravi picks it up → Status: In Progress
Day 3: Ravi fixes the JavaScript error → Status: Resolved
Day 4: Priya retests on Safari → bug is fixed ✅ → Status: Closed

Alternate Day 4: Priya retests → bug still exists on Safari v16 ❌ → Status: Reopened → Ravi fixes again
ℹ️
Resolved vs Closed — Key difference:
Resolved = Developer says "I fixed it" (dev's claim)
Closed = QA verified and confirmed it is fixed (QA's confirmation)
Only QA should close bugs — not developers.
⚠️
A bug can also be closed with resolutions like "Won't Fix" (business decision), "Duplicate" (same bug already reported), or "Cannot Reproduce" (bug not found in current environment). These are valid closure reasons too.
🧪 Quiz: A developer fixes a bug and changes its status to "Resolved". What should QA do next?
07
Critical Knowledge
Priority Levels in JIRA
In JIRA Software, every issue has a Priority field. Priority indicates how urgently an issue needs to be fixed relative to other issues. The 5 default JIRA priority levels from highest to lowest are: Blocker → Critical → Major → Minor → Trivial.
🔴 Blocker 🟠 Critical 🟡 Major ⚫ Minor ⚪ Trivial
  • P1
    Blocker — Highest priority This issue blocks all further progress. The entire system or a critical feature is unusable. Must be fixed immediately — hotfix may be required.
    Example: Payment gateway is completely down. Users cannot complete any purchase. App crashes on launch.
  • P2
    Critical — Urgent attention needed A serious bug that significantly impacts functionality but a workaround may exist. Fix required in current sprint.
    Example: Login fails on Chrome but works on Firefox. Users on Chrome cannot access the app.
  • P3
    Major — Significant impact Bug affects important functionality but doesn't stop the system from working. Should be fixed soon but not necessarily today.
    Example: Search results show incorrect order. Product images don't load on product detail page.
  • P4
    Minor — Small impact, easy workaround Issue has minor impact on the user experience. User can still complete their goal. Can be scheduled for a future sprint.
    Example: Tooltip text is missing on the help icon. Date format shows MM/DD/YYYY instead of DD/MM/YYYY.
  • P5
    Trivial — Lowest priority, cosmetic issue Extremely minor issue with no impact on functionality. Often just visual/styling issues. Can be done anytime time permits.
    Example: A comma is missing in the footer text. Button has 2px extra padding compared to design.
💡
Important interview question — Severity vs Priority:
Severity = How much does the bug impact the system technically? (Set by QA/tester)
Priority = How urgently must the bug be fixed? (Set from a business perspective)

They can differ: A cosmetic bug on the company CEO's demo page could be Low Severity but High Priority. A crash in a rarely-used feature could be High Severity but Low Priority.
🧪 Quiz: The payment page is completely down and no user can checkout. What is the correct JIRA priority?
08
Agile in JIRA
Scrum Board & Sprint in JIRA
A Scrum Board in JIRA is a visual board that shows all work items in the current Sprint, organised in columns by status. It helps the team see the progress of work at a glance during a sprint (usually 2 weeks).
🧠 Analogy: Think of the Scrum Board as a physical whiteboard with sticky notes. Each sticky note is a JIRA issue. The columns are "To Do", "In Progress", and "Done". Team members move their sticky notes across as work progresses. JIRA does this digitally.

Key JIRA Scrum terms QA must know:

Sprint
A fixed time period (usually 2 weeks) during which the team completes a set of planned issues. A new sprint starts after the previous one ends.
Backlog
The full list of all issues (stories, bugs, tasks) waiting to be worked on. Issues are prioritised by the Product Owner. Sprints are planned from the backlog.
Sprint Planning
A meeting before sprint start. Team picks issues from the backlog and commits to completing them in the sprint. QA reviews which stories need test cases.
Daily Standup
A 15-minute daily meeting. Each team member says: What I did yesterday? What I'll do today? Any blockers? JIRA board is often shared on screen during this meeting.
Story Points
A relative measure of effort/complexity for an issue (not hours). Team estimates using Fibonacci sequence: 1, 2, 3, 5, 8, 13. QA doesn't typically set these — developers do.
Sprint Review
At end of sprint, team demonstrates completed work to stakeholders. Stories marked as "Done" should have been tested and verified by QA before this meeting.
Velocity
Total story points completed per sprint. Helps team predict how much work they can handle in future sprints. Available in JIRA Reports section.
Burndown Chart
A JIRA report showing remaining work (story points) vs time in the sprint. Ideally, the line goes down to zero by sprint end. Available in Reports.
🎯 QA's Role in Each Sprint Stage
Sprint Planning: Review stories, ask questions, identify test scenarios
During Sprint: Write test cases → Execute tests → Log bugs in JIRA → Retest fixed bugs
Sprint Review: Demonstrate tested features to stakeholders
Sprint Retro: Discuss what testing went well and what to improve
🧪 Quiz: A Sprint in Scrum is typically how long?
09
Power Feature
Filters & JQL (JIRA Query Language)
JQL (JIRA Query Language) is JIRA's built-in search language. It lets you search and filter issues using simple queries — find all open bugs, bugs assigned to you, bugs in the current sprint, and much more.
🧠 Analogy: JQL is like a Google search — but specifically for JIRA issues. Instead of typing into a search bar randomly, you write structured queries like "show me all open bugs with Critical priority assigned to me" — and JIRA instantly shows exactly those issues.

Where to use JQL: Go to Issues → Advanced Search in JIRA. Switch from "Basic" to "Advanced" mode to type JQL queries.

Essential JQL queries every QA must know:

All open bugs
issuetype = Bug AND status = Open
Bugs assigned to me
issuetype = Bug AND assignee = currentUser()
Bugs ready to retest
issuetype = Bug AND status = Resolved
Critical bugs in project
project = MYAPP AND issuetype = Bug AND priority = Critical
Issues in current sprint
project = MYAPP AND sprint in openSprints()
Bugs created this week
issuetype = Bug AND created >= -7d
Reopened bugs
issuetype = Bug AND status = Reopened
Bugs reported by me
issuetype = Bug AND reporter = currentUser()
💡
Save your JQL filter! After writing a JQL query, click "Save as" to save it as a named filter. You can then access it from your dashboard anytime — very useful for daily "Bugs to retest" checks.
ℹ️
In interviews, when asked "How do you track your bugs in JIRA?" say: "I use JQL filters — for example issuetype = Bug AND status = Resolved shows me all bugs ready to retest. I save frequently used filters to my dashboard for quick access."
🧪 Quiz: Which JQL query shows all bugs that are fixed and ready for you to retest?
10
Pro Tips
JIRA Best Practices for QA Engineers

These are habits that separate a professional QA engineer from a beginner when using JIRA.

  1. 1
    Write clear, actionable bug summaries The summary should tell the developer what broke, where, and under what condition. Formula: [What broke] + [Where] + [Impact]. Bad: "Button not working." Good: "Add to Cart button throws 500 error on product page when user is not logged in."
  2. 2
    Always include environment details Browser name and version, OS, device type, app version, server environment (Dev / Staging / Production). Same bug may not reproduce on a different environment.
  3. 3
    Attach screenshots or screen recordings A screenshot is worth a thousand words. Always annotate screenshots (circle or arrow pointing to the issue). JIRA supports Loom links, screenshots, videos, and log files.
  4. 4
    Link bugs to the related Story Use JIRA's "Link" feature to connect a bug to its parent Story. This maintains traceability and helps during sprint reviews.
  5. 5
    Set the correct priority — don't mark everything Critical If everything is Critical, nothing is Critical. Use the priority scale thoughtfully. When unsure, discuss with your QA lead or dev team.
  6. 6
    Use @mentions in comments to communicate In the JIRA comment section, use @DeveloperName to notify them directly. Don't rely on WhatsApp or email to communicate bug details — keep all communication in JIRA so there's a record.
  7. 7
    Check for duplicate bugs before creating new ones Search JIRA first (using JQL or basic search) to see if the bug was already reported. Duplicate bugs waste everyone's time and clutter the backlog.
  8. 8
    Update bug status promptly When you start retesting — update status. When you verify a fix — close the bug same day. Keep JIRA updated in real time so the board accurately reflects current state.
  9. 9
    Add labels and components Use JIRA Labels (e.g. "regression", "UI", "api-issue") and Components (e.g. "Login Module", "Checkout") to categorise bugs. This makes filtering and reporting much easier later.
  10. 10
    Use the Watch feature for important bugs Click "Watch" on high-priority bugs. You'll get email/notification whenever someone comments or changes the status. Great for Blocker bugs that need close monitoring.
🎯
Interview ready answer: "In my project I use JIRA to log bugs with proper steps to reproduce, expected and actual result, and screenshot. I use JQL filters like issuetype = Bug AND status = Resolved to identify bugs ready for retesting. I link bugs to their parent stories for traceability and update status in real time."
🧪 Final Quiz: Before creating a new bug, what should a QA engineer do first?

Ready to Use JIRA in Real Projects?

STAD Solution's QA training includes hands-on JIRA practice with real defect management, sprint workflows, and interview preparation.

Explore Courses at STAD Solution →