• Home
  • Software
  • Measuring What Really Matters: End-to-End Code Coverage with Katalon and Symfony

Measuring What Really Matters: End-to-End Code Coverage with Katalon and Symfony

In software development, “test coverage” is often treated like a badge of quality. But 90% coverage in unit tests does not guarantee that your users’ real journeys are safe — it only proves that isolated parts of your code behave as expected. So how do you measure what really matters — whether your end-to-end experience holds up when backend and frontend come together?

This is the challenge we faced on a Symfony + Vue.js project. With Katalon as our E2E test runner, we dug into how to combine its browser-based tests with Symfony’s coverage metrics to gain true visibility into what our users — and our tests — actually touch.

The Challenge

Our automated tests already verified that the system worked correctly from a user’s point of view, whether they are logging in, submitting forms, calling APIs or processing data.
But we could not see which parts of the Symfony backend were being exercised during those tests.

In other words, we could prove that “the app works”, but not how deeply our tests covered the code that makes it work.

For any company that wants both confidence and accountability in its QA process, that gap is important.

The Solution

We built a bridge between Katalon’s end-to-end testing and Symfony’s backend coverage reporting. Instead of treating them as two separate worlds, we made them talk to each other.

Our Katalon tests still look the same — typical user journeys such as placing an order or searching for an article. The key difference: each test now triggers coverage tracking on the Symfony side.

To achieve this, we added a Test Listener in Katalon that sends requests to the Symfony backend:

  • Before each test, it tells Symfony to start tracking code coverage for that specific scenario.
  • After the test finishes, it signals Symfony to stop tracking.

Inside Symfony, we use the PCOV PHP extension to collect coverage data. Every test run produces its own small coverage file. Once all tests have completed, we merge these files into a single consolidated report — a complete picture of what our end-to-end tests effectively touched.

Unit and integration test data can also be combined, giving us a truly comprehensive view.

In the example above, you can see that line 265 was covered by three different tests. The result is a living, data-driven map of our codebase — one that helps us:

  • Identify which business flows are thoroughly tested end-to-end.
  • Spot backend areas that no test ever touches.
  • Prioritize future automation efforts based on real coverage data, not assumptions.

The Impact

Bringing these two worlds together improved the way we work as a team.

Everyone — from the developer writing a new feature to the person designing and running tests — now shares the same visibility into what’s truly covered. We can see exactly which parts of the code are exercised by real user journeys, understand how deep our testing goes, and communicate software quality to stakeholders with clear, visual data.

Ultimately, this approach moved us from “We tested it” to “We know how much of it is tested.”

Why It Matters for You

If your organization runs a modern web platform — especially one built on PHP or Symfony — this kind of integration can deliver real, measurable value. It increases confidence before deployment because you can see exactly what parts of the system have been tested. It helps reduce redundant or shallow tests by revealing where your coverage truly lies. On top of that, it provides hard data for audits and quality reports, turning testing from a gut feeling into a quantifiable process.

Most importantly, it strengthens the link between QA automation and actual product risk, ensuring that your testing effort directly supports your business goals.

Contact Us

If you are curious about how end-to-end coverage could improve the quality visibility in your own projects, our team would love to share more.
We have already proven the approach with Katalon and Symfony and can help you tailor it to your setup, whether you are focused on web, API, or enterprise integrations. We are more than happy to share our knowledge with you and help you with improving your testing strategies — get in touch with us!