Bird
Raised Fist0
Testing Fundamentalstesting~6 mins

Defect classification (severity, priority) in Testing Fundamentals - Full Explanation

Choose your learning style10 modes available
Introduction
When software has problems, it is important to decide how serious they are and how quickly they should be fixed. Without a clear way to classify these problems, teams can waste time fixing less important issues first or miss critical bugs that affect users.
Explanation
Severity
Severity measures how much a defect affects the software's functionality or user experience. It focuses on the technical impact, such as whether the software crashes, produces wrong results, or has minor display issues. Severity is usually set by testers or developers based on the defect's effect on the system.
Severity shows how serious the defect's impact is on the software.
Priority
Priority indicates how soon a defect should be fixed, based on business needs or project deadlines. It considers factors like customer importance, release schedules, or dependencies. Priority is often set by project managers or product owners to guide the development team's work order.
Priority determines the order in which defects should be addressed.
Real World Analogy

Imagine a busy restaurant kitchen where some problems happen: a broken oven (stops cooking), a missing spoon, or a slightly messy counter. The broken oven is very serious and needs immediate fixing, while the missing spoon is less serious but might be needed soon. The kitchen manager decides which problem to fix first based on how it affects cooking and serving customers.

Severity → How badly the broken oven stops cooking food, affecting the kitchen's work
Priority → The kitchen manager deciding to fix the oven first because it blocks cooking, even if other issues exist
Diagram
Diagram
┌─────────────┐       ┌─────────────┐
│   Defect    │──────▶│  Severity   │
│  Reported   │       │ (Impact on  │
└─────────────┘       │  software)  │
                       └─────┬───────┘
                             │
                             ▼
                       ┌─────────────┐
                       │  Priority   │
                       │ (Fix order) │
                       └─────────────┘
This diagram shows how a defect is first assessed for severity (impact) and then assigned a priority (fix order).
Key Facts
Severity → Measures the technical impact of a defect on the software's functionality.
Priority → Indicates how soon a defect should be fixed based on business needs.
High Severity → Defects causing crashes or loss of data.
Low Priority → Defects that can be fixed later without affecting release schedules.
Code Example
Testing Fundamentals
class Defect:
    def __init__(self, description, severity, priority):
        self.description = description
        self.severity = severity  # e.g., 'High', 'Medium', 'Low'
        self.priority = priority  # e.g., 'Urgent', 'Normal', 'Low'

    def info(self):
        return f"Defect: {self.description}\nSeverity: {self.severity}\nPriority: {self.priority}"

# Example defects
bug1 = Defect("App crashes on login", "High", "Urgent")
bug2 = Defect("Typo in help text", "Low", "Low")

print(bug1.info())
print(bug2.info())
OutputSuccess
Common Confusions
Severity and priority mean the same thing.
Severity and priority mean the same thing. Severity is about how bad the defect is technically, while priority is about how quickly it should be fixed based on business decisions.
Only high severity defects get high priority.
Only high severity defects get high priority. A defect with low severity can have high priority if it affects important customers or deadlines.
Summary
Severity measures how badly a defect affects the software's function or user experience.
Priority decides how quickly a defect should be fixed based on business needs.
Understanding both helps teams fix the most important problems first.

Practice

(1/5)
1.

What does severity indicate in defect classification?

easy
A. How serious or harmful the defect is
B. How soon the defect should be fixed
C. Who reported the defect
D. The number of times the defect occurred

Solution

  1. Step 1: Understand the meaning of severity

    Severity measures the impact or seriousness of a defect on the system or user.
  2. Step 2: Differentiate severity from priority

    Priority is about scheduling the fix, not the defect's impact.
  3. Final Answer:

    How serious or harmful the defect is -> Option A
  4. Quick Check:

    Severity = seriousness [OK]
Hint: Severity = impact level, not fix timing [OK]
Common Mistakes:
  • Confusing severity with priority
  • Thinking severity means who found the bug
  • Assuming severity counts defect occurrences
2.

Which of the following is the correct way to classify a defect with high severity and low priority?

