Test pyramid assessment
Classified test-file presence, advisory pyramid shape, and signals next to maturity.
Why it matters
Why it matters: agentic delivery depends on guardrails agents can run themselves.
Agentic Foundation checks that repositories have automated tests. The pyramid is how those tests stay usable as a guardrail: many fast unit tests at the base, fewer integration and contract checks in the middle, and a slim E2E top. This page reads classified test files from those scans and flags where the shape breaks down.
Ideal and workspace current
The app draws two diagrams under the page title, separate from the repository table of classified file counts.
Ideal pyramid
| Band | Share |
|---|---|
| E2E / UI | 10% |
| Integration & contract | 20% |
| Unit | 70% |
Advisory 70 / 20 / 10. Middle is integration, contract, and acceptance/BDD. Each band’s area is that share of the triangle. This diagram is the target shape, not this workspace’s file mix.
Workspace current
Uses the same three bands with this workspace’s classified file mix. Each band’s area is that layer’s share of the triangle. When fewer than 10 classified files exist workspace-wide, band percents stay hidden and the diagram shows Insufficient data instead.
What it shows
Test pyramid assessment shows which automated testing layers exist across repositories in a workspace, where gaps are, and how the suite shape compares to a healthy pyramid. Counts come from classified test files collected during Agentic Foundation readiness scans, not a spreadsheet you maintain by hand.
The same page also shows secondary signals next to that pyramid: trend versus the previous scan, line coverage, classification confidence, not-applicable layers, risk chips, and workspace CI quality. Those signals sit beside presence and shape. They do not change the Mature badge or the fixed 70 / 20 / 10 advisory targets.
This Insights page is not the same as Agentic Foundation Test inventory on repository detail. Inventory can mark a layer present from CI or dependency signals alone. Assessment presence requires at least one classified test file.
How to open it
In AI Driven SDLC, expand SDLC Insights in the sidebar and choose Test pyramid assessment (immediately after Code Insights), or go to /insights/test-pyramid.
What you see
Workspace summary
- Repositories that have a pyramid snapshot from a readiness scan
- Total classified test files across five layers (unit, integration, acceptance/BDD, contract, E2E)
- Advisory shape vs fixed targets: base about 70% unit, middle about 20% (integration + contract + acceptance/BDD), top about 10% E2E
- Presence maturity counts (missing / emerging / established / mature)
- Date of the newest scan
- How many repositories matured or slipped versus the previous scan, and the previous workspace shape when at least one repository has a previous scan
- Median line coverage when any repository has a coverage reading. If none do, the median is hidden and the copy is No line coverage yet
- A CI quality card beside the four pyramid summary cards (see Workspace CI quality)
When fewer than 10 classified test files exist workspace-wide, shape is labeled Insufficient data and band percentages are hidden. Raw counts and presence still show.
If every repository has only one pyramid scan, previous shape is hidden and both trend counts are 0. Scan dates still show as dates.
When there is no pyramid data yet, the page keeps the existing empty state (Select a workspace or No pyramid data yet). The extra signal cards do not appear.
Who lacks a layer?
Pick a layer to list repositories with zero classified files for that layer. Repository names open Agentic Foundation inventory for that repo. Layer gap chips still follow file counts. A table cell of N/A means the layer does not apply (see Layer cells).
Per-repository table
Search and sort repositories. Columns show classified file counts per layer, presence maturity, per-repo shape (same insufficient-data floor of 10 files), plus Coverage, Confidence, Trend, and Risk. You can still sort by the existing columns (name, layers, maturity, shape). Coverage and Trend are not extra sort keys.
The Maturity header tooltip uses the same Presence sentences as What the labels mean.
Shape chips are interactive: open a chip to preview that repository’s classified-file pyramid (five layers). The table stays dense; the pyramid is not drawn inside every row. The Shape column header tooltip mentions this. Repo names still open Agentic Foundation Test inventory for that repository. Inventory can still mark a layer present from CI or dependency signals with zero classified files. Coverage, confidence, and evidence paths stay on that inventory view.
What the labels mean
On Test pyramid assessment, the What these labels mean card sits after the workspace summary cards (including CI quality) and immediately above Layer gaps. It stays expanded. The card does not appear when no workspace is selected, the page fails to load, or there is no pyramid data yet.
Presence and shape are different. Counts are classified test files, not individual test cases. A layer gap is a repository with zero classified files for that layer.
Presence
These labels describe how far a repository has climbed the file-count ladder: unit, then integration, then E2E when it applies. E2E applies by default.
| Label | Meaning |
|---|---|
| Missing | No classified unit files. |
| Emerging | Classified unit files, no classified integration files. |
| Established | Classified unit and integration files, and no classified E2E files. |
| Mature | Classified unit and integration files, and classified E2E files when E2E applies. |
Shape
Shape uses three bands, not the five layer columns. Base is unit. Middle is integration + contract + acceptance/BDD. Top is E2E. Advisory targets are 70 / 20 / 10. Workspace and per-repo shape both use a floor of 10 classified files.
| Label | Meaning |
|---|---|
| Insufficient data | Fewer than 10 classified files. Band percents are hidden. |
| Balanced | Each band is within ±10 percentage points of 70 / 20 / 10. |
| Base-heavy | Not balanced. The base band is the heaviest versus those targets. |
| Middle-heavy | Not balanced. The middle band is the heaviest versus those targets. |
| Top-heavy | Not balanced. The top band is the heaviest versus those targets. |
Secondary signals
Use these when you want to know whether Mature (or shape) is moving, whether you can trust the badge, why a layer is blank, or whether CI is running, without leaving Insights.
Trend
Trend compares this page’s file-count maturity (and shape) to the previous pyramid scan for that repository. It does not use Test inventory’s CI/deps presence.
| What you see | Meaning |
|---|---|
| up | Presence moved up the Missing → Emerging → Established → Mature ladder versus the previous scan. |
| down | Presence moved down that ladder. |
| unchanged | Same presence label as the previous scan. |
| First scan | No previous scan for this repo. Previous maturity and shape are blank. |
The previous maturity label shows when a previous scan exists. The scan date on the row still shows as a date. There is no separate stale badge.
At workspace level, matured and slipped count repositories whose Insights maturity moved up or down. Previous workspace shape uses the previous-scan file totals for repositories that have a previous scan. If no repository has a previous scan, previous shape is hidden and both counts are 0.
Coverage
The Coverage column is line coverage for that repository, same overlay as Agentic Foundation Test inventory: latest SonarQube line percent when the platform has one, otherwise the readiness snapshot. It is not the estimated test-to-source ratio on Code Insights.
Line percents are 0–100. Branch coverage shows only when the snapshot includes a branch percent.
If the repo has neither a Sonar reading nor snapshot line coverage, the cell is —. If no repository has coverage, workspace copy is No line coverage yet and the median is hidden.
Confidence
Confidence is the lowest classification confidence among layers that have classified files on this page (High / Medium / Low). If no layer has files yet, it uses the lowest confidence among layers that apply.
The row also shows how many evidence items the scan attached, unless that count is 0 (then you see confidence only). File paths for that evidence stay on Test inventory. Open the repo name to read them.
Low confidence does not change a Mature badge.
Layer cells: counts, gaps, and N/A
| Table cell | Meaning |
|---|---|
| A number | The layer applies, and the scan found that many classified files. |
| — | The layer applies, and the scan found zero classified files (a file-count gap). |
| N/A | The layer does not apply to this repository. Explanation: Not applicable for this repository. |
N/A layers do not count toward classified-file totals, presence maturity, shape (including Balanced), evidence counts, or the Workspace current diagram. Files on a non-applicable layer are ignored and do not produce Mature or Balanced by themselves.
When all five layers apply, you will not see N/A cells. The platform does not invent archetype labels on this page. Mature still follows the ladder above: E2E is required only when E2E applies. If unit, integration, and E2E are all N/A, maturity is Missing and shape is Insufficient data.
Risk
The Risk column can show chips next to the pyramid. It is not a new score.
- A chip when the scan flags the repository as an E2E cross-repo candidate (E2E for this codebase likely lives in another repository).
- A chip when Code Insights has at least one hotspot on the latest metrics snapshot for that repo.
Mature stays Mature when hotspots exist. The chip sits beside the badge.
| Hotspots / E2E-cross | What you see |
|---|---|
| No Code Insights metrics snapshot yet | Hotspots — |
| Snapshot exists, zero hotspots | No hotspot chip |
| Snapshot exists, one or more hotspots | Hotspot chip |
| Not an E2E cross-repo candidate | No E2E-cross chip |
This page does not break CI down by unit vs integration vs E2E jobs.
Workspace CI quality
Beside the four pyramid summary cards, a CI quality card shows a coarse workspace signal from the latest CI quality snapshot: fail rate, and flakiness when that snapshot includes a flake percent. The snapshot’s period end date shows when the card has one. Duration is not shown.
This is not pass/fail per repository, and not unit vs integration vs E2E job results.
If there is no quality snapshot, or it has no fail-rate figure, the card says No CI quality snapshot yet. The pyramid table still loads.
CI on this page needs GitHub Actions feeding that workspace snapshot. Connecting Actions is optional. The pyramid table does not depend on it.
Classification limits
Detection is heuristic (paths, names, CI, and dependencies). OpenAPI or spec files alone are not counted as contract tests. E2E includes common UI runners (for example Playwright, Cypress, Selenium). Product copy always refers to classified test files, not individual test cases.
When data appears
Run or wait for an Agentic Foundation readiness scan. Assessment reads the latest scan snapshot per repository. Trend uses the previous snapshot when one exists. The page does not re-scan on load.
Coverage can also update when SonarQube has a latest line-coverage reading for that repo (same overlay as Test inventory). Code Insights hotspots on Risk need a metrics snapshot from the same scan pipeline. The CI quality card needs a latest workspace CI quality snapshot.
Related
- Code Insights: complexity and hotspots from the same scan pipeline
- Readiness scores: Agentic Foundation scoring and inventory
- SonarQube: line coverage overlay when connected
- GitHub Actions: CI fail/flake signals for the workspace card