TestingOps.ai

Low-code platforms · Native connection

Power Apps and TestingOps: test design from your Dataverse model

In a model-driven Power App, the behaviour testers care about lives in Dataverse: required columns, choices, form layout, business rules and the cloud flows that react to changes. TestingOps reads that model and gives its AI test agents the parts that matter for test cases.

  • Native connection
  • Available with limits
Connection
Native connection
Writes back
Nothing, it only reads
Last checked
7 Nov 2026

In short

Power Apps and TestingOps in short

The Power Apps connection reads the Dataverse model behind a model-driven app, a solution or a single table, with a Microsoft Entra app registration (client credentials) and an application user in the environment.

Each table becomes a knowledge-base section with its columns, main and quick create forms and business rules, and a solution link adds each cloud flow with its trigger and steps; agents search these sections when they write test cases.

Canvas apps are refused because their screens and Power Fx formulas are not available to TestingOps; link the solution that holds the app's tables instead. Nothing in the environment is changed.

What it does

What it does for your testing

  1. 1

    Business rules become conditional test paths

    Input
    Business rules of a table with their scope: one form, all forms, or the table including the server
    TestingOps
    Records the actions TestingOps recognises: make a field required or optional, show or hide it, lock it or make it editable, set a default or a value, show an error message
    Output
    Cases that set the triggering value and check that the field changes or the error message appears
  2. 2

    Forms become step order

    Input
    Active main and quick create forms
    TestingOps
    Writes the tab, section and field order, and describes each column on the form: type, required level, length or format, numeric range, choices and lookup targets
    Output
    Steps that follow the form as users see it, with valid and invalid values per column
  3. 3

    Cloud flows become follow-up checks

    Input
    Cloud flows in a solution with a Dataverse trigger
    TestingOps
    Lists the trigger (table, change type, filtering columns, filter expression) and the steps in run order with condition and switch branches
    Output
    Cases that make the triggering change and check what each branch of the flow should do

Step by step

How it works

  1. Register an app and add an application userCreate a Microsoft Entra app registration with a client secret, and add it to the environment as an application user with a security role that can read customization tables.
  2. Connect the environmentUnder Integrations → Platforms → Low-code platforms → Power Apps, enter the environment address, the application (client) ID, the directory (tenant) ID and the client secret. Test connection lists your model-driven apps and your solutions.
  3. Link an app, a solution or a tableIn the project's Knowledge tab, add a source under Low-code platforms: pick an app or a solution, or paste a model-driven app link, a make.powerapps.com solution link or table:<name>.
  4. Each table becomes a sectionSync writes one section per table and, for solution links, one per cloud flow. A model that did not change is not rewritten, and a table that cannot be read keeps its previous section and reports a warning.
  5. Agents write the casesAgents search the sections when they write test cases, which run as AI-executed steps against the running app on your execution provider.

Cloud flows come only with solution links; a model-driven app link or a table link brings tables only.

Connect

