> For the complete documentation index, see [llms.txt](https://docs.sealights.io/knowledgebase/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.sealights.io/knowledgebase/coverage-and-quality-insights/multi-app-coverage-report.md).

# Multi-App Coverage Report

The **Multi-App Coverage Report** is a powerful new tool designed to provide deep, component-level visibility into quality metrics across complex, integrated systems spanning multiple applications and services. Unlike traditional reports that require rigid, single-structure data, this report eliminates constraints by allowing users to precisely select which applications and branches to include in their analysis. This high degree of customization ensures granular, accurate, and cumulative coverage metrics, aggregating test results across all relevant environments (Dev, QA, Staging) to deliver an adaptable and scalable snapshot of quality that aligns perfectly with modern, real-world development and testing processes.

## Accessing Multi-App Coverage Reports

The new Multi-App Coverage Reports, along with your existing Test Gaps (TGA) reports, are now consolidated under a new main navigation menu item: **Custom Coverage Reports**.

<figure><img src="/files/XzlO062K5CxTHkxz5aHT" alt="" width="287"><figcaption></figcaption></figure>

{% hint style="info" %}
You can set the "Multi-App Coverage" page as your default landing page on My Profile page.
{% endhint %}

## Multi-App Coverage Reports List

The Multi-App Coverage Reports list provides a quick overview of all your saved reports.

<figure><img src="/files/b3Qfmt6jqvZY149UoQNy" alt=""><figcaption></figcaption></figure>

#### Report List Table Columns

* **By:** Displays the creator of the report. Hover to see a tooltip with the creator's full name and email (if available).
* **Last Edited:** Reports are sorted by this column by default, with the latest reports appearing first. When generating or when failed to generate a report, a visual indicator appears next to the date.&#x20;
* **Report Name:** The name you assigned to the report.
* **Date Range:** Displays the range selected during creation, or the the earliest/latest build within that range. There is no range when the report failed or is being generated.
* **Code Changes Coverage:** % of **modified** methods tested by at least one test stage. Visualized as a bar with the percentage displayed next to it. On hover, a tooltip shows x / y methods tested.
* **Overall Code Coverage:** % of methods tested by at least one test stage. Visualized as a bar with the percentage displayed next to it. On hover, a tooltip shows x / y methods tested.
* **Untested Code Changes:** Number of **modified** methods not covered by any test stage. Hidden by default; can be shown via column customization.
* **Untested Overall Code:** Number of methods not covered by any test stage. Hidden by default; can be shown via column customization.

#### Customizing Table Columns

Use the **Customize** button in the table toolbar to show or hide columns. The available columns are: Code Changes Coverage, Overall Code Coverage, Untested Code Changes, and Untested Overall Code. By default, only the two coverage columns are shown. Your column preferences are saved per user in the browser.

#### Report & Table Actions

Hover over an individual report in the list to reveal context-specific action buttons on the right side: **Edit**, **Duplicate**, **Delete**, and **Download as a CSV file**. At the top of the table, you can manage the entire report list using the action bar to **Refresh** reports currently in "Generating" status, **Search** by report name, and **Filter** to display "My Reports Only".

<figure><img src="/files/OzJVslcm1ov5YvBDGKSu" alt="" width="173"><figcaption></figcaption></figure>

## Creating a New Report

{% hint style="info" %}
***Note on Future Capabilities:*** *In this initial version, **Branching Out** (code changes based on another branch) and **Code Labels** (filtering by arbitrary code tags) are not supported. These capabilities are planned for future releases.*
{% endhint %}

The Multi-App Coverage report offers significantly more customization than the standard TGA report, supporting numerous applications, flexible code changes calculations, and multiple branches for coverage analysis. A guided, four-step wizard simplifies the configuration process:

#### **Step 1: Applications**

This step allows you to select the specific applications you want to include in your report. You can do this in one of two ways:

**Option 1: Select Specific Apps**

Manually select applications from a multi-select dropdown. The list shows all applications in your organization that have at least two builds. A **Select All** checkbox lets you select all currently visible apps at once (up to 200 items at a time). You can refine the list using the search bar, selections made across different searches are cumulative and will not be lost when you change the search term.

**Option 2: Use a Saved Filter**

Choose a pre-defined saved filter from your Coverage Dashboard. The filter dynamically determines which applications and branches are included in the report. Only apps you have permission to view and that have at least two builds will be included. When the report is regenerated, the filter is re-evaluated to reflect any changes to the app/branch list.

**Creating a New Filter from the Wizard** *(Admin and DevOps roles only)*

If the filter you need doesn't exist yet, click **Create New Filter** directly below the saved filter dropdown. This opens an inline Advanced Filter builder using Regex-based rules and conditions, without leaving the wizard. Once saved, the new filter is automatically selected and also becomes available in the Coverage Dashboard.

#### **Step 2: Code Scope**

This step defines the scope of code included in your report. The **build range you select here will apply to all applications and main branches** chosen for this report. SeaLights will then analyze all builds *within this specified range* for all selected apps and branches. The **Base Build** for your report will be the earliest build identified within this range, and the **Target Build** will be the latest build.

For overall coverage, the code scope is determined by the Target Build.

**Default Values**

* **Base Build** defaults to: Earliest build on date (today).
* **Target Build** defaults to: Latest build on branch.

You can adjust these using the following options:

* **Earliest/Latest build on Date:** Provide a specific date.
* **Earliest/Latest build on Branch:** No additional value needed; the range is determined by the earliest/latest builds available on the selected branches.

**Branch Selection**

For each application, you must choose a main branch for code change calculation:

* **Auto-selection:** If an application has only one branch, it is automatically selected.
* **Select Branch:** If an application has more than one branch, click the link next to the app to open a dropdown and select your desired branch. The selected branch name is displayed inline for a quick overview of your configuration.
* **Quick Selection:** For reports spanning many applications, use the **Quick Selection** tool to bulk-assign a main branch to all applications that are still missing one. Enter a branch name and choose either **Contains** (default) or **Equals** matching logic. The system scans each unassigned app's available branches and applies the match. The result may be a full success (all unassigned apps assigned), a partial success (some apps assigned, others not found), or a failure (no matches found). Apps that already have a main branch selected are not affected. You cannot proceed to the next step until all apps have a main branch assigned.

{% hint style="info" %}
When using a Saved Filter, the available branches in this step are restricted to those currently included in the filter's output.&#x20;
{% endhint %}

#### **Step 3: Code Coverage**

This step allows you to define how code coverage data is collected for your report.

* **"Collect coverage from additional branches" Checkbox:**
  * By default, coverage is only collected from the branches specified in Step 2.
  * Check **'Collect coverage from additional branches'** to include coverage data from additional branches. Two options appear:
    * **Select Specific Branches:** Manually choose specific branches per application.
    * **Select All Relevant Branches:** Automatically include every branch in the report scope that had at least one active build within the build range defined in Step 2, plus a one-week buffer on both ends. When a Saved Filter is used, the scope is limited to branches within the filter's output.
  * Branches selected in Step 2 appear as checked and disabled, they are always included.
  * Unchecking the parent checkbox ignores any selections below it; re-checking it restores your previous selections.
  * Branch names are displayed inline next to each app. When more than one additional branch is selected, the count of extra branches is shown alongside the main branch name.

{% hint style="info" %}
When using a Saved Filter, the available branches for additional coverage are restricted to those currently included in the filter's output.
{% endhint %}

**Why collect coverage from multiple branches?** In modern CI/CD pipelines, different test stages run on different branches. For example, feature tests may run on a `dev` branch while regression or E2E tests run on `main` or `release`. Collecting coverage from all relevant branches ensures a complete, cumulative quality view — every executed test stage contributes to the final coverage score, regardless of where it ran.

#### **Step 4: Report Name**

The final step allows you to give your report a meaningful name.

* **Report Name Input:** Enter a name for your report. The name does not need to be unique.

<figure><img src="/files/oXM4KZPFyPz4j33zj4wo" alt=""><figcaption><p>Report Creation Wizard</p></figcaption></figure>

## Viewing a Report

The Multi-App Coverage report page serves as essential evidence for testing and release readiness. It helps you track your release quality progress, allowing you to clearly demonstrate testing rigor to stakeholders and identify areas not tested before deployment.

Code Changes tab is shown by default. The report provides two tables, **Code Changes** and **Overall Code,** each with a three-level hierarchy (Application > File > Method).

**Report Tables:**

* **Code Changes** (default tab) and **Overall Code** tables each display a three-level hierarchy:
  1. **Application:** The top level, showing aggregated data for each app.
  2. **Files:** Expanding an application shows the relevant files.
  3. **Methods:** Expanding a file shows the individual methods.
* **Search:** Search for specific files and methods within each table.
* **Coverage Columns:** Displayed as a bar visualization with the percentage shown next to the bar. Hover to see a tooltip showing x / y methods tested.
* **Contributors & SCM Integration:** "Contributor" and "SCM" buttons provide insights into who made changes and links to your source control.
* **CSV Export:** The download button generates a CSV file based on the currently active table:
  * On the **Overall Code** table: exports all methods (file name: *Untested Code*).
  * On the **Code Changes** table: exports only modified methods (file name: *Untested Code Changes*).

**Metrics Cards:** The top section features metrics cards showing Code Changes Coverage and Untested Code Changes first, followed by Overall Code and Untested Overall Code. Each card includes a bar visualization and combined tested/total counts.

**Report Metadata:** A metadata line shows the number of apps, date range, and test stages. Click **Apps** to open a popup with the full list of applications and branches used for both code change calculation and coverage data, including build range details per app and branch.

**Test Stages Filter:** The "Test Stages" link shows what is currently presented (e.g., "All Test Stages"). Click to filter the report by a specific test stage.

**Report Rename:** Hover over the report name and click **Edit** (or click the name directly) to rename the report. The updated name is reflected in the report list.

## Managing Your Reports

SeaLights offers maximum flexibility for managing your Multi-App Coverage reports, allowing you to change any parameter on an existing report or quickly duplicate one.

#### **Editing & Regenerating a Report**

* Click **Edit** on a report in the list to open the "Update Report" wizard.
* Navigate to any step and change any parameters.
* The **Regenerate Report** button is available on all steps for quick updates.
* Regenerating creates a new version of the report, replacing the previous one in the list.

#### **Duplicating a Report**

* Click **Duplicate** on a report in the list to open the "Create Report" wizard with all parameters pre-filled (except the report name).
* Click **Create Report** on Step 4 to create a new independent report without affecting the original.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.sealights.io/knowledgebase/coverage-and-quality-insights/multi-app-coverage-report.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