easy
A. A defect that is not serious and can be ignored
B. A defect that causes major system failure but can be fixed later
C. A minor UI glitch that must be fixed immediately
D. A defect that is serious and must be fixed immediately

Solution

  1. Step 1: Understand high severity

    High severity means the defect causes major problems or failures.
  2. Step 2: Understand low priority

    Low priority means the defect fix can be delayed or scheduled later.
  3. Final Answer:

    A defect that causes major system failure but can be fixed later -> Option B
  4. Quick Check:

    High severity + low priority = serious but delayed fix [OK]
Hint: High severity ≠ immediate fix if priority is low [OK]
Common Mistakes:
  • Assuming high severity always means high priority
  • Mixing up severity and priority meanings
  • Ignoring the priority when severity is high
3.

Consider this defect list with severity and priority:
defects = [{'id':1, 'severity':'High', 'priority':'Low'}, {'id':2, 'severity':'Low', 'priority':'High'}, {'id':3, 'severity':'Medium', 'priority':'Medium'}]
Which defect should be fixed first based on priority?

medium
A. Defect with id 2
B. Defect with id 1
C. Defect with id 3
D. All defects have same priority

Solution

  1. Step 1: Check priority values of each defect

    Defect 1 has priority Low, Defect 2 has priority High, Defect 3 has priority Medium.
  2. Step 2: Determine which priority is highest

    High priority means fix first, so Defect 2 should be fixed first.
  3. Final Answer:

    Defect with id 2 -> Option A
  4. Quick Check:

    Highest priority = fix first [OK]
Hint: Fix defects with highest priority first [OK]
Common Mistakes:
  • Choosing based on severity instead of priority
  • Assuming Medium priority is higher than High
  • Ignoring priority values
4.

Find the error in this defect classification code snippet:

def classify_defect(severity, priority):
    if severity == 'High' and priority == 'High'
        return 'Fix Immediately'
    else:
        return 'Schedule Fix'

medium
A. Function missing return statement
B. Wrong comparison operator used
C. Missing colon after if condition
D. Indentation error in else block

Solution

  1. Step 1: Check syntax of if statement

    The if statement lacks a colon at the end of the condition line.
  2. Step 2: Verify other parts of the function

    Return statements and else block indentation are correct.
  3. Final Answer:

    Missing colon after if condition -> Option C
  4. Quick Check:

    if condition must end with ':' [OK]
Hint: Check colons after if/else statements [OK]
Common Mistakes:
  • Forgetting colon after if condition
  • Misplacing indentation in else block
  • Assuming missing return statement
5.

You have a list of defects with severity and priority:
defects = [{'id':101, 'severity':'Medium', 'priority':'High'}, {'id':102, 'severity':'High', 'priority':'Low'}, {'id':103, 'severity':'Low', 'priority':'Medium'}]
Write a Python expression using dictionary comprehension to create a dictionary mapping defect id to 'Fix Immediately' if priority is High, else 'Fix Later'.

hard
A. {d['id']: ('Fix Immediately' if d['priority'] == 'High') else 'Fix Later' for d in defects}
B. {d['id']: 'Fix Immediately' if d['priority'] == 'High' for d in defects}
C. {d['id']: 'Fix Immediately' if d['priority'] = 'High' else 'Fix Later' for d in defects}
D. {d['id']: ('Fix Immediately' if d['priority'] == 'High' else 'Fix Later') for d in defects}

Solution

  1. Step 1: Understand dictionary comprehension syntax

    It uses {key: value for item in iterable} with conditional expressions inside value.
  2. Step 2: Check conditional expression correctness

    {d['id']: ('Fix Immediately' if d['priority'] == 'High' else 'Fix Later') for d in defects} correctly uses parentheses and '==' for comparison inside the expression.
  3. Final Answer:

    {d['id']: ('Fix Immediately' if d['priority'] == 'High' else 'Fix Later') for d in defects} -> Option D
  4. Quick Check:

    Correct dict comprehension with conditional [OK]
Hint: Use parentheses around if-else in dict comprehension [OK]
Common Mistakes:
  • Using single '=' instead of '==' in condition
  • Missing parentheses around conditional expression
  • Placing else outside parentheses
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard