DR Test Report Template (NIST SP 800-84, RTO and RPO Evidence)
Evidence of one DR test: SP 800-84 event type, scope, scenario, timeline, RTO and RPO target vs achieved, integrity checks, deviations, findings, actions, sign-off
Cara menggunakan: Use it after every disaster recovery test or failover exercise to prove recovery objectives with evidence. Fill the classification and measurement rules (section 2) before the test and record timestamps live. The main pitfall is measuring RTO from runbook start instead of from the disruption, which hides detection and decision time.
Pratinjau
DR Test Report: [Test name] [DRT-YYYY-NN]
Evidence report for one disaster recovery (DR) test or exercise: how the event is classified, scope and objectives, scenario, participants, the timeline, recovery time and recovery point achieved against target for every system, data integrity and functional checks, deviations from the plan, findings, corrective actions and sign-off. Event types and terms follow NIST SP 800-84 (Guide to Test, Training, and Exercise Programs for IT Plans and Capabilities, September 2006) and NIST SP 800-34 Rev. 1 (Contingency Planning Guide for Federal Information Systems, May 2010, updated November 2010). Evidence is mapped to NIST SP 800-53 Rev. 5 (release 5.2.0) controls CP-4, CP-9 and CP-10 and to the clause structure of ISO 22301:2019 (with Amendment 1:2024). Replace every
[bracketed]value and every row marked Example.
Document control
| Field | Value |
|---|---|
| Document ID | [DRT-YYYY-NN] |
| Test name | [Test name] |
| Plan tested | [IT Disaster Recovery Plan ID and version] |
| Event type (section 2.1) | [Tabletop exercise / Functional exercise / Full-scale exercise / Component test / System test / Comprehensive test] |
| Test date and window | [YYYY-MM-DD HH:MM to HH:MM time zone] |
| Environment | [Production / Production-like isolated / Staging] |
| Test director | [@test-director] |
| Version | [0.1] |
| Status | [Draft / In review / Approved / Actions closed] |
| Owner | [@dr-coordinator] |
| Approvers/reviewers | [@service-owner], [@head-of-infrastructure], [@ciso], [@internal-audit] |
| Last updated | YYYY-MM-DD |
| Classification | [Internal / Confidential] |
| Overall result | [Pass / Pass with findings / Fail] |
Approvals
| Role | Name | Decision | Date |
|---|---|---|---|
| Test director | [@name] | [Approve / Approve with conditions / Reject] | YYYY-MM-DD |
| Service owner | [@name] | [Decision] | YYYY-MM-DD |
| Head of infrastructure | [@name] | [Decision] | YYYY-MM-DD |
| Business continuity manager | [@name] | [Decision] | YYYY-MM-DD |
| Internal audit (observer) | [@name] | [Noted] | YYYY-MM-DD |
Revision history
| Version | Date | Author | Change summary |
|---|---|---|---|
| 0.1 | YYYY-MM-DD | [@name] | Draft written within 2 business days of the test |
| 0.2 | YYYY-MM-DD | [@name] | Example: Integrity reconciliation results added (section 8) |
| 1.0 | YYYY-MM-DD | [@name] | Example: Approved; actions DRT-A-01 to DRT-A-06 opened |
Contents
- Executive summary
- Test classification and measurement method
- Scope and objectives
- Scenario, assumptions and safety controls
- Participants and roles
- Timeline
- Recovery objectives: target versus achieved
- Data integrity and functional validation
- Deviations from the plan
- Findings
- Corrective actions
- Evidence and control mapping
- Conclusion and sign-off
- Glossary and references
1. Executive summary
[Summarise the purpose of the test, what was failed over or restored, the overall result, the systems that missed an objective, the most important finding and the date by which the fix is due.]
Example: On 2026-09-19 Corvid Commerce ran a live failover combining system tests of four systems with a functional exercise of activation and notification (event types in section 2.1): the order-taking service was failed over from region A to region B in production, during a pre-announced low-traffic window, by isolating region A at the network layer. Three of the four systems in scope met their recovery time objective (RTO) and all four met their recovery point objective (RPO). The payments ledger service missed its 60-minute RTO by 12 minutes, mainly because its encryption key policy in region B did not grant the recovery role access and a break-glass procedure was needed, and also because its runbook started 5 minutes after its database was ready. Because order taking needs the payments ledger, the end-to-end business service was restored after 72 minutes against a 60-minute objective. The test result is therefore Pass with findings. The key policy fix (DRT-A-01) is due on 2026-10-17, the dependency-ordered recovery checklist (DRT-A-05) on 2026-11-07, and a targeted retest of the payments ledger (DRT-A-06) is booked for 2026-11-14.
| Headline measure | Target | Achieved | Result |
|---|---|---|---|
| End-to-end service "place an order" restored (Example) | 60 min | 72 min | Missed by 12 min |
| Systems meeting RTO (Example) | 4 of 4 | 3 of 4 | Missed |
| Systems meeting RPO (Example) | 4 of 4 | 4 of 4 | Met |
| Integrity checks passed (Example) | 6 of 6 | 6 of 6 | Met |
| Findings raised (Example) | n/a | 6 (1 High, 2 Medium, 2 Low, 1 Observation) | n/a |
| Failback completed inside the window (Example) | Yes | Yes | Met |
2. Test classification and measurement method
2.1 Event type
NIST SP 800-84 separates exercises, which validate a plan and the people who carry it out, from tests, which evaluate systems or components. Classify the event with the terms below and record the classification in Document control. Many organisations also use the industry terms walkthrough, simulation, parallel test and full interruption test; the right-hand column shows how they usually map.
| Event type (SP 800-84 term) | What happens | Typical evidence | Common industry term |
|---|---|---|---|
| Tabletop exercise | Participants discuss roles and decisions against a scenario; no systems are touched | Facilitator notes, decisions, gaps in the plan | Walkthrough, tabletop |
| Functional exercise | Participants perform their duties in a simulated operational environment for one or more functions of the plan | Timed actions, inject log, observer notes | Simulation |
| Full-scale exercise | A functional exercise that covers every element of the plan, with senior and operational staff | All of the above for the whole plan | Full simulation |
| Component test | One hardware or software component is tested, for example one backup restore | Restore log, checksum output | Restore test |
| System test | A complete system is recovered and checked against its requirements | Runbook log, RTO and RPO measured | Parallel test (recovery site runs beside production) |
| Comprehensive test | All systems and components that support the plan are tested together | Full timeline, end-to-end checks | Full interruption or cutover test |
A discussion-based exercise belongs in a Tabletop Exercise
(security/tabletop-exercise) record; a fault-injection event that
tests detection and response behaviour belongs in a Game Day Plan
(ops/game-day-plan). Use this report when systems are actually
recovered or restored and recovery objectives are measured.
2.2 Measurement rules
| ID | Rule | Value for this test |
|---|---|---|
| MR-01 | Clock source | [NTP-synchronised time from the incident channel, UTC] |
| MR-02 | Disruption time, T0 | [Moment the fault is injected or the outage begins] |
| MR-03 | Recovery time for a system | [T0 to the moment the system passes its validation checks in section 8] |
| MR-04 | Recovery time for a business service | [T0 to the moment the last hard dependency of the service is validated] |
| MR-05 | Data loss window | [Time of failure minus the commit time of the last transaction present after recovery] |
| MR-06 | Pass criteria | [Achieved recovery time at or below RTO and data loss window at or below RPO] |
| MR-07 | Low margin flag | [Margin below 10% of the objective is reported as an Observation even when met] |
The formulas used in section 7 are:
Recovery time (min) = T(validated) - T0
Variance (min) = Recovery time - RTO (negative is better)
RTO margin (%) = (RTO - Recovery time) / RTO x 100
Data loss window (s) = T0 - T(last committed transaction present after recovery)
RPO margin (%) = (RPO - Data loss window) / RPO x 100
Example: Corvid Commerce measures RTO from T0, not from the declaration of disaster, because its customers experience the outage from T0. Detection and decision time are therefore part of the measured recovery time and appear as separate phases in section 7.3.
3. Scope and objectives
3.1 Systems in scope
| System ID | System | Resilience tier | RTO | RPO | Recovery method under test | Owner |
|---|---|---|---|---|---|---|
| SYS-01 (Example) | Checkout API | T1 | 60 min | n/a (stateless) | Redeploy and scale out in region B | [@name] |
| SYS-02 (Example) | Orders database (PostgreSQL) | T1 | 60 min | 5 min | Promote asynchronous cross-region replica | [@name] |
| SYS-05 (Example) | Payments ledger service | T1 | 60 min | 1 min | Fail over to synchronous standby in region B | [@name] |
| SYS-07 (Example) | Catalogue search index | T3 (stricter RTO from the BIA) | 4 h | 24 h | Restore nightly snapshot, then rebuild deltas | [@name] |
| [SYS-NN] | [System] | [Tier] | [RTO] | [RPO] | [Method] | [@owner] |
System IDs, tiers and objectives come from section 3.1 of the IT
Disaster Recovery Plan (ops/disaster-recovery-plan) and must match it
exactly; in the worked example they are copied from the Corvid Commerce
rows of that section. If a value differs, the plan wins and the report
is corrected before approval. Tier definitions come from
Resilience Tiering, HA and DR Design
(architecture/resilience-tiering-ha-dr-design).
3.2 Out of scope
| Item | Reason | When it will be tested |
|---|---|---|
| SYS-03 Reporting warehouse (Example) | T3, backup tier B2: full timed restore tested separately every year, as section 8 of the Backup Policy (ops/backup-policy) requires | [DRT-YYYY-NN], YYYY-MM-DD |
| Customer support tooling (SaaS) (Example) | Vendor-operated; vendor DR evidence reviewed instead | Annual supplier review |
| [Item] | [Reason] | [Plan] |
3.3 Objectives
| ID | Objective | Success criterion | Result |
|---|---|---|---|
| DRT-OBJ-01 (Example) | Restore order taking in region B within the business service RTO | MR-04 at or below 60 min | Not met (72 min) |
| DRT-OBJ-02 (Example) | Confirm data loss stays within RPO for every stateful system | MR-05 at or below RPO for SYS-02, SYS-05, SYS-07 | Met |
| DRT-OBJ-03 (Example) | Prove recovered data is complete and consistent | All checks INT-01 to INT-06 pass | Met |
| DRT-OBJ-04 (Example) | Validate the activation and notification procedure | Activation decision within 15 min of T0; contact tree completed | Met with finding DRT-F-05 |
| DRT-OBJ-05 (Example) | Fail back to region A without data loss inside the window | Failback validated before 16:00 UTC | Met |
| [DRT-OBJ-NN] | [Objective] | [Criterion] | [Met / Not met] |
4. Scenario, assumptions and safety controls
4.1 Scenario
[Describe the disruption being simulated, how it was injected, and what responders were told before the start.]
Example: Region A becomes unreachable for all Corvid Commerce workloads. The platform team injects the fault at T0 = 09:00:00 UTC by applying a deny-all network policy between region A and the internet and between region A and region B. The on-call engineers know the date and window but not the exact time or the failure mode. Region A data is treated as lost for the duration of the test: nobody may copy data out of region A to help the recovery.
4.2 Assumptions and constraints
| ID | Assumption or constraint | Impact on the result |
|---|---|---|
| AS-01 (Example) | Test ran in a low-traffic window (Saturday 09:00 UTC, about 18% of weekday peak) | Region B capacity was not stressed; capacity under peak remains unproven |
| AS-02 (Example) | Payment service provider was told in advance and allowed traffic from region B addresses | A real event would also need the provider to accept the new addresses |
| AS-03 (Example) | Identity provider is a SaaS outside both regions | Identity was not part of the failure |
| [AS-NN] | [Assumption] | [Impact] |
4.3 Safety controls and abort criteria
| ID | Control | Owner | Triggered |
|---|---|---|---|
| SC-01 (Example) | Abort and restore region A routing if customer-facing error rate above 5% for 10 min after the planned recovery time | Test director | No |
| SC-02 (Example) | Fresh backups of SYS-02 and SYS-05 taken and verified before T0 | Database lead | n/a (precondition met) |
| SC-03 (Example) | Status page notice published 48 h before the window | Communications lead | n/a |
| SC-04 (Example) | Change record approved for the test window | Change manager | n/a |
| [SC-NN] | [Control] | [@owner] | [Yes / No] |
5. Participants and roles
| Role | Name | Responsibility during the test |
|---|---|---|
| Test director | [@name] | Owns go, pause and abort decisions; declares end of test |
| Incident commander | [@name] | Runs the response as in a real event; role defined in the Incident Commander Handbook (ops/incident-commander-handbook) |
| Recovery engineers | [@name], [@name] | Execute runbooks for each system |
| Scribe | [@name] | Records timestamps and decisions in the timeline |
| Observer or evaluator | [@name] | Independent; checks measurement rules and records deviations |
| Business validator | [@name] | Confirms business functions work after recovery |
| Communications lead | [@name] | Internal and customer notices |
Example: At Corvid Commerce the runbooks were executed by the secondary on-call engineers, not by their authors, and an engineer from the security team acted as independent observer.
6. Timeline
| Time (UTC) | Elapsed from T0 | Event | System | Source |
|---|---|---|---|---|
| 09:00:00 | 0 min | Example: Fault injected, region A isolated (T0) | All | Platform change log |
| 09:03 | 3 min | Example: Availability alert fires for checkout | SYS-01 | Alerting system |
| 09:09 | 9 min | Example: Incident declared, incident commander assigned | All | Incident channel |
| 09:14 | 14 min | Example: DR activation decided by incident commander and service owner | All | Incident channel |
| 09:16 | 16 min | Example: Replica promotion runbook started | SYS-02 | Runbook log |
| 09:20 | 20 min | Example: Snapshot restore of search index started in region B | SYS-07 | Runbook log |
| 09:31 | 31 min | Example: Replica promoted; runbook step 7 command failed, corrected (DEV-01) | SYS-02 | Runbook log |
| 09:47 | 47 min | Example: Integrity checks INT-01 and INT-02 passed; SYS-02 validated | SYS-02 | Validation log |
| 09:49 | 49 min | Example: Checkout API scaled out in region B | SYS-01 | Deployment log |
| 09:50 | 50 min | Example: DNS weighted record for checkout switched to region B (DEV-04) | SYS-01 | DNS change log |
| 09:52 | 52 min | Example: Payments ledger failover started | SYS-05 | Runbook log |
| 09:58 | 58 min | Example: Checkout smoke tests passed; SYS-01 validated | SYS-01 | Validation log |
| 09:59 | 59 min | Example: Ledger fails to start: key access denied in region B (DRT-F-01) | SYS-05 | Service logs |
| 10:07 | 67 min | Example: Break-glass key access granted by security on-call | SYS-05 | Key management audit log |
| 10:12 | 72 min | Example: Ledger reconciliation INT-03 passed; SYS-05 validated; order taking restored end to end | SYS-05 | Validation log |
| 11:41 | 161 min | Example: Search index rebuilt and validated | SYS-07 | Validation log |
| 12:30 | 210 min | Example: Failback to region A started | All | Change log |
| 15:10 | 370 min | Example: Failback validated, region B returned to standby | All | Validation log |
| 15:30 | 390 min | Example: Test director declares end of test | All | Incident channel |
| [HH:MM] | [N min] | [Event] | [SYS-NN] | [Source] |
7. Recovery objectives: target versus achieved
7.1 Recovery time
| System ID | RTO | T(validated) | Recovery time | Variance | RTO margin | Result |
|---|---|---|---|---|---|---|
| SYS-02 (Example) | 60 min | 09:47 | 47 min | -13 min | 21.7% | Met |
| SYS-01 (Example) | 60 min | 09:58 | 58 min | -2 min | 3.3% | Met, low margin (DRT-F-04) |
| SYS-05 (Example) | 60 min | 10:12 | 72 min | +12 min | -20.0% | Not met (DRT-F-01) |
| SYS-07 (Example) | 240 min | 11:41 | 161 min | -79 min | 32.9% | Met |
| Business service "place an order" (SYS-01, SYS-02, SYS-05) (Example) | 60 min | 10:12 | 72 min | +12 min | -20.0% | Not met |
| [SYS-NN] | [RTO] | [HH:MM] | [N min] | [+/- N min] | [N%] | [Met / Not met] |
Check of the arithmetic for SYS-05 (Example): T(validated) 10:12 minus T0 09:00 is 72 minutes; 72 minus the 60-minute RTO gives a variance of +12 minutes; (60 - 72) / 60 = -20.0%. The business service time equals the latest validation among its hard dependencies, which is SYS-05 at 72 minutes.
7.2 Recovery point
| System ID | RPO | Last transaction present after recovery | Data loss window | RPO margin | Result |
|---|---|---|---|---|---|
| SYS-02 (Example) | 300 s | 08:59:23 | 37 s | 87.7% | Met |
| SYS-05 (Example) | 60 s | 09:00:00 (synchronous standby) | 0 s | 100.0% | Met |
| SYS-07 (Example) | 24 h | Snapshot 02:00:00, deltas replayed from SYS-02 | 7 h before replay, 37 s after | 70.8% before replay | Met |
| SYS-01 (Example) | n/a | Stateless | n/a | n/a | n/a |
| [SYS-NN] | [RPO] | [HH:MM:SS] | [N] | [N%] | [Met / Not met] |
SYS-02 (Example): 09:00:00 minus 08:59:23 is 37 seconds; (300 - 37) / 300 = 87.7%. SYS-07 (Example): the snapshot was 7 hours old at T0; (24 - 7) / 24 = 70.8%. Replaying deltas from the recovered orders database reduced the effective loss to that of SYS-02.
7.3 Phase breakdown
| Phase | SYS-02 | SYS-01 | SYS-05 | Observation |
|---|---|---|---|---|
| Detection (T0 to alert) (Example) | 3 min | 3 min | 3 min | Within the 5-minute alerting objective |
| Declaration and decision (Example) | 11 min | 11 min | 11 min | Contact tree slowed declaration (DRT-F-05) |
| Wait for dependencies (Example) | 2 min | 35 min | 38 min | SYS-01 waited for SYS-02; SYS-05 waited for SYS-02 and then started late |
| Execution (Example) | 15 min | 7 min | 15 min | SYS-05 execution includes 8 minutes lost to the key policy (09:59 to 10:07) |
| Validation (Example) | 16 min | 2 min | 5 min | SYS-02 validation includes integrity checks |
| Total | 47 min | 58 min | 72 min | Matches section 7.1 |
Totals (Example): SYS-02 3 + 11 + 2 + 15 + 16 = 47; SYS-01 3 + 11 + 35 + 7 + 2 = 58; SYS-05 3 + 11 + 38 + 15 + 5 = 72. The SYS-05 wait of 38 minutes runs from 09:14 to 09:52 and includes 5 minutes after SYS-02 was validated before the ledger runbook started, which is a sequencing gap tracked as DRT-F-06. Removing only the 8 minutes lost to the key policy would still give 64 minutes: the RTO is met only if both DRT-A-01 and DRT-A-05 are delivered, which is why the retest DRT-A-06 depends on both. Removing both delays (8 + 5 minutes) gives 72 - 13 = 59 minutes, a margin of (60 - 59) / 60 = 1.7%, which MR-07 would still report as an Observation. The retest should therefore also look for time to remove from the wait and validation phases.
8. Data integrity and functional validation
| Check ID | System | Check | Method | Expected | Observed | Result |
|---|---|---|---|---|---|---|
| INT-01 (Example) | SYS-02 | Row count of orders created before the last replicated commit | Count query against a checkpoint taken by the replica | 1,284,312 | 1,284,312 | Pass |
| INT-02 (Example) | SYS-02 | Structural consistency | Database consistency check and index validation | No errors | No errors | Pass |
| INT-03 (Example) | SYS-05 | Ledger balances against payment provider records for the day | Reconciliation job against provider settlement report | 2,140 matched | 2,140 matched, 0 unmatched | Pass |
| INT-04 (Example) | SYS-02, SYS-05 | Every paid order has a ledger entry and the reverse | Cross-system join on order ID | 0 orphans | 0 orphans | Pass |
| INT-05 (Example) | SYS-07 | Search returns products added after the snapshot | Query for 25 products created after 02:00 | 25 found | 25 found | Pass |
| INT-06 (Example) | SYS-01 | Synthetic order end to end, card payment test mode | Scripted journey from the synthetic monitoring suite | Order confirmed | Order confirmed | Pass |
| [INT-NN] | [SYS-NN] | [Check] | [Method] | [Expected] | [Observed] | [Pass / Fail] |
Business validation (Example): the order operations lead placed and cancelled two real orders with internal accounts at 10:20 and confirmed the order appeared in the fulfilment queue. Record the name and time of the business validator for each business service.
If any check fails, record whether the system was declared recovered anyway and why. A recovery declared before integrity is proved must be reported as a deviation in section 9 and as a finding in section 10.
9. Deviations from the plan
| ID | Plan or runbook step | What happened instead | Reason | Effect on time or data | Linked finding |
|---|---|---|---|---|---|
| DEV-01 (Example) | SYS-02 runbook step 7: promote replica | Documented command refers to a tool version that was retired; engineer used the current command | Runbook not updated after a platform upgrade | About 4 min lost | DRT-F-03 |
| DEV-02 (Example) | SYS-05 runbook: use recovery role for key access | Break-glass role used instead | Recovery role lacked permission in region B | About 8 min lost | DRT-F-01 |
| DEV-03 (Example) | Plan section 5.3: notify via contact tree | Two contacts reached through a chat message after phone numbers failed | Contact list out of date | About 3 min lost | DRT-F-05 |
| DEV-04 (Example) | Plan section 6.3 step 2: switch DNS weighted record, time-to-live 60 s | Record switched, but the deployed record still had a 300 s time-to-live | Value changed outside infrastructure code during an earlier incident and never reverted | No effect on measured RTO (validation used the region B endpoint); some customers reached region A for up to 11 min | DRT-F-02 |
| [DEV-NN] | [Step] | [What happened] | [Reason] | [Effect] | [DRT-F-NN] |
10. Findings
Severity scale (Example): High means an objective was missed or recovery depended on an unplanned workaround; Medium means an objective was put at risk; Low means a documentation or minor process gap; Observation means a point worth recording with no action required now.
| Finding ID | Severity | Finding | Root cause | Evidence |
|---|---|---|---|---|
| DRT-F-01 (Example) | High | Payments ledger missed RTO by 12 min | Key access policy in region B did not include the recovery role; policy is managed separately from the region A policy | Timeline 09:59 to 10:07, key management audit log |
| DRT-F-02 (Example) | Medium | Some customers' clients kept resolving region A for up to 11 min after the DNS change | Record time-to-live of 300 s (plan 6.3 specifies 60 s; the deployed record still had 300 s, DEV-04) plus resolvers that ignore it; no client-side retry to the alternate endpoint | Synthetic monitoring from three networks, timeline 09:50 |
| DRT-F-03 (Example) | Low | SYS-02 runbook step 7 out of date | No runbook review step in the platform upgrade checklist | DEV-01 |
| DRT-F-04 (Example) | Observation | Checkout API met RTO with a 3.3% margin | Scale-out waits for the database; the warm pool in region B is minimal | Section 7.1 and 7.3 |
| DRT-F-05 (Example) | Medium | Declaration took 11 min after the alert | Contact list out of date; activation authority unclear for weekend shifts | DEV-03, timeline 09:03 to 09:14 |
| DRT-F-06 (Example) | Low | Ledger failover started 5 min after the database was ready | Runbooks are sequenced by hand in the incident channel, not by a recovery checklist with dependencies | Timeline 09:47 to 09:52 |
| [DRT-F-NN] | [Severity] | [Finding] | [Root cause] | [Evidence] |
11. Corrective actions
| Action ID | Finding | Action | Owner | Due | Verification | Status |
|---|---|---|---|---|---|---|
| DRT-A-01 (Example) | DRT-F-01 | Manage key access policies for both regions from one definition and add a policy drift check | [@security-platform-lead] | 2026-10-17 | Drift check alerts on a seeded difference | [Open] |
| DRT-A-02 (Example) | DRT-F-02 | Restore the 60 s time-to-live that plan 6.3 specifies, manage the record in infrastructure code with a drift check, and add client retry to the alternate endpoint | [@edge-lead] | 2026-10-31 | Synthetic test during the retest | [Open] |
| DRT-A-03 (Example) | DRT-F-03 | Add "update affected runbooks" to the platform upgrade checklist; fix step 7 | [@database-lead] | 2026-10-03 | Peer review of the runbook | [Open] |
| DRT-A-04 (Example) | DRT-F-05 | Quarterly contact list verification; name weekend activation authority in the plan | [@dr-coordinator] | 2026-10-10 | Next IT Disaster Recovery Plan version approved | [Open] |
| DRT-A-05 (Example) | DRT-F-06 | Create a recovery checklist with dependency order that starts each runbook when its dependencies are validated | [@sre-lead] | 2026-11-07 | Used in the retest | [Open] |
| DRT-A-06 (Example) | DRT-F-01 | Targeted system test of SYS-05 failover after DRT-A-01 and DRT-A-05 | [@payments-lead] | 2026-11-14 | New DR test report shows RTO met | [Open] |
| [DRT-A-NN] | [DRT-F-NN] | [Action] | [@owner] | YYYY-MM-DD | [How proven] | [Open / Done / Verified] |
Feed every action into the improvement table of the IT Disaster
Recovery Plan (section 10.2 of ops/disaster-recovery-plan), and copy
plan or runbook changes into the next plan version.
11.1 Traceability
| Objective | Systems | Checks | Findings | Actions |
|---|---|---|---|---|
| DRT-OBJ-01 (Example) | SYS-01, SYS-02, SYS-05 | INT-06 | DRT-F-01, DRT-F-02, DRT-F-04, DRT-F-06 | DRT-A-01, DRT-A-02, DRT-A-05, DRT-A-06 |
| DRT-OBJ-02 (Example) | SYS-02, SYS-05, SYS-07 | INT-01, INT-03, INT-05 | None | None |
| DRT-OBJ-03 (Example) | SYS-01, SYS-02, SYS-05, SYS-07 | INT-01 to INT-06 | None | None |
| DRT-OBJ-04 (Example) | All | n/a | DRT-F-05 | DRT-A-04 |
| DRT-OBJ-05 (Example) | All | Failback validation | None | None |
| [DRT-OBJ-NN] | [SYS-NN] | [INT-NN] | [DRT-F-NN] | [DRT-A-NN] |
12. Evidence and control mapping
| Requirement | Reference | Evidence in this report | Stored at |
|---|---|---|---|
| Contingency plan testing | NIST SP 800-53 Rev. 5 CP-4; CP-4(1) coordination with related plans; CP-4(2) alternate processing site; CP-4(4) full recovery and reconstitution | Sections 2, 6, 7, 13 | [Evidence repository path] |
| Backup reliability and integrity testing | NIST SP 800-53 Rev. 5 CP-9(1); CP-9(2) restoration from sampled backups | INT-05 snapshot restore; section 8 | [Path] |
| Recovery and reconstitution to a known state | NIST SP 800-53 Rev. 5 CP-10; CP-10(4) restore within time period | Sections 7 and 8, failback in section 6 | [Path] |
| Backups tested; integrity verified before and after restoration | NIST CSF 2.0 PR.DS-11, RC.RP-03, RC.RP-05 | INT-01 to INT-06 | [Path] |
| Improvements identified from tests and exercises | NIST CSF 2.0 ID.IM-02 | Sections 10 and 11 | [Path] |
| Exercise programme | ISO 22301:2019 clause 8.5 | Whole report, objectives in 3.3 | [Path] |
| Evaluation of business continuity capabilities | ISO 22301:2019 clause 8.6 | Sections 7 and 10 | [Path] |
| Monitoring, measurement and evaluation | ISO 22301:2019 clause 9.1 | Section 7 | [Path] |
| Nonconformity and corrective action | ISO 22301:2019 clause 10.1 | Section 11 | [Path] |
| [Requirement] | [Reference] | [Section] | [Path] |
Keep the raw evidence (logs, query output, screenshots of dashboards) for at least as long as your audit cycle requires, and reference it by path instead of pasting it into this report.
13. Conclusion and sign-off
13.1 Overall result rule
| Result | Rule (Example) |
|---|---|
| Pass | All objectives met, no High finding |
| Pass with findings | Every stateful system met RPO, integrity checks passed, at most one system missed RTO (a business service that misses only because of that system counts with it) by no more than 25%, and the cause has a dated fix and a booked retest |
| Fail | Any RPO missed, any integrity check failed, more than one system missed RTO, a business service missed RTO for a reason other than one system's miss, or any miss above 25% |
Example: SYS-05 missed RTO by 20.0%, which is within the 25% allowance; the business service missed only because it waits for SYS-05, so it counts with that one miss; all RPOs and integrity checks were met, and DRT-A-06 books the retest. The result is Pass with findings. Until DRT-A-06 is verified, the service owner accepts the risk that a regional outage would restore order taking in about 72 minutes, not 60.
13.2 Next test
| Item | Value |
|---|---|
| Retest of failed objectives | [DRT-YYYY-NN], YYYY-MM-DD |
| Next scheduled test from the plan | [Exercise ID from plan section 9.1], YYYY-MM-DD |
| Changes to scope for the next test | [For example, run at peak load or with region B scaled to production size] |
13.3 Sign-off
| Role | Name | Statement | Signature or approval reference | Date |
|---|---|---|---|---|
| Test director | [@name] | The test was run and measured as described | [Reference] | YYYY-MM-DD |
| Independent observer | [@name] | The measurement rules were followed; deviations are complete | [Reference] | YYYY-MM-DD |
| Service owner | [@name] | I accept the result and the residual risk until the actions close | [Reference] | YYYY-MM-DD |
| Business continuity manager | [@name] | The result is recorded in the exercise programme | [Reference] | YYYY-MM-DD |
14. Glossary and references
14.1 Glossary
| Term | Meaning in this report |
|---|---|
| T0 | The moment the disruption begins or the fault is injected; the start of every recovery clock |
| RTO (recovery time objective) | The longest acceptable time from T0 until a system or service is restored and validated |
| RPO (recovery point objective) | The longest acceptable period of data that may be lost, measured back from the time of failure |
| Data loss window | The measured period between the last transaction present after recovery and the time of failure |
| Validation | Integrity and functional checks that must pass before a system counts as recovered |
| Failback | Returning service to the primary location after recovery at the alternate location |
| Exercise | An event that validates a plan and the people who carry it out (SP 800-84 sense) |
| Test | An event that evaluates systems or components (SP 800-84 sense) |
| Deviation | Any action during the test that differed from the plan or runbook |
14.2 References
- NIST SP 800-84, Guide to Test, Training, and Exercise Programs for IT Plans and Capabilities, September 2006: https://csrc.nist.gov/pubs/sp/800/84/final
- NIST SP 800-34 Rev. 1, Contingency Planning Guide for Federal Information Systems, May 2010, updated 11 November 2010: https://csrc.nist.gov/pubs/sp/800/34/r1/upd1/final
- NIST SP 800-53 Rev. 5, Security and Privacy Controls for Information Systems and Organizations, release 5.2.0 (August 2025): https://csrc.nist.gov/pubs/sp/800/53/r5/upd1/final
- NIST Cybersecurity Framework (CSF) 2.0, February 2024: https://www.nist.gov/cyberframework
- ISO 22301:2019, Security and resilience: Business continuity management systems: Requirements, with Amendment 1:2024 (climate action changes): https://www.iso.org/standard/75106.html
- Related templates: IT Disaster Recovery Plan
(
ops/disaster-recovery-plan), Backup Policy (ops/backup-policy), Backup and Restore Procedure (ops/backup-restore-procedure), Resilience Tiering, HA and DR Design (architecture/resilience-tiering-ha-dr-design), Game Day Plan (ops/game-day-plan), Chaos Experiment (ops/chaos-experiment), Tabletop Exercise (security/tabletop-exercise), Business Continuity Plan (compliance/business-continuity), Postmortem (dev/postmortem).
Standard and licence note
Based on NIST SP 800-84 (September 2006) for the classification of tests and exercises, NIST SP 800-34 Rev. 1 for contingency plan testing, and NIST SP 800-53 Rev. 5 (release 5.2.0) and NIST CSF 2.0 for control references; NIST publications are works of the US Government and are not subject to copyright in the United States. ISO 22301:2019 and its Amendment 1:2024 are copyrighted by ISO: this template cites clause numbers only, with original one-line descriptions, and reproduces no ISO text. The industry terms walkthrough, simulation, parallel test and full interruption test are common practice and are not owned by any standard. All text, the worked example and the example organisation Corvid Commerce are original and fictional. Check the current official version of each source before relying on it. Template licence: MIT.
Templat terkait
Access Review Template
Periodic access audit – keep/modify/revoke
OperasionalAlerting Policy Template (SLO Burn-Rate Alerts)
Symptom-based paging, page vs ticket vs log, multi-window burn-rate rules with worked numbers, alert metadata, naming, routing, noise budget, review, alerts as code
OperasionalBackup Policy Template (3-2-1-1-0, Immutability, NIST CP-9)
Organisation backup policy: data classes and backup tiers, numbered MUST/SHOULD statements, 3-2-1-1-0, immutable copies, retention, key escrow, ransomware isolation, restore tests, metrics