Penetration testing guide

How often should you run a penetration test?

Once a year is the common answer and it is an artefact of audit cycles rather than a security judgement. A test describes a system on the days it ran, and if you deploy weekly then the report is describing software that no longer exists within a month. Annual testing still has a purpose as a floor and as evidence, but treating the calendar as the trigger means you test a system at an arbitrary moment and skip the changes that actually altered your exposure.

Why is annual testing the wrong default?

Because the interval bears no relationship to the rate at which your attack surface changes. An application under active development receives hundreds of changes between tests, including new endpoints, new integrations, changed authorisation logic and new third party dependencies. None of that is covered by a report written eleven months ago, and the older the report the more of its value is historical.

The compliance framing reinforces the habit. Schemes such as PCI DSS require testing at least annually and additionally after significant change, and organisations reliably implement the first half of that sentence and treat the second as optional. The second half is the part that tracks risk.

There is also a quieter cost. A single large annual engagement concentrates all findings into one period, produces a backlog nobody can absorb, and creates a predictable scramble before the next assessment. Smaller, more frequent engagements aimed at what changed produce fewer findings per cycle and a remediation load a team can actually clear.

What should trigger a test?

Change to the things that decide who can reach what. Not every release qualifies, and treating every deployment as a trigger is how testing budgets get exhausted in a quarter. The triggers below are the ones where a test reliably finds something, and the right scope for each is usually narrow.

TriggerWhy it mattersSensible scope
New authentication or authorisation modelThe most common source of severe findingsTargeted test of the auth flows and role boundaries
A new externally exposed service or APIAdds surface that no previous test coveredFocused test of the new interface and its backend
Migration to a new platform or cloud accountIdentity, network policy and defaults all changeConfiguration review plus assumed breach test
Acquisition or inherited estateUnknown assets and undocumented accessDiscovery first, then targeted testing
A real incident or near missEstablishes whether the same path exists elsewhereTest the class of weakness, not just the entry point
New multi-tenant customer boundaryTenant isolation flaws are severe and easy to introduceTwo tenants, two accounts, one focused test
A regulatory or contractual deadlineEvidence requirement rather than a risk oneWhatever the scheme actually specifies

How often for a system that ships weekly?

Split the problem. Continuous automated checks in the pipeline for the classes of issue automation is good at, a targeted human test on the triggers above, and one broader engagement a year that looks at the whole system rather than the recent diff. Most organisations shipping weekly land on two to four focused engagements per year plus automation, which is less expensive than it sounds because focused tests are short.

The broader annual engagement is worth keeping even with frequent targeted testing, because incremental tests inherit the previous scope's assumptions. Someone looking at the whole application with fresh eyes finds the things that accumulated between the seams of narrow engagements, and it is also the artefact auditors, customers and insurers ask for.

Rotate suppliers or at least testers on the annual engagement. Testers develop habits, and the second test by the same person against the same system tends to retrace the first. A different pair of eyes reliably finds a different class of thing, which is a cheap way to widen coverage without widening scope.

Does continuous scanning reduce how often you test?

It changes what the human test needs to cover rather than how often you need one. If a scanner and a pipeline gate are handling known vulnerabilities in dependencies and images continuously, the annual test should not be spending its days on patch levels, and you can direct that effort at logic and authorisation. That is a real gain, and it comes from the automation raising your baseline rather than from testing less.

In container estates the more useful continuous target is freshness rather than finding counts. A commitment that nothing running in production was built from a base image older than an agreed number of days keeps the known-vulnerability layer moving without human triage, and it is measurable from your own registry and cluster. Teams that track this find their scanner backlog shrinks without anybody working through it.

What automation does not do is reduce the need for testing after a change to identity, network policy or a trust boundary. Those are exactly the areas where scanners report nothing and where a misconfiguration is both easy to introduce and immediately consequential.

What counts as a significant change?

Write your own definition and keep it short, because if you do not, an assessor will apply theirs during an assessment. A workable definition covers anything that alters authentication or authorisation, anything that adds or removes an external interface, anything that changes network segmentation, any move between hosting environments or cloud accounts, and any change to how secrets are stored or distributed.