Setup

  1. In Microsoft Entra ID, register an app and create a client secret. Copy the application (client) ID, the directory (tenant) ID and the secret's value.
  2. In the Power Platform admin center, add the app to the environment as an application user and give it a security role that can read customization tables.
  3. In TestingOps, open Integrations → Platforms → Low-code platforms → Power Apps, enter the environment address (for example https://company.crm4.dynamics.com), the two IDs and the client secret, then select Test connection and Save.
  4. In the project's Knowledge tab, select Add source under Low-code platforms, pick a model-driven app or a solution (or paste table:<name> for one table) and select Sync now.

Documentation: Microsoft Learn: manage application users

Where you connect it in TestingOps: Integrations → Platforms → Low-code platforms → Power Apps

Use cases

Use cases

Cover a model-driven app's forms before a release

Trigger
A team links its model-driven app
Uses
The app's tables (up to 60) with their columns, forms and business rules
Agent activity
Plans cases per form for required columns, choice values, field lengths and the business rules that lock, hide or require fields
Result
Draft cases grouped by table and form
Condition
Views, security roles, plug-ins and PCF controls are not read

Test what a cloud flow does after a row changes

Trigger
A solution with Dataverse-triggered cloud flows is linked
Uses
Each flow's trigger, filtering columns and steps with their branches
Agent activity
Writes cases that create or update a row to meet the trigger and check the outcome of each branch
Result
Cases for the flow's branches, tied to the table they start from
Condition
Flows outside the linked solution are not read

Check the messages business rules show

Trigger
Tables with business rules that show error messages
Uses
Rule names, scope and the recognised actions
Agent activity
Writes negative cases that enter the value a rule rejects and expect its message
Result
Negative cases that name the rule they check
Condition
When a rule uses actions TestingOps does not recognise, the section lists only the fields the rule touches

Capabilities

Capabilities and limits

What is read

  • Model-driven apps (their tables), solutions (their tables and cloud flows) or a single Dataverse table
  • Columns: type, required level, maximum length or format, numeric range and precision, choices, lookup targets and date-only; columns on forms in detail, the others by name
  • Active main and quick create forms, up to 20 per table, as tab, section and field order
  • Business rules, up to 150 per table: name, active or draft, scope and recognised actions
  • Cloud flows of a solution: on, off or suspended, the Dataverse trigger, and steps in run order with condition and switch branches

What is produced

  • One knowledge-base section per table and per cloud flow in the linked project
  • Context that agents and AI case generation search when they write test cases

Where it can write

Nothing in your environment. TestingOps only reads the model through the Dataverse Web API.

How it connects

Dataverse Web API v9.2 with tokens for your Microsoft Entra app registration (OAuth 2.0 client credentials); environment addresses in the public cloud, GCC, GCC High, DoD and 21Vianet are recognised

Account and permissions

  • A Microsoft Entra app registration with a client secret: application (client) ID, directory (tenant) ID and the secret's value
  • An application user for that app in the environment, with a security role that can read customization tables

Limits

  • Canvas apps are refused: their screens and Power Fx formulas are not read. Link the solution that holds the app's tables instead
  • Not read: PCF controls, plug-ins, classic workflows, security roles and views
  • Up to 60 tables per app or solution, 200 sections and 12,000 characters per section
  • When a business rule uses an action TestingOps does not recognise, the section lists the fields the rule touches instead of the action
  • Dataverse service protection limits apply to the application user; a throttled request is retried once
  • No structured model facts or model-coverage list: the Dataverse model is searchable text, unlike the Mendix connection
  • No automation script generation: test cases run as AI-executed steps

Example

Example: how a team uses it

Illustrative scenario, not a customer story.

A team links the solution behind its case management app. The Case table's section shows a business rule, scoped to all forms, that makes Resolution required when Status is Resolved, and the solution's cloud flow creates a follow-up task when Priority changes to High.

An agent drafts cases that resolve a case with and without a resolution and that raise a case's priority, each naming the rule or flow it checks, and the team reviews them before they run.

Frequently asked questions

Does TestingOps read canvas apps?

No. A canvas app link is refused, because its screens and Power Fx formulas are not available to TestingOps. If the canvas app works on Dataverse tables, link the solution that holds them: agents then know the columns and business rules, but not the app's screens.

Which Power Apps sources can be linked?

A model-driven app, which brings the tables it contains; a solution, which brings its tables and its cloud flows; or a single Dataverse table with table:<logical name>. Microsoft's own and platform solutions are hidden from the list.

What access does the connection need?

An application user for your Entra app in the environment, with a security role that can read customization tables. TestingOps only reads the model; it does not change data or customizations.

Are cloud flows read for every link?

Only for solution links. Each flow appears with its state, its Dataverse trigger and its steps in run order, including condition and switch branches. A model-driven app link or a table link brings tables only.

Does it create Test Studio or Test Engine tests?

No. Agents write TestingOps test cases whose steps are executed by AI against the running app on your execution provider. Nothing is created in Power Apps.

What happens when a table cannot be read?

The table keeps its previous section and the sync reports a warning, so a single permission problem does not remove what the knowledge base already has.

Next step

Find out what your Dataverse model gives the agents: request a demo and bring a solution from a non-production environment.