Bird
Raised Fist0
Testing Fundamentalstesting~10 mins

Defect metrics in Testing Fundamentals - Test Execution Trace

Choose your learning style10 modes available
Test Overview

This test checks if the defect metrics calculation feature correctly counts and reports the number of defects found during testing. It verifies that the system accurately tracks defects by severity and status.

Test Code - unittest
Testing Fundamentals
import unittest

class DefectMetrics:
    def __init__(self):
        self.defects = []

    def add_defect(self, defect):
        self.defects.append(defect)

    def count_defects(self, severity=None, status=None):
        return len([
            d for d in self.defects
            if (severity is None or d['severity'] == severity) and
               (status is None or d['status'] == status)
        ])

class TestDefectMetrics(unittest.TestCase):
    def setUp(self):
        self.metrics = DefectMetrics()
        self.metrics.add_defect({'id': 1, 'severity': 'High', 'status': 'Open'})
        self.metrics.add_defect({'id': 2, 'severity': 'Low', 'status': 'Closed'})
        self.metrics.add_defect({'id': 3, 'severity': 'Medium', 'status': 'Open'})

    def test_count_all_defects(self):
        total = self.metrics.count_defects()
        self.assertEqual(total, 3)

    def test_count_open_defects(self):
        open_defects = self.metrics.count_defects(status='Open')
        self.assertEqual(open_defects, 2)

    def test_count_high_severity_defects(self):
        high_severity = self.metrics.count_defects(severity='High')
        self.assertEqual(high_severity, 1)

if __name__ == '__main__':
    unittest.main()
Execution Trace - 6 Steps
StepActionSystem StateAssertionResult
1Test starts - unittest framework initializes TestDefectMetricsTest environment ready with DefectMetrics class and test data—PASS
2setUp method runs - adds three defects with different severities and statusesDefectMetrics instance contains 3 defects: High/Open, Low/Closed, Medium/Open—PASS
3test_count_all_defects runs - counts all defects without filtersCounting defects in DefectMetricsAssert total defects count equals 3PASS
4test_count_open_defects runs - counts defects with status 'Open'Counting defects with status 'Open'Assert open defects count equals 2PASS
5test_count_high_severity_defects runs - counts defects with severity 'High'Counting defects with severity 'High'Assert high severity defects count equals 1PASS
6All tests completeAll assertions passed, test suite finished successfully—PASS
Failure Scenario
Failing Condition: The count_defects method returns incorrect counts due to filtering logic error
Execution Trace Quiz - 3 Questions
Test your understanding
What does the test_count_open_defects verify?
AIt verifies the number of defects with status 'Open' is counted correctly
BIt verifies the total number of defects regardless of status
CIt verifies the number of defects with severity 'High'
DIt verifies the defects are added to the list
Key Result
Always verify that your filtering logic in defect metrics calculations correctly matches the criteria to avoid incorrect defect counts.

Practice

(1/5)
1. What does defect density measure in software testing?
easy
A. Time taken to fix a defect
B. Total number of test cases executed
C. Number of defects per size of the software
D. Number of users reporting defects

Solution

  1. Step 1: Understand defect density meaning

    Defect density is a metric that counts defects relative to software size, like per thousand lines of code.
  2. Step 2: Compare options with definition

    Only Number of defects per size of the software matches this definition; others relate to different metrics.
  3. Final Answer:

    Number of defects per size of the software -> Option C
  4. Quick Check:

    Defect density = defects / software size [OK]
Hint: Defect density = defects divided by software size [OK]
Common Mistakes:
  • Confusing defect density with total defects
  • Mixing defect density with test execution count
  • Thinking defect density measures fix time
2. Which of the following is the correct formula for calculating defect density?
easy
A. Defect Density = Total Defects / Software Size
B. Defect Density = Software Size / Total Defects
C. Defect Density = Total Defects x Software Size
D. Defect Density = Total Defects + Software Size

Solution

  1. Step 1: Recall defect density formula

    Defect density is calculated by dividing total defects by software size.
  2. Step 2: Match formula with options

    Defect Density = Total Defects / Software Size correctly shows division of defects by size; others use incorrect operations.
  3. Final Answer:

    Defect Density = Total Defects / Software Size -> Option A
  4. Quick Check:

    Defect density = defects ÷ size [OK]
Hint: Defect density divides defects by size, not multiply [OK]
Common Mistakes:
  • Multiplying defects by size instead of dividing
  • Reversing numerator and denominator
  • Adding defects and size instead of dividing
3. A software module has 1200 lines of code and 24 reported defects. What is the defect density?
medium
A. 20 defects per 1000 lines
B. 50 defects per 1000 lines
C. 0.02 defects per line
D. 0.02 defects per 1000 lines

Solution

  1. Step 1: Calculate defects per 1000 lines

    Defect density = (24 defects / 1200 lines) x 1000 = 20 defects per 1000 lines.
  2. Step 2: Compare with options

    20 defects per 1000 lines matches 20 defects per 1000 lines; others are incorrect calculations or units.
  3. Final Answer:

    20 defects per 1000 lines -> Option A
  4. Quick Check:

    (24/1200)*1000 = 20 [OK]
Hint: Multiply defects/lines by 1000 for defect density [OK]
Common Mistakes:
  • Not scaling defects per 1000 lines
  • Confusing defects per line with per 1000 lines
  • Incorrect division order
4. A defect report shows severity as 'High' but the status is marked 'Closed' without fixing. What is the likely issue?
medium
A. Defect density calculation error
B. Defect was fixed but not retested
C. Test cases are incomplete
D. Defect severity and status are inconsistent

Solution

  1. Step 1: Analyze severity and status meaning

    High severity means serious defect; status 'Closed' usually means fixed or resolved.
  2. Step 2: Identify inconsistency

    Closing a high severity defect without fixing is inconsistent and indicates a reporting or process error.
  3. Final Answer:

    Defect severity and status are inconsistent -> Option D
  4. Quick Check:

    High severity + Closed without fix = inconsistency [OK]
Hint: High severity defects should not be closed without fix [OK]
Common Mistakes:
  • Assuming defect density relates to status
  • Confusing test case completeness with defect status
  • Thinking defect was fixed without evidence
5. You have two modules: Module A with 2000 lines and 40 defects, Module B with 1000 lines and 30 defects. Which module has better quality based on defect density?
hard
A. Module A has better quality because it has fewer defects
B. Module A has better quality because its defect density is lower
C. Both modules have the same quality
D. Module B has better quality because it has fewer lines of code

Solution

  1. Step 1: Calculate defect density for Module A

    Module A defect density = 40 / 2000 = 0.02 defects per line.
  2. Step 2: Calculate defect density for Module B

    Module B defect density = 30 / 1000 = 0.03 defects per line.
  3. Step 3: Compare defect densities

    Lower defect density means better quality; Module A's 0.02 is less than Module B's 0.03.
  4. Final Answer:

    Module A has better quality because its defect density is lower -> Option B
  5. Quick Check:

    0.02 < 0.03 means Module A better [OK]
Hint: Lower defect density means better quality [OK]
Common Mistakes:
  • Comparing only defect counts without size
  • Assuming fewer lines means better quality
  • Saying both have same quality without calculation
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