All posts
Buying·June 12, 2026·7 min

How to scope a penetration test (without overpaying or under-testing)

How to scope a penetration test (without overpaying or under-testing)

Scoping decides the value of your penetration test before a single request is sent, and it is routinely treated as paperwork. The Penetration Testing Execution Standard is blunt about it: getting pre-engagement wrong invites scope creep, unhappy clients, and even legal trouble. Get it right and you spend every dollar on the parts of your system that actually carry risk. Here is how to do that.

Three things people blur together

Scope, boundaries, and rules of engagement are different documents doing different jobs, and confusing them is where engagements go wrong. Scope is what gets tested: the systems, applications, and data in play. Boundaries are the limits on that: what is explicitly off-limits and why. Rules of engagement are how the test is conducted: permitted techniques, testing windows, escalation paths for a critical finding, and who to call when something breaks. Write all three down. The ones you leave implicit are the ones that cause disputes.

What belongs in scope

Be concrete and exhaustive. List the applications and their environments, the URLs, domains, IP ranges, and ports, the user roles to be tested, and the data classes in play. Vagueness here does not save money; it just moves the argument to the middle of the engagement, when it is most expensive. A precise asset list is the single best predictor of a quote that holds.

The access decision is a scoping decision

How much access you grant is part of scope, and it is the lever with the most leverage. Lean toward giving the testers more, not less: accounts at every privilege level including an admin, an IP allowlist, documentation, and a production-like environment. This is not making the test easier, it is making it deeper, and it often lowers cost per finding by removing the days a black-box test would spend just getting in. We made the full argument in how much access should you give a pentester.

Exclusions carry equal legal weight

What you leave out matters as much as what you include, and not just for budget. You can only authorize testing of systems you actually control, so third-party services, your cloud provider's underlying infrastructure, and shared hosting belong in writing as out of scope. An exclusion is not an admission of weakness; it is the legal boundary that keeps an authorized test from becoming an unauthorized intrusion into someone else's systems. Name them deliberately so the boundary is a decision, not an accident.

A scoping checklist

  1. 01State the objective: why you are testing (compliance, a new release, due diligence) and what a good outcome looks like.
  2. 02Enumerate assets: every application, environment, URL, IP range, and port in scope.
  3. 03Define roles and access: which accounts and privilege levels the testers get, and how they receive them.
  4. 04Set the depth: surface check or thorough test of authorization, business logic, and chained paths.
  5. 05Write the exclusions: systems you cannot authorize, with the reason.
  6. 06Agree the rules of engagement: windows, permitted techniques, escalation path, and emergency contacts.
  7. 07Confirm deliverables: report format, severity scheme, criteria mapping, and whether a retest is included.

Good scoping is also where a modern engagement gets easier: point Uvy at the application, grant the access you can authorize, and the methodology runs against the boundary you defined, with every exploitable finding proven and the serious ones retested closed. See how it works.

Find every way in, before an attacker does

Uvy runs continuous offense and defense across your applications, agents, and embodied AI, at machine speed, and hands your team proof and the exact fix. Start with an application pentest, or talk to sales to cover the rest.

Free to test. No card to start.

Or write to [email protected]