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.