November 5, 2026
Your Releases Ship Weekly. Why Does Your Pentest Run Once a Year?
Picture the usual rhythm. Sometime in the first quarter, someone books a penetration test for June. In June, testers spend two weeks inside…

By Tara Maheshwari
4 min read
Picture the usual rhythm. Sometime in the first quarter, someone books a penetration test for June. In June, testers spend two weeks inside your application. In July, a PDF arrives, gets discussed in one meeting, and settles into a shared drive, where it will be quoted in every security questionnaire for the next 11 months.
Meanwhile, your engineers ship every week.
I don't think anyone designed it this way on purpose. The annual pentest made complete sense when software changed a few times a year, and the habit stayed long after release cycles shrank from quarters to days. My view is that the fix is smaller than it sounds, and it starts with changing what decides when a test happens.
Below is the four-step blueprint I'd use to get there, built around one idea: testing should follow your releases.
How the Annual Pentest Became a Calendar Event
Most annual tests are shaped by procurement more than by engineering. There's a budget line, a vendor, a scoping call, and a statement of work. Each of those takes time, so the test gets booked months ahead, like a dentist appointment nobody is especially looking forward to.
Compliance adds its own gravity. Customer questionnaires and audit frameworks often ask whether you've had a penetration test in the last 12 months, and a yearly engagement answers that neatly. Over time, "did we test this year" quietly replaced "is what we shipped last week safe" as the question the whole program was built to answer.
The funny part is that even PCI DSS, the standard many teams associate with the annual test, asks for two things. Requirement 11.4 calls for penetration testing at least once every 12 months, and again after any significant infrastructure or application change. Most programs remember the first half.
What Changes Between Two Annual Tests
A pentest report describes your application as it existed during the test window. That's simply what a report is: a dated snapshot of one build.
Between one engagement and the next, a typical product picks up a new login method, a pricing change, a new payment provider, a data export someone in sales asked for, and a few integrations nobody quite remembers approving. Each of those is exactly the kind of change attackers poke at first, and none of them existed when the last report was written.
So a clean report from last June tells you a great deal about last June. For everything shipped since, it's mostly silent.
Tier Your Applications by Risk and Change Rate
On-demand testing works best when you're selective about where it starts. Testing everything constantly would be expensive, and a fast way to make your developers flinch every time someone says "pentest."
Start by asking two questions about each application: what data does it handle, and how often does it change? An app that moves money or personal data and ships weekly is tier 1. A partner dashboard that handles orders and changes monthly is tier 2. The internal wiki that holds the lunch menu and hasn't changed since 2023 can stay on a slower cadence, and it will not mind.
Tier 1 apps move to on-demand testing first. Everything else can follow once the process is working.
Decide What Triggers a Test
This is the step that actually changes the program. Write down, in advance, the events that should start a test on a tier 1 app. A sensible first list looks like this:
- A major release
- A new or changed authentication flow
- A new payment or data export feature
- A new third-party integration
The important part is agreeing on this list before anyone needs it, including how a triggered test gets paid for. If every test needs a fresh purchase request, the trigger list becomes a wish list, and the release ships while the purchase order is still waiting for a signature.
A triggered test should also end with something a developer can act on straight away: the request that proves the issue, the response that confirms it, and a retest once it's fixed. If you haven't seen what that looks like in practice, this sample report is a useful reference point.
Keep Deep Testing Where It Counts
On-demand tests cover each release. A scheduled deep engagement still earns its place, and in my view it actually gets more valuable in this model.
There are two reasons. Regulators and enterprise customers often want a formal report from a defined engagement. And some areas, like complex business logic or attack paths that chain across several services, deserve a longer, focused look.
The difference is in how that engagement gets scoped. It starts from what the on-demand tests already found: the areas that kept producing findings and the flows that changed most. A penetration test scoped that way spends its days where the risk actually sits, which is a much better use of a fixed window than rediscovering the same login page every June.
Track Two Numbers That Show It's Working
You'll want proof the new model is working, ideally before someone in finance asks for it. Two numbers do the job.
The first is the time from a code change to a verified finding. It tells you how long a flaw lives in production before anyone knows about it, and under an annual model that can be most of a year.
The second is the time from a verified finding to a verified fix, retest included. It tells you how quickly a known issue actually gets closed.
Both should fall as testing moves closer to your releases. I like these two because they measure exposure directly. A count of findings on its own can't tell you whether the program is getting better or the testers are getting tired.
Start With One Application
The quickest way to stall all of this is to roll it out across every app at once. Pick your highest-risk tier 1 application and run its next release through the blueprint over 30 days:
- Week 1: tier your top 10 applications
- Week 2: write the trigger list for one tier 1 app
- Week 3: run one release-triggered test
- Week 4: record both numbers
At the end of the month you'll have a working example with real numbers attached, which makes the conversation about rolling it out much easier to have.
Where This Leaves the Annual Pentest
It stays, mostly. It just stops being the whole program.
The annual engagement becomes the deep check that sits on top of release-driven testing, scoped by everything that testing turned up during the year. Your team gets security feedback while the code is still fresh in everyone's heads, and the yearly report finally describes an application that looks something like the one you're running.
Here's a small exercise before you close this tab: open the calendar invite for your next pentest and count the releases scheduled before it. If that number makes you slightly uneasy, you're in good company. It's the reason my team at CredShields built CredShields One, so each of those releases can be tested as it ships.
If you'd like a hand getting started, tell us what you're shipping next quarter. We'll help you pick your tier 1 apps and draft the trigger list for the first one, and you'll leave with a plan you can use either way.