Defect‘s Priority and Severity Levels
- August 31, 2016
A software defect is an error, flaw or failure in a computer program/ system that causes it to produce incorrect results and behave in unexpected ways. Most of the defects occur because of the mistakes in program design, source code or by the operating systems on which the program is running. Although the QA experts are putting a lot of effort into preventing defects occurring in the software programs, however, the defects in the software products still appear in them. For a software system or program to perform its functionality accurately, it needs to be 100% bug-free.
HOW TO FIND AND REMOVE DEFECTS?
An organized and directed defect management effort is required to identify and remove the defects in a program. Generally, bug management comprises of the following two methodologies:
Testing is the process of finding defects in a piece of code or a system. The system is tested against given and unexpected requirements while the resulting behaviors of the system are noted. Testing can be of two types, Manual and Automated.
Debugging is the process of finding and removing a specific bug/defect from a program. Debugging is the manual process of identifying and removing defects.
Defects are given a priority and severity level to help the development team understand the defect level and extent. Defect classification is essential and is absolutely needed as the development team cannot resolve all the defects simultaneously. This defect classification allows the development team to decide which defects need to be fixed on an immediate basis and to what extent the functionality of the program is affected by the defects.
The fact that how quickly a defect needs to be fixed is determined by defect priority. If there is a major bug in the program, its priority would be “High” and so on. Priorities are described by words, such as “critical,” “high,” “low,” or “deferred”. Following is the description of these priorities:
- High: Fix the defect immediately. The system is unable to perform its core functionality or test execution is blocked by the defect.
- Medium: Fix the defect soon. The system fails to perform functionality and the test execution is not blocked.
- Low: Fix “High” and “Medium” priority bugs before fixing this one but don’t neglect this bug as it needs to be fixed too.
- Deferred: The bug prioritized as deferred means that the bug is most likely to be fixed in the upcoming releases. The reasons behind this may be that the priority of the bug is low and there is a lack of time for the release and/or the bug does not make a major effect on the functionality of the software.
Defect severity indicates the extent to which the defect affects the program. In other words, it describes the impact of the defect on the system. If an important functionality is blocked or if that functionality functions incorrectly, the highest defect severity is chosen. Defect severity is an important feature in the bug management tools as it enables the project managers and teams to determine the priority level of the issues and allows them to triage the bugs accordingly. Owing to this feature, the bug tracking, monitoring, and management system becomes more systematic and organized, and managers have increased traceability access. With this feature, the bugs and defects in the system can be allocated to the team members with the most relevant skills and experience, for instance, a high priority bug that has a significant impact on the project and is more technical in nature would be assigned to a developer who has the most skills, experience, and bandwidth at the moment. In addition to this, depending on the severity, impact, and frequency of the bugs, the financial resources and testing efforts can be divided and assigned. A critical bug that has no possible workaround and impedes the systems’ functionality would be allocated a higher budget than a minor bug which can be ignored for the moment.
Severity can be of following types:
- Critical: A core functionality of the system fails or the system doesn’t work at all.
- Major: This defect has an impact on basic functionality and the system is unable to produce required results.
- Moderate: The defect causes the system to generate false, inconsistent, or incomplete results.
- Minor: There is an impact on the business, but only in very few cases.
- Cosmetic: The defects that are related to the interface and appearance of the application.
The above-mentioned priority and severity levels can vary among different companies and different test engineers but their usage remains the same. Assigning a defect priority and defect severity is always subjective to the test engineer who measures the impact of defect from his point of view. Nevertheless, the defect priority and severity must be set carefully because defect resolution is both costly and time-consuming.