Test Overview
This test simulates a defect tracking process in a software project. It verifies that defects are logged correctly, assigned, fixed, and retested, ensuring quality improvement through systematic tracking.
This test simulates a defect tracking process in a software project. It verifies that defects are logged correctly, assigned, fixed, and retested, ensuring quality improvement through systematic tracking.
class DefectTracker: def __init__(self): self.defects = [] def log_defect(self, defect): self.defects.append({'defect': defect, 'status': 'open', 'assigned_to': None}) def assign_defect(self, index, developer): self.defects[index]['assigned_to'] = developer def fix_defect(self, index): if self.defects[index]['status'] == 'open': self.defects[index]['status'] = 'fixed' def retest_defect(self, index): if self.defects[index]['status'] == 'fixed': self.defects[index]['status'] = 'closed' import unittest class TestDefectTracking(unittest.TestCase): def test_defect_lifecycle(self): tracker = DefectTracker() tracker.log_defect('Login button not working') self.assertEqual(len(tracker.defects), 1) self.assertEqual(tracker.defects[0]['status'], 'open') tracker.assign_defect(0, 'Alice') self.assertEqual(tracker.defects[0]['assigned_to'], 'Alice') tracker.fix_defect(0) self.assertEqual(tracker.defects[0]['status'], 'fixed') tracker.retest_defect(0) self.assertEqual(tracker.defects[0]['status'], 'closed')
| Step | Action | System State | Assertion | Result |
|---|---|---|---|---|
| 1 | Create DefectTracker instance | Empty defect list | defects list length is 0 | PASS |
| 2 | Log a new defect 'Login button not working' | defects list has 1 defect with status 'open' and no assignee | defects list length is 1 and status is 'open' | PASS |
| 3 | Assign defect to developer 'Alice' | defect assigned to Alice | assigned_to is 'Alice' | PASS |
| 4 | Fix the defect | defect status changed to 'fixed' | status is 'fixed' | PASS |
| 5 | Retest the defect | defect status changed to 'closed' | status is 'closed' | PASS |