QA & Testing

Application security testing aligned to OWASP

Most exploited vulnerabilities fall into a small number of well-understood categories. Testing for those systematically catches most of the risk.

Key takeaways

  • Broken access control is the most common serious finding.
  • Four automated scan types cover different vulnerability classes.
  • Business logic flaws need a person who understands the domain.
  • Rank by exploitability and always verify the fix.

Start with access control

Broken access control is consistently the most common serious finding. Test that a user cannot reach another user's data by changing an identifier, that role restrictions are enforced server-side, and that hidden interface elements are not the only protection.

This testing is straightforward and finds serious issues regularly. It should be routine rather than reserved for a formal assessment.

Layer the automation

  • Dependency scanning — known vulnerabilities in libraries, the cheapest useful check.
  • Static analysis — injection and unsafe patterns in your own code.
  • Dynamic scanning — probing the running application.
  • Secret scanning — credentials in the repository.

Each finds different classes of problem, and all four run automatically in a pipeline for modest effort.

Manual testing finds the logic flaws

Automated scanners find technical vulnerabilities. They do not find business logic flaws: a discount applied twice, a workflow step bypassed, a negative quantity accepted.

These require someone who understands the domain thinking about how the rules could be subverted, and they are frequently the most damaging findings.

Fix in priority order and re-test

Rank by exploitability and impact rather than by scanner severity alone. A medium-severity issue on an authenticated administrative page may matter less than a low-severity one on a public endpoint.

Re-test after fixing, and record the outcome. A finding marked resolved without verification is a finding that is often still present.

Keeping dependencies under control

Vulnerable dependencies are the most common security finding and the easiest to manage, provided it is routine rather than reactive.

Automate scanning on every build, set a policy for what severity blocks a release, and schedule regular updates so the gap between your versions and current ones stays small. Large version jumps are what make dependency updates risky.

Maintain a software bill of materials so that when a widely used package has a serious disclosure, you can answer whether you are affected in minutes rather than days.


Frequently asked questions

No. It covers technical vulnerability classes and misses logic flaws and access control issues that depend on understanding the application.

Dependency and secret scanning continuously; dynamic scanning per release; a deeper manual assessment periodically and after significant architectural change.

For systems handling payments, health or personal data it is usually expected and often contractually required. It also provides an independent view that internal testing cannot.

Working on this?

A conversation with our team, no charge and no obligation.

Book a conversation