diff --git a/astro.config.mjs b/astro.config.mjs index dab5881f..6b5a50da 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -331,6 +331,15 @@ export default defineConfig({ { label: 'Milestones', link: '/advanced/milestones' } ], }, + { + label: 'Global Analytics', + collapsed: true, + items: [ + { label: 'Overview', link: '/advanced/global-analytics' }, + { label: 'Analytics Board', link: '/advanced/global-analytics/analytics-board' }, + { label: 'Analytics Dashboards (Widgets)', link: '/advanced/global-analytics/analytics-dashboards' } + ], + }, ] }, { diff --git a/src/content/docs/advanced/global-analytics/analytics-board.md b/src/content/docs/advanced/global-analytics/analytics-board.md new file mode 100644 index 00000000..cd879d2f --- /dev/null +++ b/src/content/docs/advanced/global-analytics/analytics-board.md @@ -0,0 +1,128 @@ +--- +title: Analytics Board +description: Learn how to read the Global Analytics overview in Testomat.io. This guide covers the company-wide stat cards, charts, and projects table, every metric they show, and the filters that scope the data. +type: article +url: https://docs.testomat.io/advanced/global-analytics/analytics-board +head: + - tag: meta + attrs: + name: keywords + content: Testomat.io, Global Analytics, company-level analytics, automation coverage, analytics filtering, stat cards, test per project chart, latest run results, automation ratio, run result by priority, projects table, success rate formula, detached tests, Jira defect tracking, analytics stor +--- + +**Global Analytics** provides a consolidated, company-wide view of your test engineering performance. It aggregates data from every project you can access within a company into a single prebuilt dashboard, allowing you to evaluate automation coverage, success rates, and defect counts across projects without navigating into each one individually. + +**Global Analytics** operates at the **Company level**. The aggregated metrics reflect all projects within the selected company. + +:::note + +To build your own charts on top of the same data, see [Analytics Dashboards (Widgets)](https://docs.testomat.io/advanced/global-analytics/analytics-dashboards). + +::: + +## How to Access Global Analytics + +1. Navigate to **'Analytics'** tab from the main workspace dashboard. +2. Select **'Analytics'** option from the displayed dropdown list. + +![Testomat.io - GA](./images/GA_1.png) + +By default, the overview displays statistics for all your projects within your default company for the **last 30 days**. + +The dashboard is structured into four main areas: **the filter bar, the stat cards, the charts, and the projects table.** Lets talk more about each of them in the sections below. + +## Filtering Analytics Data + +**Filters** at the top of the page and within the side drawer apply globally across all stat cards, charts, and table rows simultaneously. When a filter is modified, the board automatically updates its numbers. + +**Available Top-Bar Filters:** + +1. **Company** — Switch between different companies you belong to using the top-level company selector. + +![Testomat.io - GA](./images/GA_Filter_1.png) + +2. **Date range** — Select a custom date range or a quick preset (defaults to the **last 30 days**). Date ranges filter run-based metrics according to when test executions occurred. +3. **Projects** — Restrict analytics to one or more specific projects within the company. If no project is selected, all projects are included by default. +4. **Tags** — Filter for tests containing specific technical or workflow tags. +5. **Labels** — Filter to tests that carry a label, with or without a specific value. + +![Testomat.io - GA](./images/GA_Filter_2.gif) + +**Available Side Drawer Filters** +Click the side drawer icon to access additional filter options: + +![Testomat.io - GA](./images/GA_Filter_3.png) + +1. **Environments** — Restrict results to specific execution environments (e.g., Staging, Production). +2. **Jira issues** — Filter for tests linked to specific Jira issue keys. +3. **Suites** and **Folders** — Scope metrics to selected sections of your test tree. + +![Testomat.io - GA](./images/GA_Filter_4.png) + +The filter options are drawn from the selected company and projects in that company. + +## The Stat Cards + +Stat cards provide high-level summary metrics calculated across all projects currently in scope. + +| Stat Card | What it shows | +|------|---------------| +| **Success** | The share of passed tests among all executed tests. | +| **Tests total** | The number of tests across the selected projects, excluding detached tests. | +| **Runs** | The number of runs across the selected projects. | +| **Manual** | The number of manual tests, excluding detached tests. | +| **Automated** | The number of automated tests, excluding detached tests. | +| **Automation coverage** | The share of automated tests among all tests. | + +![Testomat.io - GA](./images/GA_Stat_Cards_1.gif) + +:::note + +Stat Counts exclude **detached tests**(automated tests whose underlying code signature no longer matches the repository). They are left out so they do not inflate your totals. + +::: + +## The Charts + +Four visual charts display comparative metrics across projects, execution statuses, automation levels, and test priorities: + +- **Tests per project** — A pie chart that splits the total test count across projects, so you see which projects hold the most tests. +- **Latest run results** — A pie chart of the most recent run outcomes, split into **Successful**, **Failed**, **Skipped**, and **Pending**. Only outcomes with a value above zero appear. +- **Automation ratio** — A pie chart that compares **Manual** and **Automated** test counts. +- **Run result by priority** — A stacked bar chart grouped by test priority. Each bar stacks **Skipped**, **Pending**, **Success**, and **Failed** tests. Only priorities with results appear. + +## The Projects Table + +The Projects table lists individual project metrics, allowing you to rank and compare project performance directly. Click any project name to jump to its workspace. Click column headers to sort ascending or descending (all columns are sortable except **Run State**). + +| Column | What it shows | +|--------|---------------| +| **Name** | The project title, linked to the project. | +| **Total** | The number of tests in the project. | +| **Manual / Auto** | Manual and automated test counts, side by side, plus the detached count when it is above zero. | +| **Run State** | The latest run outcome as status points — passed, failing, skipped, and pending — with a tooltip that breaks the result down by priority. | +| **Defects** | The number of failed tests that have a linked Jira issue, with a tooltip that breaks defects down by priority. | +| **Success** | The success rate as a percentage, to one decimal place. | +| **Flaky** | The number of flaky tests. | +| **Slow** | The number of slow tests. | + +## Metric Definitions + +The page uses a few precise definitions. Knowing them explains why two numbers that look related do not always add up. + +- **Success rate** — passed tests divided by passed plus failed tests. Skipped and pending tests are left out of the calculation, so the rate reflects only tests that produced a pass or a fail. +- **Latest run results** — the status counts come from each project's most recent run, not from every run in the date range. This is why the run-result charts can differ from cumulative totals. +- **Defect** — a failed test that has a linked Jira issue. A failure with no linked issue is not counted as a defect. +- **Detached test** — an automated test that no longer matches code in the repository. Detached tests are excluded from the test counts. +- **Priorities** — tests carry one of five priorities: low, normal, important, high, and critical. The priority breakdowns and the priority bar chart use these. + +## How the Data is Gathered + +**Global Analytics** reads from a dedicated analytics store that records every test execution, so the page reflects recent runs rather than recomputing from the live test database on each visit. The date range filters this data by when each test was executed. + +Because the store is company-scoped, the page can aggregate across all projects in the company at once. When you select specific projects, the stat cards and charts sum only those projects; the projects table still lists each project on its own row. + +## What's Next + +- [Analytics Dashboards (Widgets)](https://docs.testomat.io/advanced/global-analytics/analytics-dashboards) — build custom dashboards from the same data when the overview does not show the exact metric you track. +- [Milestones](https://docs.testomat.io/advanced/milestones/) — track work across tests, suites, plans, and runs, then scope analytics to a milestone. diff --git a/src/content/docs/advanced/global-analytics/analytics-dashboards.md b/src/content/docs/advanced/global-analytics/analytics-dashboards.md new file mode 100644 index 00000000..ad668876 --- /dev/null +++ b/src/content/docs/advanced/global-analytics/analytics-dashboards.md @@ -0,0 +1,176 @@ +--- +title: Analytics Dashboards (Widgets) +description: Learn how to build custom analytics dashboards in Testomat.io. This guide covers creating a dashboard, adding widgets, choosing visualizations, arranging the grid, and filtering data across a company. +type: article +url: https://docs.testomat.io/advanced/global-analytics/analytics-dashboards +head: + - tag: meta + attrs: + name: keywords + content: analytics dashboards, widgets, custom charts, test reporting, company analytics, Testomat.io, custom widgets, widgets by priority, milestone widgets +--- + +**Dashboards** allow you to create custom analytics views using company-wide data from the [Global Analytics overview](https://docs.testomat.io/advanced/global-analytics/analytics-board). Each dashboard is a customizable grid of widgets designed to track specific metrics or organize analytics by categories such as priority, test type, or milestones. + +**Dashboards** operate at the **Company level**, aggregating test data across all projects in the selected company. + +## How to Create a Dashboard + +**To create a new widget:** + +1. Navigate to **'Analytics'** tab from the main workspace dashboard. +2. Select **'Dashboards'** option from the displayed dropdown list. +3. Click **'Create'** button to create a new dashboard. + +![Testomat.io - GA Dashboard](./images/GA_Dashboard_1.png) + +4. Enter dashboard title in the displayed modal. +5. Click **'Create'** button. + +![Testomat.io - GA Dashboard](./images/GA_Dashboard_2.png) + +An empty dashboard page will be created and added to your dashboard list. You can now begin adding widgets tailored to your tracking goals. + +![Testomat.io - GA Dashboard](./images/GA_Dashboard_3.png) + +The user who creates a dashboard is designated as its owner. Since dashboards belong to the company, all members with access to the company can view them. + +:::note + +Only company managers can create, edit, or delete dashboards and widgets. Members with read-only access to the company can open dashboards but cannot change them. + +::: + +## How to Add the Widget + +A widget is built based on two parameters: a **data source** that decides which metric to load, and a **visualization** that decides how to draw it. The same data source can be rendered in multiple chart styles — for example, success rate by date works as a bar chart, a timeline, or a table. + +**To add a widget:** + +1. Open your dashboard page, click the **'Edit'** button. +2. Click **Add Widget** button. +3. Choose a **Data Source**. Each option includes a short description and a list of compatible visualizations. +4. Select your preferred **Visualization** type +5. Enter a **Widget Title** (not required). +6. Save the widget. It appears on the grid and loads its data. + +![Testomat.io - GA Widget](./images/GA_Widget_1.gif) + +:::note + +You can preview live data with active filters applied before saving the widget. + +::: + +## Widget Visualizations + +Each data source supports a subset of different visualizations. The form shows only the ones that fit the data you picked. + +- **Single value** — one headline number, such as total automated tests. +- **Bar chart** and **multi-bar chart** — compare values across categories or projects. +- **Pie chart**, **multi-pie chart**, and **circle (donut) chart** — show a breakdown as parts of a whole, such as passed, failed, and skipped. +- **Timeline** — plot a metric over time to see trends. +- **Table** — list raw rows, such as per-project or per-priority figures. +- **Project stats** — a comprehensive card for one project: test counts, automation rate, success rate, and defects by priority. +- **Run stats** — a summary of run outcomes. +- **Partial total** — a progress indicator that shows part of a total, such as executed versus planned. +- **Milestone views** — dedicated layouts for a milestone's run stats, tests, plans, and requirements. + +![Testomat.io - GA Widget](./images/GA_Widget_2.gif) + +### Setting Default Widget View + +You can set or change the Default View for a widget in two ways: + +1. **During widget creation:** Choose the default view within the widget configuration modal. + +![Testomat.io - GA Widget](./images/GA_Widget_default_1.gif) + +OR + +2. **After creation:** Open **Edit** mode on the dashboard page and adjust the view directly on the widget card. + +![Testomat.io - GA Widget](./images/GA_Widget_default_2.gif) + +## Available Data Sources + +**Data sources** fall into a few groups. Choose a data source based on the key metrics you need to analyze. + +| Group | Data sources | Answers | +|-------|--------------|---------| +| **Test counts** | Automated tests, manual tests, all tests — each also available per project | How many tests exist and how automation is split | +| **Run trends** | Success rate by date, automation rate by date, test runs by date | How outcomes and automation change over time | +| **Priority and status** | Run results by priority and status, failed runs by priority | Where failures concentrate by priority | +| **Summaries** | Project stats, run stats | A full picture of one project or run | +| **Milestones** | Milestone completion, milestone run stats, milestone tests, plans, and requirements | Progress against a [milestone](https://docs.testomat.io/advanced/milestones/) | + +## Arranging and Resizing Widgets Layouts + +Dashboards use a **12-column grid** and it allows you to shape the layout directly on the page. + +**To customize the layout:** + +1. Click **'Edit'** on the dashboard page. +2. **Move:** Click and drag a widget by its header. +3. **Resize**: Drag the edges or corners of a widget. +4. Click 'Done' to save your layout. + +A widget can span from one column up to the full width of the grid, so a wide trend chart and a narrow counter can sit on the same row. + +![Testomat.io - GA Widget](./images/GA_Widget_3.gif) + +After saving the layout, you can quickly switch visualization types directly from the widget header options without entering full edit mode. + +![Testomat.io - GA Widget](./images/GA_Widget_4.gif) + +## Filtering Analytics Data + +Filters can be applied at the **Dashboard level** (affecting all widgets) or at the **Widget level** (affecting an individual widget). + +:::note + +**Dashboard-level** filters override individual **Widget-level** filters. + +::: + +**Available Filter Criteria:** + +- **Date range** — restrict run-based metrics to a period. +- **Projects** — limit analytics to one or more projects in the company. +- **Tags** and **labels** — narrow to tests that carry a tag or a label value (e.g., @smoke, Priority: High). +- **Environments** — focus on a specific test environment (e.g., Staging, Production). +- **Jira issues** — focus on tests linked to specific issues. +- **Suites and folders** — limit to part of the test tree. +- **Milestones** — scope data to a milestone. + +Available filter values (tags, labels, environments, suites) are dynamically populated from all accessible projects across your company. + +### Applying Dashboard-Level Filters + +1. Click **'Filter'** icon in the top-right corner on the Dashboard page. +2. Configure your filter criteria. The selected filters will instantly apply to all widgets on the board. + +![Testomat.io - GA Widget](./images/GA_Widget_filter_1.gif) + +### Applying Single Widget Filters + +**Option A: During Widget Creation** + +1. Click **'Edit'** button -> click **'New widget'** button. +2. Select your data source and configure specific filters within the creation panel. +3. Add the widget to your board. + +![Testomat.io - GA Widget](./images/GA_Widget_filter_2.png) + +**Option B: On an Existing Widget (Date Filter)** + +1. Click **'Edit'** in the top-right corner of the Dashboard page. +2. Click the **'Edit'** (pencil) icon on the specific widget card. +3. Adjust the date range filter. +4. Save your changes. + +![Testomat.io - GA Widget](./images/GA_Widget_filter_3.gif) + +## Performance & Caching + +To ensure rapid loading times across large datasets, widget results are cached automatically. The cache updates periodically on a set schedule to reflect new test runs. Reopening a dashboard or adjusting filters automatically triggers a fresh data load. \ No newline at end of file diff --git a/src/content/docs/advanced/global-analytics/images/GA_1.png b/src/content/docs/advanced/global-analytics/images/GA_1.png new file mode 100644 index 00000000..177345c8 Binary files /dev/null and b/src/content/docs/advanced/global-analytics/images/GA_1.png differ diff --git a/src/content/docs/advanced/global-analytics/images/GA_Dashboard_1.png b/src/content/docs/advanced/global-analytics/images/GA_Dashboard_1.png new file mode 100644 index 00000000..07aedf3f Binary files /dev/null and b/src/content/docs/advanced/global-analytics/images/GA_Dashboard_1.png differ diff --git a/src/content/docs/advanced/global-analytics/images/GA_Dashboard_2.png b/src/content/docs/advanced/global-analytics/images/GA_Dashboard_2.png new file mode 100644 index 00000000..47e17c2e Binary files /dev/null and b/src/content/docs/advanced/global-analytics/images/GA_Dashboard_2.png differ diff --git a/src/content/docs/advanced/global-analytics/images/GA_Dashboard_3.png b/src/content/docs/advanced/global-analytics/images/GA_Dashboard_3.png new file mode 100644 index 00000000..f1e29fb9 Binary files /dev/null and b/src/content/docs/advanced/global-analytics/images/GA_Dashboard_3.png differ diff --git a/src/content/docs/advanced/global-analytics/images/GA_Filter_1.png b/src/content/docs/advanced/global-analytics/images/GA_Filter_1.png new file mode 100644 index 00000000..c2d9d761 Binary files /dev/null and b/src/content/docs/advanced/global-analytics/images/GA_Filter_1.png differ diff --git a/src/content/docs/advanced/global-analytics/images/GA_Filter_2.gif b/src/content/docs/advanced/global-analytics/images/GA_Filter_2.gif new file mode 100644 index 00000000..ab06fb73 Binary files /dev/null and b/src/content/docs/advanced/global-analytics/images/GA_Filter_2.gif differ diff --git a/src/content/docs/advanced/global-analytics/images/GA_Filter_3.png b/src/content/docs/advanced/global-analytics/images/GA_Filter_3.png new file mode 100644 index 00000000..12f1694b Binary files /dev/null and b/src/content/docs/advanced/global-analytics/images/GA_Filter_3.png differ diff --git a/src/content/docs/advanced/global-analytics/images/GA_Filter_4.png b/src/content/docs/advanced/global-analytics/images/GA_Filter_4.png new file mode 100644 index 00000000..66bf61f2 Binary files /dev/null and b/src/content/docs/advanced/global-analytics/images/GA_Filter_4.png differ diff --git a/src/content/docs/advanced/global-analytics/images/GA_Stat_Cards_1.gif b/src/content/docs/advanced/global-analytics/images/GA_Stat_Cards_1.gif new file mode 100644 index 00000000..38a33161 Binary files /dev/null and b/src/content/docs/advanced/global-analytics/images/GA_Stat_Cards_1.gif differ diff --git a/src/content/docs/advanced/global-analytics/images/GA_Widget_1.gif b/src/content/docs/advanced/global-analytics/images/GA_Widget_1.gif new file mode 100644 index 00000000..85ad6e23 Binary files /dev/null and b/src/content/docs/advanced/global-analytics/images/GA_Widget_1.gif differ diff --git a/src/content/docs/advanced/global-analytics/images/GA_Widget_2.gif b/src/content/docs/advanced/global-analytics/images/GA_Widget_2.gif new file mode 100644 index 00000000..8a445187 Binary files /dev/null and b/src/content/docs/advanced/global-analytics/images/GA_Widget_2.gif differ diff --git a/src/content/docs/advanced/global-analytics/images/GA_Widget_3.gif b/src/content/docs/advanced/global-analytics/images/GA_Widget_3.gif new file mode 100644 index 00000000..da233dda Binary files /dev/null and b/src/content/docs/advanced/global-analytics/images/GA_Widget_3.gif differ diff --git a/src/content/docs/advanced/global-analytics/images/GA_Widget_4.gif b/src/content/docs/advanced/global-analytics/images/GA_Widget_4.gif new file mode 100644 index 00000000..9f0f55e4 Binary files /dev/null and b/src/content/docs/advanced/global-analytics/images/GA_Widget_4.gif differ diff --git a/src/content/docs/advanced/global-analytics/images/GA_Widget_default_1.gif b/src/content/docs/advanced/global-analytics/images/GA_Widget_default_1.gif new file mode 100644 index 00000000..e837e6de Binary files /dev/null and b/src/content/docs/advanced/global-analytics/images/GA_Widget_default_1.gif differ diff --git a/src/content/docs/advanced/global-analytics/images/GA_Widget_default_2.gif b/src/content/docs/advanced/global-analytics/images/GA_Widget_default_2.gif new file mode 100644 index 00000000..1c9a9215 Binary files /dev/null and b/src/content/docs/advanced/global-analytics/images/GA_Widget_default_2.gif differ diff --git a/src/content/docs/advanced/global-analytics/images/GA_Widget_filter_1.gif b/src/content/docs/advanced/global-analytics/images/GA_Widget_filter_1.gif new file mode 100644 index 00000000..454ffa68 Binary files /dev/null and b/src/content/docs/advanced/global-analytics/images/GA_Widget_filter_1.gif differ diff --git a/src/content/docs/advanced/global-analytics/images/GA_Widget_filter_2.png b/src/content/docs/advanced/global-analytics/images/GA_Widget_filter_2.png new file mode 100644 index 00000000..63313af8 Binary files /dev/null and b/src/content/docs/advanced/global-analytics/images/GA_Widget_filter_2.png differ diff --git a/src/content/docs/advanced/global-analytics/images/GA_Widget_filter_3.gif b/src/content/docs/advanced/global-analytics/images/GA_Widget_filter_3.gif new file mode 100644 index 00000000..83ec51e7 Binary files /dev/null and b/src/content/docs/advanced/global-analytics/images/GA_Widget_filter_3.gif differ diff --git a/src/content/docs/advanced/ai-powered-features copy/index.mdx b/src/content/docs/advanced/global-analytics/index.mdx similarity index 61% rename from src/content/docs/advanced/ai-powered-features copy/index.mdx rename to src/content/docs/advanced/global-analytics/index.mdx index dc71f148..f6db14a3 100644 --- a/src/content/docs/advanced/ai-powered-features copy/index.mdx +++ b/src/content/docs/advanced/global-analytics/index.mdx @@ -4,4 +4,4 @@ title: Overview import DirectoryLinks from '/src/components/DirectoryLinks.astro'; - \ No newline at end of file + \ No newline at end of file