{"id":9338,"date":"2026-04-22T08:43:00","date_gmt":"2026-04-22T06:43:00","guid":{"rendered":"https:\/\/www.almtoolbox.com\/blog\/?p=9338"},"modified":"2026-06-01T08:51:31","modified_gmt":"2026-06-01T06:51:31","slug":"sonarqube-test-coverage-overview","status":"publish","type":"post","link":"https:\/\/www.almtoolbox.com\/blog\/sonarqube-test-coverage-overview\/","title":{"rendered":"How Code Coverage in SonarQube Helps Developers, QA Managers, DevOps, R&#038;D Managers, and Security Managers"},"content":{"rendered":"\n<figure class=\"wp-block-image box-shadow\"><img decoding=\"async\" src=\"https:\/\/www.almtoolbox.com\/blog_he\/wp-content\/uploads\/2026\/04\/sonarqube-coverage-1024x396.jpg\" alt=\"sonarqube coverage\" class=\"wp-image-13749\"\/><\/figure>\n\n\n\n<div class=\"wp-block-image box-shadow\">\n<figure class=\"aligncenter size-large is-resized\"><\/figure>\n<\/div>\n\n\n\n<p>In recent years, <em>SonarQube<\/em> has become the de facto standard for monitoring code quality and code security in high-tech and enterprise organizations, including in Israel.<\/p>\n\n\n\n<p>One of the most important metrics that SonarQube displays is <strong><em>Code Coverage<\/em><\/strong> \u2013 code coverage, <br>which measures how much of your executed code is actually &#8220;touched&#8221; by your automated tests.<\/p>\n\n\n\n<p>In this article, we will explain to developers, team leads, and R&amp;D managers:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>What is Code Coverage, and what can SonarQube do with it?<\/li>\n\n\n\n<li>How does SonarQube actually work with code coverage (JaCoCo, Cobertura, Coverage.py, Jest, and more)?<\/li>\n\n\n\n<li>What are the benefits for each role \u2013 developers, team leads, R&amp;D managers, and DevOps?<\/li>\n\n\n\n<li>What code coverage capabilities are available in each SonarQube edition (Community \/ Developer \/ Enterprise)?<\/li>\n\n\n\n<li>Practical tips for setting up Quality Gates and coverage thresholds, including working with GitLab \/ GitHub \/ Azure DevOps.<\/li>\n<\/ol>\n\n\n\n<div class=\"wp-block-spacer\" style=\"height: 27px;\" aria-hidden=\"true\">&nbsp;<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">What is Code Coverage anyway \u2013 and why should you care?<\/h2>\n\n\n\n<p>Code Coverage measures what part of your code is actually executed by unit, integration, and End-to-End tests.<\/p>\n\n\n\n<p>It doesn&#8217;t tell you if the tests are &#8220;good&#8221;, but it does tell you whether they even touch sensitive code before you promote the code further.<\/p>\n\n\n\n<p>SonarQube uses code coverage as a core metric in the <em>Quality Gate<\/em> \u2013 <br>a quality gate that decides whether a version or Merge Request is &#8220;healthy&#8221; enough to proceed further toward integration and release.<\/p>\n\n\n\n<p>For example, you can decide not to approve a merge if the <strong>Coverage on New Code<\/strong> is below 80%.<\/p>\n\n\n\n<div class=\"wp-block-spacer\" style=\"height: 27px;\" aria-hidden=\"true\">&nbsp;<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Important to understand: SonarQube does not run tests \u2013 it analyzes reports<\/h2>\n\n\n\n<p>Critical point: SonarQube <strong>does not run the tests<\/strong> and does not calculate coverage on its own. It relies on reports that have already been generated by your standard tools:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>For Java \u2013 usually JaCoCo.<\/li>\n\n\n\n<li>For JavaScript \/ TypeScript \u2013 usually Jest \/ nyc \/ Istanbul in lcov format.<\/li>\n\n\n\n<li>For Python \u2013 Coverage.py (with pytest-cov, etc.).<\/li>\n\n\n\n<li>For .NET \u2013 Visual Studio Coverage, dotCover, OpenCover, and more.<\/li>\n<\/ul>\n\n\n\n<p>The CI (GitLab CI, GitHub Actions, Jenkins, Azure DevOps, etc.) runs the tests and generates coverage reports; SonarScanner reads the reports, imports them into SonarQube, and displays them uniformly, <br>including impact on the Quality Gate and Pull\/Merge Request decoration.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Which coverage metrics does SonarQube display?<\/h2>\n\n\n\n<p>Unlike tools that display only Line Coverage, SonarQube calculates a combined Coverage metric that merges line coverage and condition (branch) coverage.<\/p>\n\n\n\n<p>Behind the scenes, it uses a formula that factors in executable lines, covered lines, conditions evaluated to true \/ false, and more.<\/p>\n\n\n\n<p>The main metrics you will see on the dashboard:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Coverage<\/strong> \u2013 Combined coverage percentage (lines + conditions) at the project, module, or file level.<\/li>\n\n\n\n<li><strong>Lines to cover \/ Uncovered lines<\/strong> \u2013 How many lines of code should be covered, and how many of them still lack tests.<\/li>\n\n\n\n<li><strong>Conditions to cover \/ Uncovered conditions<\/strong> \u2013 Coverage of branches and boolean expressions.<\/li>\n\n\n\n<li><strong>Coverage on New Code<\/strong> \u2013 Coverage of new or modified code since the baseline according to SCM (Clean as You Code).<\/li>\n<\/ul>\n\n\n\n<p>Coverage on New Code is the most significant metric for SonarQube \u2013 the built-in &#8220;Sonar way&#8221; Quality Gate is based on it.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What it actually looks like: dashboards, files, and Pull Requests<\/h2>\n\n\n\n<p>SonarQube displays code coverage at several levels of detail:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"box-shadow\"><strong>At the project level<\/strong> \u2013 General coverage, Coverage on New Code, trends over time, and the Leak Period (from which date &#8220;new&#8221; code is evaluated).<br><figure><img loading=\"lazy\" decoding=\"async\" sizes=\"auto, (max-width: 444px) 100vw, 444px\" srcset=\"https:\/\/www.almtoolbox.com\/blog_he\/wp-content\/uploads\/2026\/04\/coverage-new-code.jpg 444w, https:\/\/www.almtoolbox.com\/blog_he\/wp-content\/uploads\/2026\/04\/coverage-new-code-300x127.jpg 300w\" width=\"444\" height=\"188\" class=\"wp-image-13753\" style=\"width: 444px;\" src=\"https:\/\/www.almtoolbox.com\/blog_he\/wp-content\/uploads\/2026\/04\/coverage-new-code.jpg\" alt=\"sonarqube new code coverage\"><\/figure><\/li>\n\n\n\n<li class=\"box-shadow\"><strong>At the file level<\/strong> \u2013 Lines highlighted as covered\/uncovered, count of uncovered lines and conditions, quick navigation to problematic areas.<br><figure><img loading=\"lazy\" decoding=\"async\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" srcset=\"https:\/\/www.almtoolbox.com\/blog_he\/wp-content\/uploads\/2026\/02\/sonar-images-mix-1.webp 800w, https:\/\/www.almtoolbox.com\/blog_he\/wp-content\/uploads\/2026\/02\/sonar-images-mix-1-300x225.webp 300w, https:\/\/www.almtoolbox.com\/blog_he\/wp-content\/uploads\/2026\/02\/sonar-images-mix-1-768x576.webp 768w\" width=\"300\" height=\"225\" class=\"wp-image-13258\" style=\"width: 300px;\" src=\"https:\/\/www.almtoolbox.com\/blog_he\/wp-content\/uploads\/2026\/02\/sonar-images-mix-1.webp\" alt=\"sonar diagrams\"><\/figure><\/li>\n\n\n\n<li><strong>At the Pull\/Merge Request level<\/strong> \u2013 Coverage percentage on new code, number of uncovered lines and conditions, and the Quality Gate result (Passed \/ Failed) directly in the PR screen in GitLab \/ GitHub \/ Azure DevOps \/ Bitbucket.<\/li>\n<\/ul>\n\n\n\n<p>If Coverage appears in the dashboard but not in the PR decoration, in most cases, this indicates a configuration issue (project binding, sonar.pullrequest.*, or report format) rather than a SonarQube limitation.<\/p>\n\n\n\n<p>&#x1f4a1; A comprehensive review of <a href=\"https:\/\/www.almtoolbox.com\/blog_he\/download-review-sonarqube-measure-charts\/\" target=\"_blank\" rel=\"noreferrer noopener\">SonarQube metric charts can be downloaded here<\/a>.<\/p>\n\n\n\n<div class=\"wp-block-spacer\" style=\"height: 28px;\" aria-hidden=\"true\">&nbsp;<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Code Coverage by Role: Developers, Team Leads, R&amp;D Managers<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">For Developers<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Easily see where tests are missing \u2013 red lines, uncovered conditions, or &#8220;red&#8221; layers and modules.<\/li>\n\n\n\n<li>The Quality Gate on new code ensures that if your tests do not provide sufficient coverage, the PR will be automatically rejected.<\/li>\n\n\n\n<li>With SonarLint \/ SonarQube for IDE, coverage and quality issues can be seen directly in the IDE before pushing (especially in commercial editions).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">For Tech Leads \/ Team Leads<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Full transparency \u2013 View coverage by modules, libraries, and teams; easily identify &#8220;gaps&#8221; in automation.<\/li>\n\n\n\n<li>Define a unified Quality Gate for the entire team \u2013 e.g., 80\u201390% Coverage on new code, and 0 security vulnerabilities.<\/li>\n\n\n\n<li>PR decoration integrates coverage naturally into code reviews without needing to open another system.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">For R&amp;D Managers \/ VP Engineering \/ CTO<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>In the Enterprise Edition, you can get a high-level status of coverage and quality across dozens and hundreds of projects using Portfolios and breakdowns by team, system, or technology.<\/li>\n\n\n\n<li>Code coverage becomes a real KPI \u2013 allowing you to measure quarterly trends, support struggling teams, and demonstrate long-term quality improvement.<\/li>\n\n\n\n<li>In Israeli organizations operating in regulated environments (fintech, medical, defense), high code coverage on new code is a basic compliance requirement.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">SonarQube Editions and Code Coverage: What do you get in each edition?<\/h2>\n\n\n\n<p>The core code coverage logic is identical across all editions \u2013 SonarQube always imports external coverage reports and calculates Coverage \/ Coverage on New Code. The difference lies in the surrounding features:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Community Edition<\/strong> \u2013 Coverage on the main branch only, without Branch Analysis and without PR decoration. Best suited for small teams or PoCs.<\/li>\n\n\n\n<li><strong>Developer Edition<\/strong> \u2013 Full branch analysis (Branch Analysis) + PR decoration for GitLab, GitHub, Bitbucket, and Azure DevOps; this is where code coverage becomes part of the daily Merge Flow.<\/li>\n\n\n\n<li><strong>Enterprise Edition<\/strong> \u2013 Everything in Developer, plus Portfolios, executive reporting, and advanced capabilities (Advanced Security, SBOM, etc.) that enable organization-wide visibility of coverage and quality.<\/li>\n<\/ul>\n\n\n\n<p>For a more detailed comparison between editions \u2013 contact us (details below).<\/p>\n\n\n\n<div class=\"wp-block-spacer\" style=\"height: 25px;\" aria-hidden=\"true\">&nbsp;<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Typical Workflow: GitLab \/ GitHub + SonarQube + Code Coverage<\/h2>\n\n\n\n<p>In many organizations, we see a similar pipeline:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>A developer opens a branch or Merge Request in GitLab \/ GitHub.<\/li>\n\n\n\n<li>The pipeline runs tests with coverage (e.g., mvn test + JaCoCo, pytest-cov for Python, Jest for React\/Node) and generates XML \/ lcov reports.<\/li>\n\n\n\n<li>A SonarScanner job runs after the tests, pointing to the reports<br>(e.g., sonar.javascript.lcov.reportPaths=coverage\/lcov.info, sonar.python.coverage.reportPaths=coverage.xml, etc.).<\/li>\n\n\n\n<li>SonarQube imports the reports, calculates Coverage and Coverage on New Code, and updates the Quality Gate status.<\/li>\n\n\n\n<li>The Quality Gate status and Coverage on New Code are written back to the PR as a status\/comment. If set to Blocking, the Merge will be automatically blocked if coverage is too low.<\/li>\n<\/ol>\n\n\n\n<p>This pattern also works exceptionally well in Self-Hosted \/ Air-Gapped environments \u2013 an important point for Enterprise and Security organizations in Israel.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Best Practices: How to Set Smart Thresholds for Code Coverage?<\/h2>\n\n\n\n<p>Based on our experience with clients, and also following Sonar community recommendations, it&#8217;s best to start with a pragmatic approach:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Coverage on New Code<\/strong> \u2013 Set a Quality Gate threshold of 80\u201390% (not 100%), to avoid blocking teams on non-critical corner cases.<\/li>\n\n\n\n<li><strong>Legacy Code<\/strong> \u2013 Do not demand high coverage on all existing code by default; focus on Clean as You Code \u2013 anything written or changed from now on must be well covered.<\/li>\n\n\n\n<li><strong>Different thresholds by service type<\/strong> \u2013 Sometimes it makes sense to be stricter on critical services (Billing, Auth) and slightly more flexible with internal tools.<\/li>\n\n\n\n<li><strong>A unified Quality Gate across the organization<\/strong> \u2013 but with the option to override for exceptional projects, to maintain both standards and flexibility.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">What&#8217;s new in recent years around code coverage and AI?<\/h2>\n\n\n\n<p>In recent SonarQube versions (2025\u20132026), SonarSource is adding more languages, performance improvements, and Advanced Security\/SCA, but the code coverage mechanism remains stable: importing external reports, calculating Coverage, and applying it to new code and Quality Gates.<\/p>\n\n\n\n<p>At the same time, AI-native capabilities have been added (such as AI CodeFix, IDE integrations, and Agentic SDLC) that help fix discovered issues \u2013 but they do not replace automated tests or eliminate the need for high code coverage.<\/p>\n\n\n\n<div class=\"wp-block-spacer\" style=\"height: 33px;\" aria-hidden=\"true\">&nbsp;<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">How can ALM Toolbox help you get more out of code coverage in SonarQube?<\/h2>\n\n\n\n<p>ALM Toolbox is the official distributor of SonarQube and SonarCloud in Israel, supporting organizations and startups in the setup, upgrade, and implementation of the Sonar platform \u2013 including full integration of code coverage with GitLab, GitHub, Azure DevOps, Jenkins, TeamCity, and more.<\/p>\n\n\n\n<p>We provide:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Consulting on choosing the right edition (Community \/ Developer \/ Enterprise \/ Data Center).<\/li>\n\n\n\n<li>Architecture and setup in On-Prem, Cloud, or isolated (Air-Gapped) environments.<\/li>\n\n\n\n<li>CI\/CD pipeline planning with code coverage for Java, .NET, Python, JavaScript\/TypeScript, Go, C++\/C, and more.<\/li>\n\n\n\n<li>Training for development, DevOps, and AppSec teams \u2013 including Best Practices for Coverage and Quality Gates.<\/li>\n\n\n\n<li>Managed services (Managed SonarQube) for organizations that want &#8220;not to worry about infrastructure.&#8221;<\/li>\n\n\n\n<li>Assistance in choosing the appropriate licensing for SonarQube \/ SonarCloud and license sales.<\/li>\n<\/ul>\n\n\n\n<p>We would be happy to help you build a Code Review and code coverage workflow that suits your team, the languages you work with, and the regulations under which you operate.<br><em><strong>Contact us:<\/strong> <a href=\"mailto:sonarqube@almtoolbox.com\" target=\"_blank\" rel=\"noreferrer noopener\">sonarqube@almtoolbox.com<\/a> or <em>by phone:\u00a0866-503-1471<\/em>\u00a0(USA \/ Canada) or +31 85 064 4633<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Relevant Links:<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.almtoolbox.com\/il\/sonarqube\" target=\"_blank\" rel=\"noreferrer noopener\">SonarQube Israel Website (Hebrew)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.almtoolbox.com\/blog_he\/download-review-sonarqube-measure-charts\/\" target=\"_blank\" rel=\"noreferrer noopener\">Overview of charts and graphs available from SonarQube<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/docs.sonarqube.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">Technical information about the product<\/a><\/li>\n<\/ul>\n\n\n\n<h5 class=\"wp-block-heading\">This article was first published in March 2023 and has been updated several times since.<\/h5>\n\n\n\n<div class=\"wp-block-spacer\" style=\"height: 31px;\" aria-hidden=\"true\">&nbsp;<\/div>\n","protected":false},"excerpt":{"rendered":"<p>An explanation of code coverage in SonarQube: how to measure Coverage correctly, integrate coverage reports with code management tools, define smart Quality Gates, and improve code quality.<\/p>\n","protected":false},"author":10,"featured_media":9337,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[383,444,347,1],"tags":[793,792,384,795,796,798,434,794,799,797,804,808,803,800,807,802,806,805],"class_list":["post-9338","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sonarcloud","category-sonarlint","category-sonarqube","category-uncategorized","tag-alm-toolbox","tag-azure-devops-sonarqube","tag-clean-as-you-code","tag-code-coverage","tag-code-coverage-github","tag-code-coverage-gitlab","tag-code-quality","tag-devops-israel","tag-devsecops-israel","tag-github-sonarqube","tag-gitlab-sonarqube","tag-jenkins-sonarqube","tag-qa","tag-sonarqube","tag-sonarqube-code-coverage","tag-sonarqube-developer-edition","tag-sonarqube-enterprise-edition","tag-sonarqube-quality-gate"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How Code Coverage in SonarQube Helps Developers, QA Managers, DevOps, R&amp;D Managers, and Security Managers - ALMtoolbox News<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.almtoolbox.com\/blog\/sonarqube-test-coverage-overview\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How Code Coverage in SonarQube Helps Developers, QA Managers, DevOps, R&amp;D Managers, and Security Managers - ALMtoolbox News\" \/>\n<meta property=\"og:description\" content=\"An explanation of code coverage in SonarQube: how to measure Coverage correctly, integrate coverage reports with code management tools, define smart Quality Gates, and improve code quality.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.almtoolbox.com\/blog\/sonarqube-test-coverage-overview\/\" \/>\n<meta property=\"og:site_name\" content=\"ALMtoolbox News\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/almtoolbox.israel\/\" \/>\n<meta property=\"article:published_time\" content=\"2026-04-22T06:43:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-01T06:51:31+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/\/2026\/06\/sonarqube-coverage.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1112\" \/>\n\t<meta property=\"og:image:height\" content=\"430\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Tamir Gefen\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@Dikla\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Tamir Gefen\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/sonarqube-test-coverage-overview\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/sonarqube-test-coverage-overview\/\"},\"author\":{\"name\":\"Tamir Gefen\",\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/#\/schema\/person\/409e35aa3486f92208065230bb6ebb63\"},\"headline\":\"How Code Coverage in SonarQube Helps Developers, QA Managers, DevOps, R&#038;D Managers, and Security Managers\",\"datePublished\":\"2026-04-22T06:43:00+00:00\",\"dateModified\":\"2026-06-01T06:51:31+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/sonarqube-test-coverage-overview\/\"},\"wordCount\":1564,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/sonarqube-test-coverage-overview\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/\/2026\/06\/sonarqube-coverage.jpg\",\"keywords\":[\"ALM\u2011Toolbox\",\"Azure DevOps SonarQube\",\"clean as you code\",\"code coverage\",\"code coverage GitHub\",\"code coverage GitLab\",\"code quality\",\"DevOps Israel\",\"DevSecOps Israel\",\"GitHub SonarQube\",\"GitLab SonarQube\",\"Jenkins SonarQube\",\"QA\",\"sonarqube\",\"SonarQube Code Coverage\",\"sonarqube developer edition\",\"SonarQube Enterprise Edition\",\"SonarQube Quality Gate\"],\"articleSection\":[\"SonarCloud\",\"SonarLint\",\"SonarQube\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.almtoolbox.com\/blog\/sonarqube-test-coverage-overview\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/sonarqube-test-coverage-overview\/\",\"url\":\"https:\/\/www.almtoolbox.com\/blog\/sonarqube-test-coverage-overview\/\",\"name\":\"How Code Coverage in SonarQube Helps Developers, QA Managers, DevOps, R&D Managers, and Security Managers - ALMtoolbox News\",\"isPartOf\":{\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/sonarqube-test-coverage-overview\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/sonarqube-test-coverage-overview\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/\/2026\/06\/sonarqube-coverage.jpg\",\"datePublished\":\"2026-04-22T06:43:00+00:00\",\"dateModified\":\"2026-06-01T06:51:31+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/sonarqube-test-coverage-overview\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.almtoolbox.com\/blog\/sonarqube-test-coverage-overview\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/sonarqube-test-coverage-overview\/#primaryimage\",\"url\":\"https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/\/2026\/06\/sonarqube-coverage.jpg\",\"contentUrl\":\"https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/\/2026\/06\/sonarqube-coverage.jpg\",\"width\":1112,\"height\":430},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/sonarqube-test-coverage-overview\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.almtoolbox.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How Code Coverage in SonarQube Helps Developers, QA Managers, DevOps, R&#038;D Managers, and Security Managers\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/#website\",\"url\":\"https:\/\/www.almtoolbox.com\/blog\/\",\"name\":\"ALMtoolbox News\",\"description\":\"All the news of ALMtoolbox\",\"publisher\":{\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.almtoolbox.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/#organization\",\"name\":\"ALMtoolbox\",\"url\":\"https:\/\/www.almtoolbox.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/\/2015\/10\/logo.png\",\"contentUrl\":\"https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/\/2015\/10\/logo.png\",\"width\":410,\"height\":190,\"caption\":\"ALMtoolbox\"},\"image\":{\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/almtoolbox.israel\/\",\"https:\/\/www.linkedin.com\/company\/almtoolbox\/\",\"https:\/\/www.youtube.com\/user\/GoMidjets\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/#\/schema\/person\/409e35aa3486f92208065230bb6ebb63\",\"name\":\"Tamir Gefen\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d3d4df00aa386b2805c42441dfebcedd46abf25846febb352f00c11524d994c4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d3d4df00aa386b2805c42441dfebcedd46abf25846febb352f00c11524d994c4?s=96&d=mm&r=g\",\"caption\":\"Tamir Gefen\"},\"sameAs\":[\"https:\/\/x.com\/Dikla\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How Code Coverage in SonarQube Helps Developers, QA Managers, DevOps, R&D Managers, and Security Managers - ALMtoolbox News","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.almtoolbox.com\/blog\/sonarqube-test-coverage-overview\/","og_locale":"en_US","og_type":"article","og_title":"How Code Coverage in SonarQube Helps Developers, QA Managers, DevOps, R&D Managers, and Security Managers - ALMtoolbox News","og_description":"An explanation of code coverage in SonarQube: how to measure Coverage correctly, integrate coverage reports with code management tools, define smart Quality Gates, and improve code quality.","og_url":"https:\/\/www.almtoolbox.com\/blog\/sonarqube-test-coverage-overview\/","og_site_name":"ALMtoolbox News","article_publisher":"https:\/\/www.facebook.com\/almtoolbox.israel\/","article_published_time":"2026-04-22T06:43:00+00:00","article_modified_time":"2026-06-01T06:51:31+00:00","og_image":[{"width":1112,"height":430,"url":"https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/\/2026\/06\/sonarqube-coverage.jpg","type":"image\/jpeg"}],"author":"Tamir Gefen","twitter_card":"summary_large_image","twitter_creator":"@Dikla","twitter_misc":{"Written by":"Tamir Gefen","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.almtoolbox.com\/blog\/sonarqube-test-coverage-overview\/#article","isPartOf":{"@id":"https:\/\/www.almtoolbox.com\/blog\/sonarqube-test-coverage-overview\/"},"author":{"name":"Tamir Gefen","@id":"https:\/\/www.almtoolbox.com\/blog\/#\/schema\/person\/409e35aa3486f92208065230bb6ebb63"},"headline":"How Code Coverage in SonarQube Helps Developers, QA Managers, DevOps, R&#038;D Managers, and Security Managers","datePublished":"2026-04-22T06:43:00+00:00","dateModified":"2026-06-01T06:51:31+00:00","mainEntityOfPage":{"@id":"https:\/\/www.almtoolbox.com\/blog\/sonarqube-test-coverage-overview\/"},"wordCount":1564,"commentCount":0,"publisher":{"@id":"https:\/\/www.almtoolbox.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.almtoolbox.com\/blog\/sonarqube-test-coverage-overview\/#primaryimage"},"thumbnailUrl":"https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/\/2026\/06\/sonarqube-coverage.jpg","keywords":["ALM\u2011Toolbox","Azure DevOps SonarQube","clean as you code","code coverage","code coverage GitHub","code coverage GitLab","code quality","DevOps Israel","DevSecOps Israel","GitHub SonarQube","GitLab SonarQube","Jenkins SonarQube","QA","sonarqube","SonarQube Code Coverage","sonarqube developer edition","SonarQube Enterprise Edition","SonarQube Quality Gate"],"articleSection":["SonarCloud","SonarLint","SonarQube"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.almtoolbox.com\/blog\/sonarqube-test-coverage-overview\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.almtoolbox.com\/blog\/sonarqube-test-coverage-overview\/","url":"https:\/\/www.almtoolbox.com\/blog\/sonarqube-test-coverage-overview\/","name":"How Code Coverage in SonarQube Helps Developers, QA Managers, DevOps, R&D Managers, and Security Managers - ALMtoolbox News","isPartOf":{"@id":"https:\/\/www.almtoolbox.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.almtoolbox.com\/blog\/sonarqube-test-coverage-overview\/#primaryimage"},"image":{"@id":"https:\/\/www.almtoolbox.com\/blog\/sonarqube-test-coverage-overview\/#primaryimage"},"thumbnailUrl":"https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/\/2026\/06\/sonarqube-coverage.jpg","datePublished":"2026-04-22T06:43:00+00:00","dateModified":"2026-06-01T06:51:31+00:00","breadcrumb":{"@id":"https:\/\/www.almtoolbox.com\/blog\/sonarqube-test-coverage-overview\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.almtoolbox.com\/blog\/sonarqube-test-coverage-overview\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.almtoolbox.com\/blog\/sonarqube-test-coverage-overview\/#primaryimage","url":"https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/\/2026\/06\/sonarqube-coverage.jpg","contentUrl":"https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/\/2026\/06\/sonarqube-coverage.jpg","width":1112,"height":430},{"@type":"BreadcrumbList","@id":"https:\/\/www.almtoolbox.com\/blog\/sonarqube-test-coverage-overview\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.almtoolbox.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How Code Coverage in SonarQube Helps Developers, QA Managers, DevOps, R&#038;D Managers, and Security Managers"}]},{"@type":"WebSite","@id":"https:\/\/www.almtoolbox.com\/blog\/#website","url":"https:\/\/www.almtoolbox.com\/blog\/","name":"ALMtoolbox News","description":"All the news of ALMtoolbox","publisher":{"@id":"https:\/\/www.almtoolbox.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.almtoolbox.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.almtoolbox.com\/blog\/#organization","name":"ALMtoolbox","url":"https:\/\/www.almtoolbox.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.almtoolbox.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/\/2015\/10\/logo.png","contentUrl":"https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/\/2015\/10\/logo.png","width":410,"height":190,"caption":"ALMtoolbox"},"image":{"@id":"https:\/\/www.almtoolbox.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/almtoolbox.israel\/","https:\/\/www.linkedin.com\/company\/almtoolbox\/","https:\/\/www.youtube.com\/user\/GoMidjets"]},{"@type":"Person","@id":"https:\/\/www.almtoolbox.com\/blog\/#\/schema\/person\/409e35aa3486f92208065230bb6ebb63","name":"Tamir Gefen","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.almtoolbox.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/d3d4df00aa386b2805c42441dfebcedd46abf25846febb352f00c11524d994c4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d3d4df00aa386b2805c42441dfebcedd46abf25846febb352f00c11524d994c4?s=96&d=mm&r=g","caption":"Tamir Gefen"},"sameAs":["https:\/\/x.com\/Dikla"]}]}},"_links":{"self":[{"href":"https:\/\/www.almtoolbox.com\/blog\/wp-json\/wp\/v2\/posts\/9338","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.almtoolbox.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.almtoolbox.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.almtoolbox.com\/blog\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/www.almtoolbox.com\/blog\/wp-json\/wp\/v2\/comments?post=9338"}],"version-history":[{"count":2,"href":"https:\/\/www.almtoolbox.com\/blog\/wp-json\/wp\/v2\/posts\/9338\/revisions"}],"predecessor-version":[{"id":9341,"href":"https:\/\/www.almtoolbox.com\/blog\/wp-json\/wp\/v2\/posts\/9338\/revisions\/9341"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.almtoolbox.com\/blog\/wp-json\/wp\/v2\/media\/9337"}],"wp:attachment":[{"href":"https:\/\/www.almtoolbox.com\/blog\/wp-json\/wp\/v2\/media?parent=9338"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.almtoolbox.com\/blog\/wp-json\/wp\/v2\/categories?post=9338"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.almtoolbox.com\/blog\/wp-json\/wp\/v2\/tags?post=9338"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}