In our recent article, we talked about bug tracking and software that helps to automate this process. There’s also another notion called defect management. In this article, we’ll discuss the difference between the two activities and look closely into the defect management process and the tools used for it.
Contents
Bug tracking vs defect management
A bug is a problem resulting from an error in the code which impacts software performance or functionality. Some examples of such faults include functional, compilation, logical, and runtime errors, missing commands, or inappropriate error handling. Bugs are discovered in unit testing by software testers.
A defect is a discrepancy between the actual and the expected result of software. In other words, it is any deviation from the specifications. Defects are solved by developers on the development stage.
What is defect management?
Defect management is a complex process that results in releasing high-quality software. Defect management process in software testing includes several stages:
- Discovery
- Categorization
- Resolution
- Verification
- Closure
- Reporting
Discovery
The aim is to detect as many defects as possible before the customer does it. Once the testing team finds a defect, they make the development team aware of the fault. The development team takes the responsibility to fix it and gives the defect the status “accepted”.
Categorization
- Software developers categorize defects to assign priority to them. There are four priority levels: critical, high, medium, and low.
- Critical defects need to be fixed immediately because they stop the product from functioning properly. For example, users can’t log into a website.
- High priority defects hinder the main functions. For example, slow page loading, or an app or website can’t remember the user login session.
- Medium defects cause slight deviations from initial requirements. For example, the mobile version of a website is not displayed correctly.
- Low priority defects don’t affect the product much. For example, a couple of links don’t work properly.
Resolution
According to the priority, the development team fixes the defect in four steps: assignment, scheduling, fixing, and reporting.
- A certain defect is assigned to a developer or technician.
- The developer schedules the time to fix the defect based on the priority.
- The developer fixes the defect while the test manager tracks the process.
- The test manager gets a report of the resolution when the defect is fixed.
Verification
When the testing team gets the report, the results should be verified. Testers do regression testing to check if the defect is actually fixed.
Closure
When the defect is resolved and verified, testers change its status to “closed”. If it hasn’t been fixed properly, the defect goes back to the developer to work on it again.
Reporting
The defect management process should be transparent to the management board. So, the testing team continuously reports to them about the whole defect situation.
Defect management tools
The right defect management tool stimulates proper test coverage and promotes defect prevention in the future. There are certain features to pay special attention while choosing a defect management tool, such as ticket statuses, email notifications, usability, reporting capabilities, dashboard visualizations, and accessibility. According to Google Trends, the top five most popular tools are Jira, Trello, Asana, Mantis, and Manuscript.
- Jira is the leader and is used to track all the software issues. It has a plug-in system that allows customizing and extending JIRA to suit the project’s needs. It also has advanced search capabilities, filtering, and extended reporting to track the progress with detailed charts.
- Trello, with its sticky notes on boards, is a perfect tool for agile defect management. It is very simple and flexible, allowing you to manage defects both via PC and a mobile device.
- Asana is also used as an alternative to Trello and Jira. The tool allows you to create custom fields and has a simple search. Yet, there is no prioritization and backlog, which makes it harder to schedule the defect management process.
- Mantis is an open-source defect management tool allowing you to customize issue fields and notifications, and give role-based access to issues. If any questions occur, there’s an active community of developers online sharing their ideas.
- Manuscript lets you subscribe to tasks and stay current with their statuses. It also has role-based permissions, custom workflows, and bulk issue editing.
On a final note
You shouldn’t forget about another benefit any defect management tool brings to the whole software development process: it improves quality assurance. All you need to do is to trace the origin of the defect and make changes in the validation process and base-lining document. This way, you either eliminate the defect or will find it earlier, which saves time and money on the testing process.