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 efforts to prevent defects occurrence 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 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 lack of time for the release and/or the bug does not make a major effect on the functionality of 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.
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 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 impact on the business, but only in a 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.