How do we…
How do we test whether a security control actually works between audits?
Add to board memoOpen the memo
The short answer
- Recommendation
- Test the control against its written statement, check its design first, then have an independent tester take the population from the system of record, choose the sample and inspect each occurrence's records. Have someone other than the tester review the workpaper before the conclusion is final.
- Reasoning
- A policy or an owner's assurance says what should happen; a test shows what did. A design that could not keep the risk in check is fixed before its operation is tested, because testing it would give a false result (rule CA-01). Asking someone is never enough: every test inspects records, observes the control or re-performs it (rule CA-03). The tester takes the population and chooses the sample, because a list the owner filtered can leave out the occurrences that failed (rule CA-04).
- Considerations
- The figures are the pack's defaults: a design check at least every 12 months, review within 10 working days, and tests every 6, 12 or 24 months for Higher, Standard or Lower risk controls.
- An owner's check on their own control is a self-check. It does not count as a test, and the control stays untested (rule CA-10).
- A control that should have run and did not is a failed occurrence, not an empty population. Not tested applies only where nothing fell due.
- Effective means the control ran as designed on the sample for that period. It is not an internal audit or a statement that you comply with any law or standard.
The decision, step by step
Select any step for the reasoning behind it and where the pack covers it.
- Start
- Step
- Decision
- Outcome
Keyboard: Tab to a step, arrow keys move along the flow, Enter pins its explanation, + and − zoom, 0 fits the diagram, Esc closes. The text version below has the same content.
Where a step quotes a number, it is the default in the CISO Times pack. Your own standard may set a different one.
Read as text
The same flow written out: each step, its reasoning and where the pack covers it. 22 steps.
Start
A control is due for a test between audits
A test checks, from records the tester chooses, that a control ran as designed every time it should have, throughout a stated period. A policy or an owner's assurance says what should happen; a test shows what did. It is not an internal audit, a certification audit, a maturity assessment or a statement of compliance, though its results can feed each of them.
In the pack
- P20-A02 Control Testing MethodologyPurpose
- P20-A02 Control Testing MethodologyWhat control testing is not (rule CA-18)
- P20-A05 Control Test Execution ProcedureWhen this procedure runs
Decision
Is it written as who does what, how often, and its record?
A control is tested against its written statement, not against what the owner says usually happens. "Access is reviewed regularly" cannot be tested. "The system owner and information security review privileged access every three months and record a decision for every account" can. The attributes the tester checks on each occurrence come from the statement.
- Yes: Does the tester own or perform none of this control?
- No: Record a design deficiency; test operation only after the fix
In the pack
- P20-A02 Control Testing MethodologyWhat a control is and what makes it testable (rule CA-01)
- P20-A05 Control Test Execution ProcedureStage 2: Walk the design through (rule CA-01)
Decision
Does the tester own or perform none of this control?
No one tests a control they own or carry out, manage the people who carry it out, or wrote the procedure for. An owner's own check is useful to them, but it is a self-check: it does not count as a test, and the control stays untested in every report. If you are unsure, take the cautious branch.
- Yes: Set the testing period and confirm the risk rating
- No, or not known: Assign a tester and a reviewer who are independent of it
In the pack
- P20-A02 Control Testing MethodologyWho may test (rule CA-10)
- P20-A05 Control Test Execution ProcedureStage 1: Plan the test (rule CA-10)
- P20-A05 Control Test Execution ProcedureA check made by the control owner (rule CA-10)
Step
Assign a tester and a reviewer who are independent of it
The pack suggests, in order, a colleague from another function trained on the method, a tester from a peer team, internal audit, or a contracted tester. The reviewer must be someone other than the tester. Never let a self-check stand in for the test because no one else was free.
In the pack
- P20-A02 Control Testing MethodologyWho may test (rule CA-10)
- P20-A05 Control Test Execution ProcedureA check made by the control owner
Step
Set the testing period and confirm the risk rating
The period runs from the end of the last tested period, or from when the control started, to the end of the period being tested, and is never longer than the control's test cycle. The rating, Higher, Standard or Lower, sets that cycle and the sample size. Copy the statement, owner, performer and attributes onto a new workpaper from the inventory.
In the pack
- P20-A02 Control Testing MethodologyThe testing period (rule CA-06)
- P20-A02 Control Testing MethodologyRisk rating and how often each control is tested (rule CA-15)
- P20-A05 Control Test Execution ProcedureStage 1: Plan the test
Decision
Would the design keep the risk in check if run as written?
Choose one recent occurrence and follow it with the performer from trigger to record, inspecting each record. Ask whether it reaches every system and person in scope, and whether its timing is tight enough. A leaver process that misses systems with local accounts fails here, however faithfully it runs. The pack's default is a design check at least every 12 months and whenever the control changes.
- Yes: Did the control run at least once in the testing period?
- No, or not known: Record a design deficiency; test operation only after the fix
In the pack
- P20-A02 Control Testing MethodologyDesign before operation (rule CA-02)
- P20-A05 Control Test Execution ProcedureStage 2: Walk the design through (rule CA-02)
Outcome
Record a design deficiency; test operation only after the fix
Conclude the design Deficient and record the operation as Not tested, with the reason. Testing the operation of a control that could not work wastes the test and gives a false result. Log the deficiency in your own tracker, rate it, and agree a fix with the owner. Then check the design again before the operating test.
In the pack
- P20-A02 Control Testing MethodologyDesign before operation (rules CA-01, CA-02)
- P20-A05 Control Test Execution ProcedureWhen the control has not run (rule CA-01)
- P20-A05 Control Test Execution ProcedureStage 9: Log the deficiency, rate it and agree the plan (rule CA-12)
Decision
Did the control run at least once in the testing period?
A control with no occurrence in the period has nothing to sample. Find out why: "no leavers in the period" is not the same as "the review that should have happened did not". For a monthly or quarterly control, count every month or quarter in the period: one with no record is an exception, not a smaller population.
In the pack
- P20-A05 Control Test Execution ProcedureWhen the control has not run (rule CA-06)
- P20-A07 Control Evidence Standards ChecklistPopulations (rules CA-06, CA-07)
- P20-A02 Control Testing MethodologyThe testing period (rule CA-06)
Decision
Should it have run in the period?
A quarterly review whose first quarter has not ended, or a control that started after the period, had no reason to run. A review that fell due and was not held did. If you cannot tell, treat it as a control that should have run.
- No: Conclude Not tested, with the reason and the first due date
- Yes, or not known: Treat the missed run as one failed occurrence
In the pack
- P20-A05 Control Test Execution ProcedureWhen the control has not run (rule CA-06)
Outcome
Conclude Not tested, with the reason and the first due date
Nothing ran, so nothing can be concluded. Record why and when the control will first run. Not tested is not a pass: it counts as untested in every report until a test is concluded, so put the test back in your plan.
In the pack
- P20-A02 Control Testing MethodologyThe testing period (rule CA-06)
- P20-A02 Control Testing MethodologyWorked cases
Step
Treat the missed run as one failed occurrence
If the control should have run and did not, that is a failure of the control, not an empty population. Test it as one occurrence that failed, and conclude Not effective.
In the pack
- P20-A05 Control Test Execution ProcedureWhen the control has not run
- P20-A07 Control Evidence Standards ChecklistPopulations (rules CA-06, CA-07)
Step
Take every occurrence yourself from the system of record
The system of record is where the trigger is recorded apart from the control: the HR system's leaving dates, not the list of accounts removed; the scanner's detections, not the list of fixes. Extract it yourself or watch it run. Record the system, the report, when it ran, the filter and the count. A list the owner prepared and you cannot check is not a population.
In the pack
- P20-A02 Control Testing MethodologyTaking the population (rule CA-04)
- P20-A05 Control Test Execution ProcedureStage 3: Take the population and check it is complete (rule CA-04)
- P20-A07 Control Evidence Standards ChecklistPopulations
Decision
Does its count agree with a second source?
Compare the count with a source that records the same events independently, such as payroll for HR leavers. A list the owner filtered can leave out the occurrences that failed. Explain each difference and add any missing occurrence. If you cannot show the list is complete, take the cautious branch.
- Yes, or each difference explained: Choose the sample yourself, spread across the period
- No, or not known: Do not sample; take it to the assurance lead
In the pack
- P20-A02 Control Testing MethodologyTaking the population (rule CA-04)
- P20-A07 Control Evidence Standards ChecklistPopulations (rule CA-04)
Outcome
Do not sample; take it to the assurance lead
Do not sample from a list you cannot check. Look for another source first. If none exists, the person who runs control testing decides whether the control has a design deficiency, because it leaves no record that can be tested. A population found to be incomplete is itself an exception.
In the pack
- P20-A05 Control Test Execution ProcedureStage 3: Take the population and check it is complete (rule CA-04)
- P20-A07 Control Evidence Standards ChecklistPopulations (rules CA-01, CA-04)
- P20-A02 Control Testing MethodologyTaking the population
Step
Choose the sample yourself, spread across the period
The size comes from the pack's default table, by population and risk rating; you may raise it but never lower it. Where the population is no larger than the sample, test every occurrence. Write down the rule for choosing before you look, such as one from each part of the period picked at random. Never take the first, the latest, or the ones the owner points to, and do not tell the owner which you chose until you ask for the records.
In the pack
- P20-A02 Control Testing MethodologyChoosing the sample (rule CA-04)
- P20-A05 Control Test Execution ProcedureStage 4: Choose the sample (rule CA-05)
Step
Check every attribute by inspection, observation or re-performance
Inspect the records the control left, watch it run, or do it again from the same inputs. Asking someone only explains what you saw; an answer is never the evidence. Where a record cannot be found, the attribute fails. Do not let anyone create or correct a record during the test.
In the pack
- P20-A02 Control Testing MethodologyHow evidence is gathered (rule CA-03)
- P20-A05 Control Test Execution ProcedureStage 5: Test each attribute (rule CA-03)
Decision
Did any sampled occurrence fail an attribute?
An occurrence that fails any attribute is an exception, even if another control later caught and corrected it. Write down what failed, by how much, and the reason the owner gives. The reason explains the exception; it does not remove it. This differs on purpose from a maturity assessment, which rates a whole practice with its own checks.
- No: Write the result in counts; an independent reviewer signs it
- Yes: Apply the exception rule before concluding
In the pack
- P20-A05 Control Test Execution ProcedureStage 6: Handle exceptions and extend the sample (rules CA-07, CA-08)
- P20-A02 Control Testing MethodologyA failure another control caught (rule CA-08)
- P20-A02 Control Testing MethodologyConcluding a test (rule CA-07)
Step
Apply the exception rule before concluding
One exception in a manual control whose population is at least twice the sample lets you add the same number again, chosen the same way; Effective only if none of them fails. Any other exception, including any in an automated control or a fully tested population, makes the control Not effective. Never drop or replace the occurrence that failed.
In the pack
- P20-A02 Control Testing MethodologyConcluding a test (rule CA-07)
- P20-A05 Control Test Execution ProcedureStage 6: Handle exceptions and extend the sample (rule CA-07)
Step
Write the result in counts; an independent reviewer signs it
The workpaper holds the population and its source, the sample, the attributes, each result, the exceptions and the proposed conclusion, written as counts and never as a share. Someone other than the tester reviews it, by default within 10 working days of the last test step. The conclusion is final only when they sign.
In the pack
- P20-A02 Control Testing MethodologyThe workpaper and its review (rule CA-11)
- P20-A05 Control Test Execution ProcedureStage 7: Conclude (rule CA-19)
- P20-A05 Control Test Execution ProcedureStage 8: Review and sign the workpaper (rule CA-11)
- P20-A06 Control Test Workpaper TemplateWorkpaper
Decision
Is the signed conclusion Effective?
A test ends Effective, Not effective or Not tested. Effective means the control ran as designed on the sample for that period. It does not mean you meet any law or standard.
- Yes: File it and set the next test date from the rating
- No: Log a deficiency, rate it and tell the risk owner
In the pack
- P20-A05 Control Test Execution ProcedureStage 7: Conclude
- P20-A02 Control Testing MethodologyWhat control testing is not (rule CA-18)
Outcome
File it and set the next test date from the rating
Name any exception the test recorded, and give it to the owner. File the workpaper with its evidence where the owner cannot change it. The next test is due within the control's cycle from the end of this testing period: by default 6, 12 or 24 months for Higher, Standard or Lower.
In the pack
- P20-A05 Control Test Execution ProcedureStage 11: File and keep (rule CA-20)
- P20-A02 Control Testing MethodologyRisk rating and how often each control is tested (rule CA-15)
Outcome
Log a deficiency, rate it and tell the risk owner
A Not effective result is a deficiency, confirmed on the day the reviewer signs. Log it in your own tracker, rate it High, Medium or Low, and tell the owner of every risk that relies on the control at once. Agree a fix with the control owner, rate the control Higher until a retest passes, and close it only on that retest.
In the pack
- P20-A05 Control Test Execution ProcedureStage 9: Log the deficiency, rate it and agree the plan (rules CA-12, CA-13)
- P20-A05 Control Test Execution ProcedureStage 10: Retest and close (rule CA-14)
- P20-A02 Control Testing MethodologyDeficiencies, severity, deadlines and retest
Practical checklist
- Check that the control is written as who does what, how often, and the record it leaves.
- Assign a tester and a reviewer who own and perform none of it.
- Set the testing period and confirm the risk rating.
- Walk one occurrence from trigger to record to check the design.
- Take every occurrence from the system of record, and agree the count to a second source.
- Choose the sample yourself from the pack's table, spread across the period.
- Check each attribute by inspection, observation or re-performance, and apply the exception rule.
- Have the reviewer sign, then file the workpaper or log the deficiency and tell the risk owner.
Evidence to have ready
- The workpaper: the population and its source, the second-source check, the sample and how it was chosen, each attribute's result, the exceptions and the conclusion.
- The design walkthrough record for the occurrence followed.
- The reviewer's signature and date, from someone other than the tester.
- The records relied on, filed where the control owner cannot change them.
Assumptions
- You keep an inventory of your controls with an owner for each, and the controls leave records in systems a tester can read.
- Someone who owns and performs none of the controls in scope can test them, and someone else can review the workpapers.
- You use your own testing method's values. The figures here are the pack's defaults, which your method may change.
Not covered here
- Rating a deficiency and setting its deadline. That is “How do we rate a control deficiency and set its deadline?”.
- Finding a tester when the team is too small to be independent. That is “Who should test our controls when the team is too small to be independent?”.
- Planning the year's tests around audits and reviews. That is “How do we plan a year of control testing around audits and reviews?”.
- Using one test for several frameworks. That is “How do we test a control once and use the result for several frameworks?”.
Related questions
- When should we commission an independent assessment instead of self-assessing?
- How do we prove to an auditor that the review really happened?
- How many samples do we need when testing a control?
- If a control test finds an exception, has the control failed?
- What evidence is good enough to show a control operated?