Severity & Priority in Testing: Differences & Example
Bug Severity or Defect Severity in testing is a degree of impact a bug or a Defect has on the software application under test. A higher effect of bug/defect on system functionality will lead to a higher severity level. A Quality Assurance engineer usually determines the severity level of a bug/defect.
What is Priority?
Priority is defined as the order in which a defect should be fixed. Higher the priority the sooner the defect should be resolved.
Defects that leave the software system unusable are given higher priority over defects that cause a small functionality of the software to fail.
- Priority is the order in which the developer should resolve a defect whereas Severity is the degree of impact that a defect has on the operation of the product.
- Priority is categorized into three types : low, medium and high whereas Severity is categorized into five types : critical. major, moderate, minor and cosmetic.
- Priority is associated with scheduling while Severity is associated with functionality or standards.
- Priority indicates how soon the bug should be fixed whereas Severity indicates the seriousness of the defect on the product functionality.
- Priority of defects is decided in consultation with the manager/client while Severity levels of the defects are determined by the QA engineer.
- Priority is driven by business value while Severity is driven by functionality.
- Priority value is subjective and can change over a period of time depending on the change in the project situation whereas Severity value is objective and less likely to change.
- High Priority and low severity status indicates, defect have to be fixed on immediate bases but does not affect the application while High Severity and low priority status indicates defect have to be fixed but not on immediate bases.
- Priority status is based on customer requirements whereas Severity status is based on the technical aspect of the product.
Types of Severity
In Software Testing, Types of Severity of bug/defect can be categorized into four parts :
- Critical: This defect indicates complete shut-down of the process, nothing can proceed further
- Major: It is a highly severe defect and collapses the system. However, certain parts of the system remain functional
- Medium: It causes some undesirable behavior, but the system is still functional
- Low: It won't cause any major break-down of the system
Types of Priority of bug/defect can be categorized into three parts :
- Low: The Defect is an irritant but repair can be done once the more serious Defect has been fixed
- Medium: During the normal course of the development activities defect should be resolved. It can wait until a new version is created
- High: The defect must be resolved as soon as possible as it affects the system severely and cannot be used until it is fixed
Tips for determining the Severity of a Defect
- Decide the frequency of occurrence: In some cases, if the occurrence of a minor-defect is frequent in the code, it can be more severe. So from a user's perspective, it is more serious even though it is a minor defect.
- Isolate the defect: Isolating the defect can help to find out its severity of the impact.
Priority vs Severity: Key Difference
| || |
| || |
| || |
| || |
| || |
| || |
| || |
| || |
| || |
| || |
Example of Defect Severity and Priority
Let see an example of low severity and high priority and vice versa
- A very low severity with a high priority: A logo error for any shipment website, can be of low severity as it not going to affect the functionality of the website but can be of high priority as you don't want any further shipment to proceed with the wrong logo.
- A very high severity with a low priority: Likewise, for flight operating website, a defect in reservation functionality may be of high severity but can be a low priority as it can be scheduled to release in a next cycle.
Defect triage is a process that tries to do the re-balancing of the process where the test team faces the problem of limited availability of resources. So, when there are large number of the defect and limited testers to verify them, defect triage helps to try to get as many defects resolved based on defect parameters like severity and priority.
How to determine Defect Triage:
Most systems use priority as the main criteria to assess the defect. However, a good triage process considers the severity as well.
The triage process includes the following steps
- Reviewing all the defects including rejected defects by the team
- Initial assessment of the defects is based on its content and respective priority and severity settings
- Prioritizing the defect based on the inputs
- Assign the defect to correct release by product manager
- Re-directs the defect to the correct owner/team for further action
Guidelines that every tester should consider before selecting a severity
Severity parameter is assessed by the tester whereas the priority parameter is assessed by the product manager or by the triage team. For prioritizing the defect, it is imperative for a tester to choose the right severity to avoid confusion with the development team.
- Understand the concept of priority and severity well
- Always assign the severity level based on the issue type as this will affect its priority
- Understand how a particular scenario or Test Case would affect the end-user
- Need to consider how much time it would take to fix the defect based on its complexity and time to verify the defect
- In Software Engineering, Assigning wrong severity to defect can delay the STLC process and can have some drastic implication on the overall performance of the team. So, the responsible person needs to be precise and accurate on its call for assigning defect.