Tip: Choose Save as PDF in the print dialog to download. Use A4 paper size.
Shade in the A or B circle for each question.
Draw a line connecting each item on the left to its match on the right.
| Left column | Right column | |
|---|---|---|
| 1Verification testing | ARetesting a control after it is applied to prove the threat is actually reduced and no new weakness was created | |
| 2Residual risk | Blog: 2025-03-12 | SQLi retest | PASS | screenshot_14.png | |
| 3After adding input validation, the team re-runs the same SQL injection attack that worked before to see if it now fails | CThe risk that remains after a control has been applied and tested | |
| 4The tester records the test date, result and evidence so the organisation can prove the control works | Drun_test("' OR 1=1 --") -> expect: rejected | |
| 5control_applied = True threat_reduced = True # assumed, not tested | EThe new code was not reviewed, so a new weakness may have been introduced, and residual risk was ignored instead of being recorded. | |
| 6retest: PASS residual_risk = None new_code_reviewed = False | FThe team assumes the threat is reduced without retesting the control, so there is no proof it works. |
Complete each line of code by filling in the missing parts.
Shade in the letter of the line that contains an error.
Verification testing — Retesting a control after it is applied, using code review and security tests, to prove the threat is reduced, check no new weakness exists, note residual risk and record the evidence.assert attackWorked == Falseresidual = before - removedevidence = []
evidence.append("retest passed")if len(newIssues) > 0:
print("New weakness found")if reviewed and testsPassed:
status = "verified"