Things that are usually not significant, despite feeling like it: front end redesigns that do not touch the API, copy and content changes, dependency updates handled by the pipeline, and internal refactoring that leaves interfaces and permissions unchanged. Being explicit about the exclusions is what makes the definition usable rather than a licence for anybody to demand a test.

Keep a decision log. When a change is judged not significant, one line recording who decided and why converts an omission into a documented control, and it is the artefact that turns a difficult audit conversation into a short one.

How do you plan a calendar that survives a budget review?

Tie each engagement to an asset and a reason rather than to a date. A line item reading annual test for the whole estate is easy to defer. A line item reading test of the customer portal authorisation model, which handles payment data and is changing in the second quarter, is defensible because deferring it has a stated consequence.

Book capacity earlier than you need it. Competent testers are commonly booked weeks out, and the practical result of late booking is either a delay or whoever is available. If your test exists partly to satisfy a deadline, work backwards from the deadline through remediation time and retest time, not just the test dates.

A test you can run this week: list every internet-facing system you own, and next to each write the date it was last tested by a human. The rows with no date, or a date more than a year old on something holding customer data, are your calendar for the next twelve months, and the exercise takes an afternoon.

Common questions

How often should a penetration test be done?
At least annually as a floor, and additionally whenever something changes that decides who can reach what. For systems under active development, two to four focused engagements a year on specific changes, plus one broader annual test of the whole system, works better than a single large engagement. The annual date matters for evidence, but change is what actually alters exposure, so change should set most of the schedule.
What counts as a significant change requiring a retest?
Anything altering authentication or authorisation, adding or removing an external interface, changing network segmentation, moving between hosting environments or cloud accounts, or changing how secrets are stored and distributed. Front end changes that do not touch the API, content updates, pipeline-handled dependency bumps and internal refactoring usually do not qualify. Write your own definition, including the exclusions, before an assessor applies theirs.
Does continuous scanning replace penetration testing?
No, but it changes what the human test should cover. If a pipeline gate and a scanner are handling known vulnerabilities in dependencies and images continuously, the tester does not need to spend days on patch levels and can concentrate on authorisation and business logic. Automation cannot cover changes to identity, network policy or trust boundaries, which is precisely where misconfiguration is easiest to introduce and most consequential.
Should you use the same penetration testing firm every year?
Rotate at least the tester, and periodically the firm, for the broader annual engagement. Testers develop habits and a second look at the same system by the same person tends to retrace the first. A different assessor reliably surfaces a different class of issue, which widens coverage without widening scope or budget. Continuity has value for retesting and for understanding your estate, so rotate the depth work rather than everything.
How far in advance should you book a penetration test?
Weeks rather than days, because capable testers are commonly booked out and late requests get you whoever is free. If the test supports a deadline, work backwards from the deadline through retest time and remediation time as well as the testing days themselves. A test finishing the week a certificate is due leaves no room to fix anything, which converts findings into an evidence problem rather than a security one.
Is one large annual test better than several small ones?
Usually not for systems that change. A single large engagement concentrates every finding into one period, creating a backlog the team cannot absorb and a scramble before the next assessment. Smaller engagements aimed at what actually changed produce a remediation load that gets cleared. Keep one broader test in the cycle, though, because narrow tests inherit the previous scope's assumptions and miss what accumulates between them.

More on VAPT and penetration testing

Let’s create something out of this world together.

Have a project in mind? Contact us for expert design and development solutions. Let’s discuss how we can help grow your business.

Azaadi Offer

Claim a free security assessment

Until 31 August we're covering the cost of a full vulnerability assessment and penetration test. Mention it in your message and we'll scope it with you.

  • Web application testing, authenticated and unauthenticated
  • Mobile application testing across iOS and Android
  • External network and infrastructure assessment
  • Manual exploitation by engineers, not scanner output

Testing and the report are free. Fixing what we find is quoted separately, with no obligation to accept.

Read the full offer

Tell us what you are trying to build and we will tell you plainly whether we are the right people for it. Book a call with an expert to work through the detail, or ask for a fixed quote if the scope is already clear. No obligation either way.

Four fields is all we need to get started.

Fastnexa Logo

© 2026 fastnexa. All rights reserved.