Comprehensive Guide to Bug Tracking: A Beginner-Friendly Tutorial


Comprehensive Guide to Bug Tracking: A Beginner-Friendly Tutorial
Bug tracking is a critical component of software development that ensures issues are documented, monitored, and resolved efficiently. This guide will walk you through the key statuses, fields, and best practices for bug tracking in a way that’s easy to understand and implement.
Bug Statuses: Definitions and Actions
Open
Meaning: A new bug has been reported and is awaiting initial review.
Action: Assign the bug to a team member or triage group for prioritization and validation.
Triage in Progress
Meaning: The bug is being analyzed to determine its priority, severity, and potential impact.
Action: Review the bug’s details, replicate the issue, and decide on the next steps (fix, defer, or reject).
Need Info
Meaning: The reported bug lacks sufficient details or clarity.
Action: Request additional information from the reporter, such as steps to reproduce, screenshots, or logs.
In Progress
Meaning: A developer has started working on resolving the bug.
Action: Track the progress and update the status once resolved or blocked.
Testing
Meaning: The bug fix has been implemented and is being verified.
Action: Test the fix in the relevant environment and ensure it resolves the issue without introducing new bugs.
Cannot Reproduce
Meaning: The bug could not be replicated based on the provided details.
Action: Reassign the status to the reporter with a request for clearer reproduction steps.
Not a Bug
Meaning: The reported issue is not a defect (e.g., intended behavior).
Action: Close the bug with a clear explanation for the reporter.
Closed
Meaning: The bug has been resolved or deemed invalid.
Action: Archive the bug for future reference.
Key Bug Tracking Fields and Their Usage
Name
Definition: A concise title describing the issue.
Usage: Ensure it is clear and descriptive, e.g., “Login Button Not Responsive on Mobile.”
Source
Definition: The origin of the bug (e.g., tester, customer, monitoring tool).
Usage: Helps in understanding where and how the issue was identified.
Priority
Definition: Indicates the urgency of fixing the bug.
Values: High, Medium, Low.
Usage: Set by the product owner or project manager based on business impact.
Severity
Definition: The technical impact of the bug on the system.
Values:
1: Critical – System crash or data loss.
2: Major – Significant feature impact.
3: Minor – Cosmetic issues or non-blocking bugs.
4: Trivial – Very low impact.
Usage: Defined by developers/testers during triage.
Sprint Points
Definition: Effort estimation for resolving the bug.
Usage:
Consider complexity, effort, and risk.
Assign points during sprint planning using methods like Fibonacci (e.g., 1, 2, 3, 5, 8).
Report Type
Definition: The category of the reported issue.
Values:
Defect: Software bug or error.
UI Refine: Minor UI improvements.
Outage: System downtime.
Feature: New functionality request.
Performance: Slow response or high resource usage.
Usage: Categorize accurately to streamline prioritization.
Environment
Definition: The system setup where the bug was found.
Examples: OS, browser, app version, or server environment.
Usage: Specify details to assist developers in replicating the issue.
Confirmed?
Definition: Indicates whether the bug has been validated.
Values: Yes/No.
Usage: Mark “Yes” once the bug is confirmed by the triage team.
Step-by-Step Example: Tracking and Resolving a Bug
Bug Example:
Name: “Search Function Not Returning Results”
Description: The search bar on the homepage does not return results when valid queries are entered.
Environment: Chrome (v96), Windows 10
Report Type: Defect
Priority: High
Severity: 2 (Major)
Sprint Points: 3
Step 1: Open the Bug
The bug is reported in the tracking system with all required details, including steps to reproduce:
Open the homepage.
Enter a query in the search bar (e.g., “Product A”).
Observe that no results are returned.
Step 2: Triage in Progress
The triage team reviews the bug:
Confirms it is reproducible.
Determines it impacts key functionality and assigns a priority of “High”.
Estimates sprint points as “3” based on complexity.
Assigns the bug to a developer.
Step 3: In Progress
The assigned developer investigates:
Identifies a missing API endpoint call in the search functionality.
Implements the fix and updates the status to “In Progress”.
Step 4: Testing
The QA team tests the fix:
Verifies that valid queries now return correct results.
Tests edge cases (e.g., empty queries, invalid inputs).
Confirms the bug is resolved without introducing new issues.
Step 5: Close the Bug
Once the fix passes testing, the status is updated to “Closed”, and a comment is added summarizing the resolution:
- “Fixed the missing API call for search functionality. Verified by QA.”
How Professionals Write Steps to Reproduce
Professionals focus on clarity, completeness, and consistency when documenting Steps to Reproduce in bug reports. Here's how they approach it:
Be Precise: Each step should be clear and unambiguous. Anyone following the steps should be able to replicate the issue without guessing.
Use Numbered Steps: A logical, sequential list makes it easier to follow.
Start from Scratch: Assume the person reproducing the bug has no prior context. Include navigation steps, preconditions, or setup instructions.
Expected vs. Actual Result: Describe what should happen (expected) versus what happens (actual).
Provide Context: Mention any relevant configurations (e.g., browser, operating system, app version).
Example:
Steps to Reproduce for "Search Function Not Returning Results"
Open Chrome (v96) on Windows 10.
Navigate to the homepage of the application at
https://example.com
.Locate the search bar in the top-right corner of the page.
Enter a valid query, such as "Product A".
Press Enter or click the search icon.
Expected Result: A list of products matching "Product A" should appear.
Actual Result: The search bar displays "No results found," even though "Product A" exists in the database.
Best Practices for Writing Repro Steps
Provide Supporting Evidence: Attach screenshots, logs, or videos to supplement written steps.
Specify Environment Details: Include browser version, OS, or any other dependencies.
Avoid Assumptions: Don’t skip steps like logging in, setting preferences, or navigating to specific sections.
Use Consistent Terminology: Refer to UI elements (e.g., "search bar," "submit button") consistently across all documentation.
Keep It Short but Comprehensive: Include all necessary details without overloading irrelevant information.
These best practices ensure reproducibility and save time for developers and testers, streamlining the bug-fixing process. Let me know if you'd like me to incorporate these into the blog directly!
When to Use the "Feature" Report Type
The "Feature" report type is used when a report or request involves enhancing or adding new functionality to the system. It helps track smaller improvements or quick additions that do not require a full user story or backlog item.
When to Use the "Feature" Report Type:
Minor Enhancements: For incremental improvements to existing functionality.
- Example: Adding a "copy to clipboard" button for a text field.
Client Feedback: When a client requests small enhancements or additional options.
- Example: A client asks for a "dark mode" toggle in the user interface.
Developer-Identified Improvements: When developers notice improvements that can enhance usability or performance.
- Example: Optimizing loading times for a dashboard page.
Quick-Action Features: When the requested change is simple enough to track alongside bugs without creating a new user story.
- Example: Adding a tooltip to a complex form field.
How to Handle "Feature" Reports:
Document Clearly: Provide a clear description of the requested feature, its business value, and expected outcomes.
Categorize Properly: Label it as a "Feature" to differentiate it from defects or performance issues.
Review in Triage: During triage, decide whether the feature is urgent enough to include in the sprint or should be deferred to the backlog.
Communicate Priority: Collaborate with stakeholders to assign appropriate priority and schedule it within the development workflow.
By using the "Feature" report type effectively, teams can efficiently track and implement small but impactful changes without disrupting the overall project flow.
Best Practices for Bug Tracking
Be Descriptive: Provide detailed reproduction steps, expected vs. actual results, and screenshots/logs.
Prioritize Wisely: Balance between technical severity and business impact when assigning priority.
Use Clear Communication: Avoid ambiguity in comments or status updates.
Collaborate During Triage: Involve developers, testers, and product owners to ensure accurate assessments.
Regular Updates: Keep the bug status and fields up-to-date to avoid confusion.
Automate Where Possible: Use tools like Jira, Bugzilla, or Trello for workflow automation and reporting.
Conclusion
Effective bug tracking is a cornerstone of successful software development. By understanding and using statuses and fields properly, teams can improve collaboration, prioritize effectively, and deliver high-quality products. Following these best practices will ensure your bug tracking process runs smoothly and efficiently.
Subscribe to my newsletter
Read articles from Junaid Bin Jaman directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Junaid Bin Jaman
Junaid Bin Jaman
Hello! I'm a software developer with over 6 years of experience, specializing in React and WordPress plugin development. My passion lies in crafting seamless, user-friendly web applications that not only meet but exceed client expectations. I thrive on solving complex problems and am always eager to embrace new challenges. Whether it's building robust WordPress plugins or dynamic React applications, I bring a blend of creativity and technical expertise to every project.