Bird
Raised Fist0
Testing Fundamentalstesting~15 mins

Traceability matrix in Testing Fundamentals - Build an Automation Script

Choose your learning style10 modes available
Verify Traceability Matrix Links Requirements to Test Cases
Preconditions (3)
Step 1: Open the traceability matrix document
Step 2: For each requirement listed, find the corresponding test cases linked
Step 3: Verify that each requirement has at least one linked test case
Step 4: Verify that no test case is linked to a non-existent requirement
Step 5: Check that the traceability matrix is complete and up to date
✅ Expected Result: Each requirement is linked to one or more valid test cases, and all test cases correspond to existing requirements. The matrix is complete and accurate.
Automation Requirements - Python unittest
Assertions Needed:
Assert that every requirement has at least one linked test case
Assert that all linked test cases correspond to existing requirements
Assert that no requirement or test case is missing from the matrix
Best Practices:
Use data-driven testing to iterate over requirements and test cases
Use clear and descriptive assertion messages
Structure code for readability and maintainability
Automated Solution
Testing Fundamentals
import unittest

class TraceabilityMatrixTest(unittest.TestCase):
    def setUp(self):
        # Sample data simulating the traceability matrix
        self.requirements = ['REQ-001', 'REQ-002', 'REQ-003']
        self.test_cases = ['TC-101', 'TC-102', 'TC-103', 'TC-104']
        # Mapping from requirements to test cases
        self.matrix = {
            'REQ-001': ['TC-101', 'TC-102'],
            'REQ-002': ['TC-103'],
            'REQ-003': ['TC-104']
        }

    def test_requirements_have_test_cases(self):
        for req in self.requirements:
            with self.subTest(requirement=req):
                self.assertIn(req, self.matrix, f"Requirement {req} missing in matrix")
                self.assertTrue(len(self.matrix[req]) > 0, f"Requirement {req} has no linked test cases")

    def test_test_cases_linked_to_existing_requirements(self):
        all_linked_test_cases = []
        for req, tcs in self.matrix.items():
            for tc in tcs:
                all_linked_test_cases.append(tc)
        for tc in all_linked_test_cases:
            self.assertIn(tc, self.test_cases, f"Test case {tc} linked but does not exist")

    def test_no_missing_requirements_or_test_cases(self):
        # Check all requirements in matrix are known
        for req in self.matrix.keys():
            self.assertIn(req, self.requirements, f"Matrix has unknown requirement {req}")
        # Check all test cases in matrix are known
        for tcs in self.matrix.values():
            for tc in tcs:
                self.assertIn(tc, self.test_cases, f"Matrix has unknown test case {tc}")

if __name__ == '__main__':
    unittest.main()

This test script uses Python's unittest framework to automate verification of a traceability matrix.

setUp() prepares sample data representing requirements, test cases, and their links.

test_requirements_have_test_cases checks each requirement has linked test cases.

test_test_cases_linked_to_existing_requirements verifies all linked test cases exist in the test case list.

test_no_missing_requirements_or_test_cases ensures the matrix does not contain unknown requirements or test cases.

Assertions include clear messages to help identify issues.

This structure makes the test easy to read and maintain.

Common Mistakes - 3 Pitfalls
Not verifying that each requirement has at least one test case linked
Hardcoding test cases without checking if they exist in the test case list
Ignoring unknown requirements or test cases in the matrix
Bonus Challenge

Now add data-driven testing with 3 different sets of requirements and test cases to verify the matrix for each set.

Show Hint

Practice

(1/5)
1. What is the main purpose of a traceability matrix in software testing?
easy
A. To link requirements to test cases ensuring coverage
B. To write code for automated tests
C. To track bugs found during testing
D. To manage project deadlines

Solution

  1. Step 1: Understand the role of a traceability matrix

    A traceability matrix connects requirements with their corresponding test cases to ensure all requirements are tested.
  2. Step 2: Compare options with this role

    Only To link requirements to test cases ensuring coverage describes linking requirements to tests, which is the main purpose.
  3. Final Answer:

    To link requirements to test cases ensuring coverage -> Option A
  4. Quick Check:

    Traceability matrix = links requirements to tests [OK]
