Two services are often quoted under one name, and the confusion costs money in both directions: teams buy a penetration test when they needed a broad assessment, or a scan when they needed someone to actually break in. The distinction is not academic. It decides the price, the timeline, what the report can claim, and what an auditor will accept.

The one-sentence versions

A vulnerability assessment answers: what weaknesses exist across these systems, and how severe are they? It is broad, largely tool-driven, verified by a person, and produces a prioritised inventory.

A penetration test answers: can a motivated attacker achieve a specific goal against this target, and how? It is narrow, hypothesis-driven, performed by a person, and produces demonstrated impact — a chain, not a list.

How the work actually differs

Vulnerability assessment: breadth What is wrong, everywhere? host 1 host 2 host 3 host 4 host 5 host 6 host 7 host 8 Authenticated scan, configuration review Manual verification of results Prioritise by severity Inventory: findings, severity, fix Penetration test: depth What can be achieved, here? One goal, agreed rules of engagement A hypothesis: how could we get there? Manual exploitation Chaining the findings Demonstrated business impact Attack narrative + findings
An assessment goes wide and lists; a test goes deep and proves.
Vulnerability assessment Penetration test
Question What is wrong, everywhere? What can be achieved, here?
Breadth Every host, service and version in scope One application, network segment or goal
Method Authenticated scanning, configuration review, manual verification of results Manual exploitation, chaining, custom tooling, logic abuse
Exploitation No — findings are confirmed, not exploited Yes — within agreed rules of engagement
Standard CIS benchmarks, vendor baselines, CVE severity OWASP WSTG / ASVS, PTES, MITRE ATT&CK techniques
Output Inventory of findings with severity and fix Findings plus attack narrative and business impact
Typical duration Days One to three weeks
Repeatability Designed to run monthly or continuously Point in time, repeated annually or after major change
What it cannot tell you Whether the weaknesses combine into a breach Whether the other hundred systems are patched

The row that matters most is exploitation. An assessment confirms that a weakness is present; a test proves what it leads to. A missing security header and a broken object-level authorisation both appear in an assessment as findings. Only a test shows that the second one exposes every customer's records, and that is the sentence the board needs.

One weakness, two reports

Take that broken object-level authorisation, this time in an online shop's API, and look at how each service reports it.

An assessment, after its tool flagged the endpoint and a person confirmed it:

[High] Object-level authorisation not enforced (verified manually)
Endpoint:  GET /api/v1/orders/{id}   host: api.shop.example
Evidence:  order 10453 belongs to customer B; customer A's session got 200
Fix:       check on the server that the order belongs to the caller

A penetration test, with the goal agreed in advance ("read another customer's data without their account") and a sample size the rules of engagement allow:

Goal     read another customer's personal data without their account
Step 1   signed in as test customer A; order ids are sequential
Step 2   GET /api/v1/orders/10453 with A's session -> 200, customer B's order
Step 3   each order carries the customer's name, address and phone number
Step 4   50 consecutive ids in the agreed sample -> 50 different customers
Impact   any signed-in customer can read every customer's contact details
Cause    the API checks that a session exists, not who owns the order

Both are correct. The first tells the developer what to fix. The second tells the board what was at risk and for how many people, and that is the line that moves a fix to the top of the queue.

Note: a flaw in business logic like this one is often invisible to a scanner. An assessment lists it only when the person verifying the results looks for it, which is one more reason a penetration test starts from a goal rather than from a tool's output.

What each is for

Order an assessment when you need coverage: a first look at an estate, a compliance requirement for periodic scanning, a check after a patch cycle, or a baseline before a larger programme. It is the right tool for "we don't know what we have" and for "prove we are patched".

Order a penetration test when you need assurance about something specific: a new customer-facing application before launch, a payment or identity flow, an internal network after a merger, a system that handles regulated data, or a claim you are about to make to a customer or regulator. It is the right tool for "could someone get in through this" and for "what would they get".

Order both, sequenced, when an estate has never been looked at. Assess first to fix the obvious and reduce noise; test second so the tester's time goes to logic and chains rather than to unpatched services a scanner would have listed for a fraction of the cost.

Three mistakes we see in procurement

  1. Buying a test and receiving a scan. If the proposal has no named tester, no rules of engagement, no exploitation clause and a fixed price per host, it is an assessment. That may be fine — but pay assessment prices for it.
  2. Buying a scan and calling it a test. Compliance frameworks that require a "penetration test" mean manual exploitation. A scanner report with a new cover will not survive a competent audit.
  3. Testing before assessing. A penetration tester who spends the first week on missing patches is doing an assessment at test rates.

How to read the price

An assessment is priced by breadth: hosts, IPs, applications. A penetration test is priced by time: days of a named person against a defined target. If a quote for a "penetration test" is priced per host, or a quote for an "assessment" is priced per day with a goal, the vendor is describing the other service. Ask them to rename it, then compare like with like.

A rule for this quarter

If you cannot yet list your internet-facing systems with their versions, buy the assessment. If you can, and one of them is about to carry money, identities or regulated data, buy the test for that one. Almost nobody needs a penetration test of everything; almost everybody needs an assessment of everything and a penetration test of the two or three things that matter.

Can you list your internet-facing systems with their versions? No Vulnerability assessment of everything Yes Is one of them about to carry money, identities or regulated data? Yes Penetration test of that one No Keep assessing regularly (monthly, and after each patch cycle) Never been looked at? Assess first, so the obvious is fixed; then test, so the tester’s time goes to logic and chains.
The rule for this quarter, as a decision.