Penetration Test Plan vs Penetration Test Report

These get searched for interchangeably and they are two different documents, produced at two different points in an engagement. A penetration test plan is agreed before any testing happens and authorises the work. A penetration test report is delivered after testing finishes and records what was found. If someone has asked you for one, the split below is what they expect to receive.

NIST SP 800-115 keeps them structurally apart: assessment planning is Section 6, reporting sits in Section 8 under post-testing activities, and Appendix B of the same guide is a rules of engagement template. Section 6.5 states that an assessment plan should answer five questions. They make a usable checklist to hold any proposed engagement against, including ours.

The five questions a test plan has to answer

What is the scope of the assessment?

The exact hosts, applications, API base paths and versions authorised for testing, and, just as importantly, the systems explicitly not authorised. In the report above that is Scope 1 (app.acmesaas.io) and Scope 2 (api.acmesaas.io/v2), with denial of service, social engineering, physical security and third-party SaaS integrations named as out of scope.

Who is authorised to conduct the assessment?

The named assessors and their credentials, plus the source addresses the traffic will come from, so your monitoring team does not open an incident on the test. In the report above the assessors are named on the cover page and again in Appendix B.

What are the assessment logistics?

The testing window, the environment (staging, production or both), the credentials and roles provided, the escalation contact, and the permitted testing hours. Above, that is 5 business days per scope, grey-box with a Member account and an Admin account, active testing against staging and read-only validation against production.

How should sensitive data be handled?

How evidence containing real customer data is collected, stored, transmitted and destroyed, and who is on the distribution list for the finished report. Appendix C above is that distribution list, including the row that gives an external auditor the compliance package and nothing else.

What should occur in the event of an incident?

What happens if testing disrupts a service, or if an assessor finds evidence that someone got there first: who is contacted, how quickly, and whether testing pauses while that is handled.

What belongs in each document

Question Test plan (agreed before) Test report (delivered after)
What is it for Authorises and bounds the work Evidences what was done and what was found
Targets Proposed targets and explicit exclusions Targets actually tested, plus anything that could not be reached
Timing The agreed testing window The dates testing actually ran and the date of issue
Method Standards to be applied and the access model (black, grey or white box) Standards actually applied, tools used, and how each finding was produced
Findings None. The plan predates the testing Severity, CVSS, evidence, business impact, remediation, current status
Signed by The client and the testing firm, before work starts The named assessors, at issue
Read by Procurement, legal, and the system owner authorising the test Engineering, leadership, auditors, enterprise customers, investors

In the sample above, the plan is visible inside the report. Section 2, Scope and Methodology, restates every element that was agreed before testing began: the two in-scope targets, the environments, the 5 business days per scope, the grey-box approach with two credential sets, the standards, the tools, and the out-of-scope list. That is deliberate. A report with a vague scope section cannot be checked against the engagement it claims to document, which is the first thing a reviewer tries to do.

A worked plan is easier to judge than a description of one. The plan for the engagement above is written out in full below, section by section, so you can hold a proposal you have been sent against it.

If your procurement or audit process needs the plan as a separate signed document before work can start, raise it when you get in touch and we will tell you what we can put in writing before kickoff.

Penetration Test Plan Example

The section above says what belongs in a test plan. This is one, written out. It is the plan for the same Acme SaaS engagement the report above documents, so the two can be read against each other: what was agreed before anyone tested anything, and what came back after.

A note on wording. If a procurement template, a security questionnaire or a vendor onboarding form asks you for an attack and penetration test plan, it is asking for this document. The phrasing differs between organisations. The contents do not.

The document that comes back attracts the same variation. A penetration test report, a penetration testing report and a VAPT report all name the artefact published on this page. What decides whether it is any good is not the label on the cover, it is whether the eight parts listed at the top of this page are actually in it and whether each finding can be reproduced from what is written down.

This is the plan for the sample engagement, reproduced so the shape of the document is visible and so you have something concrete to hold a proposal against. It is not a standing set of terms. On a real engagement the scope, the window, the rules of engagement and the escalation path are agreed with you and written down before testing starts.

1. Engagement and authorisation

Field Agreed value
ClientAcme SaaS Pvt. Ltd.
AssessorCyber Secify Consulting (OPC) Private Limited
Engagement reference2026-07-ACME
Engagement typeGrey-box penetration test, 2 scopes
Plan version1.0, agreed 29 June 2026
Authorised byHead of Engineering, Acme SaaS, as the owner of both in-scope systems
Lead assessorsRathnakara GN (OSCP), Ashok Kamat (CCIO)
ClassificationConfidential