Hint: Traceability matrix links requirements and tests [OK]
Common Mistakes:
  • Confusing traceability matrix with bug tracking
  • Thinking it manages project schedules
  • Assuming it writes test code automatically
2. Which of the following is the correct way to represent a traceability matrix?
easy
A. A table mapping requirements IDs to test case IDs
B. A list of all bugs found during testing
C. A flowchart of the software architecture
D. A document describing user manuals

Solution

  1. Step 1: Identify the format of a traceability matrix

    A traceability matrix is typically a table that maps requirement IDs to their corresponding test case IDs.
  2. Step 2: Eliminate unrelated options

    Options A, C, and D describe bug lists, architecture diagrams, and manuals, which are not traceability matrices.
  3. Final Answer:

    A table mapping requirements IDs to test case IDs -> Option A
  4. Quick Check:

    Traceability matrix = table mapping requirements to tests [OK]
Hint: Traceability matrix is a mapping table [OK]
Common Mistakes:
  • Confusing it with bug reports
  • Thinking it is a flowchart or diagram
  • Mixing it up with user documentation
3. Given the following traceability matrix snippet:
Requirement ID | Test Case ID
R1             | TC1
R2             | TC2
R3             | TC3, TC4

Which requirement has multiple test cases linked?
medium
A. R1
B. R2
C. R3
D. None

Solution

  1. Step 1: Read the traceability matrix snippet

    Requirement R3 is linked to two test cases: TC3 and TC4.
  2. Step 2: Identify which requirement has multiple test cases

    Only R3 has multiple test cases; R1 and R2 have one each.
  3. Final Answer:

    R3 -> Option C
  4. Quick Check:

    Multiple test cases linked = R3 [OK]
Hint: Look for multiple test cases per requirement [OK]
Common Mistakes:
  • Ignoring multiple test cases listed
  • Choosing requirement with single test case
  • Misreading the table rows
4. A tester finds that some requirements are missing test cases in the traceability matrix. What is the best way to fix this?
medium
A. Ignore the missing test cases and proceed
B. Add test cases for the missing requirements
C. Remove those requirements from the project
D. Delete the entire traceability matrix and start over

Solution

  1. Step 1: Understand the problem

    Missing test cases for requirements means incomplete test coverage.
  2. Step 2: Choose the corrective action

    The best fix is to add test cases for those missing requirements to ensure coverage.
  3. Final Answer:

    Add test cases for the missing requirements -> Option B
  4. Quick Check:

    Fix missing tests by adding them [OK]
Hint: Add missing test cases to cover all requirements [OK]
Common Mistakes:
  • Ignoring missing tests
  • Removing requirements without discussion
  • Deleting matrix unnecessarily
5. You have a traceability matrix with these entries:
Req ID | Test Case ID
R1     | TC1
R2     | TC2
R3     | TC3
R4     | TC4
R5     | TC5

During testing, TC3 and TC5 fail. What should you do to maintain traceability and quality?
hard
A. Delete all test cases and start testing again
B. Remove R3 and R5 from the matrix since tests failed
C. Ignore failures and mark all requirements as passed
D. Update the matrix to mark R3 and R5 as failed and create defect reports

Solution

  1. Step 1: Analyze test results and traceability

    Failures in TC3 and TC5 mean requirements R3 and R5 are not met.
  2. Step 2: Maintain traceability and quality

    Update the matrix to reflect failed tests and create defect reports for fixing issues.
  3. Final Answer:

    Update the matrix to mark R3 and R5 as failed and create defect reports -> Option D
  4. Quick Check:

    Mark failures and report defects to maintain quality [OK]
Hint: Mark failed tests and report defects promptly [OK]
Common Mistakes:
  • Removing requirements due to test failure
  • Ignoring test failures
  • Restarting testing without tracking defects
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