2. Objectives

  1. Find what is exploitable. Identify vulnerabilities in the web application and the REST API that can actually be reached and used, before the next enterprise customer onboarding.
  2. Test what tools cannot. Authorisation, session handling and business logic, where a scanner has no view of who is supposed to be allowed to do what.
  3. Produce filable evidence. Findings recorded in a form that can go into SOC 2 and ISO 27001 audit preparation rather than being translated by hand afterwards.
  4. Close the loop. Confirm by retest that the fixes hold, before the audit window opens.

3. Authorised targets

Scope Target Type Environment
Scope 1app.acmesaas.ioWeb applicationStaging for active testing, production read-only
Scope 2api.acmesaas.io/v2REST APIStaging

Explicitly out of scope. The exclusions matter as much as the inclusions, because they are what a reviewer checks the report against later.

  • Denial of service, volumetric load and resource exhaustion testing.
  • Social engineering of Acme SaaS staff, including phishing and pretext calls.
  • Physical security assessment of any Acme SaaS location.
  • Third-party providers, named here as Stripe and AWS Cognito. Acme SaaS does not own them and therefore cannot authorise testing against them.
  • Any host, subdomain or API version not named in the table above, including systems that turn out to be reachable from an in-scope host.

4. Access model and credentials

  • Grey-box, authenticated. Testing runs from a standard Member account and an Admin account, both supplied by Acme SaaS at kickoff, so both external attacker and insider scenarios are covered.
  • Accounts created for the engagement. Test accounts are identifiable in application logs and removed at close. No production customer account is used.
  • No source code access. Source review is not part of this engagement, and the report will not claim coverage that reading the code would have given.
  • Source addresses declared. The addresses testing traffic originates from are given to Acme SaaS before kickoff, so the monitoring team does not open an incident on the test.

5. Window and logistics

Item Agreed
Active testing6 July 2026 to 17 July 2026
Duration10 business days, 5 business days per scope
Testing hours09:30 to 19:00 IST, Monday to Friday
Primary environmentStaging, confirmed at kickoff to run the same codebase and an equivalent security configuration to production
ProductionRead-only validation only. No state-changing requests
Client contactNamed engineering lead, reachable during testing hours
Assessor contactLead assessor, reachable during testing hours

6. Rules of engagement

  • No denial of service, volumetric load or resource exhaustion testing.
  • No modification or deletion of data outside the accounts created for this engagement.
  • Exploitation stops at proof. Access is demonstrated and recorded, and is not used to reach further than the finding requires.
  • Automated scanning is rate-limited so it does not degrade the staging environment for the Acme SaaS team working in it.
  • Critical findings are communicated to the escalation contact as soon as they are confirmed, rather than held back until the report is written.
  • If an assessor finds evidence that the environment was already compromised by someone else, testing stops and Acme SaaS is notified immediately.

7. Sensitive data and evidence handling

  • Testing is performed against staging data. Where a finding can only be demonstrated against production, the evidence is captured read-only.
  • Credentials, tokens and personal data appearing in evidence are redacted before the report is issued.
  • Evidence is held on assessor-controlled systems for the engagement and the retest window, then destroyed.
  • The report is classified Confidential and goes only to the distribution list agreed in this plan. Anyone outside that list needs written approval from Acme SaaS. The distribution list in the report above includes a row giving an external auditor the compliance package and nothing else.

8. Incident and escalation procedure

  • If testing disrupts a service, the assessor stops that activity, notifies the Acme SaaS contact, and does not resume on that target until Acme SaaS confirms.
  • If Acme SaaS needs testing paused for a release or an incident of their own, the window extends by the days lost rather than the scope being quietly reduced.
  • Both sides record what was paused and why, so the report can state accurately what the time-box did and did not cover.

9. Deliverables and sign-off

  • A v1.0 report at the close of active testing, with the status of every finding recorded as open.
  • One free retest within one month of the v1.0 report.
  • A v2.0 report at retest close, superseding v1.0, with the status of every original finding updated.
  • Founder-led consulting hours for remediation questions, as set out in the pentest plan purchased.
  • Signed by the system owner and the lead assessor before any testing traffic is sent. A penetration test without written authorisation from someone who owns the system is not a penetration test.

Every element above reappears in Section 2 of the report. That is the check worth running on any report you are handed: can you reconstruct the plan from the report, and does it match the one that was signed? If the scope section is vague, the answer is no, and there is no way to tell what the test actually covered.

See it in a real report

Everything above is easier to judge against an actual document. Our sample report is a full engagement, findings, evidence, retest and compliance mapping included, with nothing gated.

Read the sample report