
Skill
runtime-validation-and-testing
validate and test Logic Apps migrations
Description
Rules for runtime validation and end-to-end testing of converted Logic Apps Standard projects. Covers func start validation, local E2E test matrix, splitOn verification, retry/timeout adaptation, test reporting, and no-source-platform-infra policy.
SKILL.md
Skill: Runtime Validation and Testing
Purpose: Authoritative rules for validating and testing converted Logic Apps Standard projects. Follow exactly.
1. Runtime Validation
- Run
func start --verbosein the generated project folder. - Check for errors in the output.
- Fix any issues found (bad connections, missing settings, schema errors).
- Re-run until the runtime starts cleanly with no errors.
2. Local E2E Test Matrix
Test ALL workflows end-to-end locally. Run EVERY scenario:
- Happy path — valid input, expected successful output.
- Error/failure path — invalid or malformed input, verify error handling works.
- Cross-workflow chain — if workflow A triggers workflow B, test the ENTIRE chain.
- Timeout/retry path — if any workflow has timeout or retry logic, test it.
- Resubmission path — if the flow supports message resubmission, test it.
- SplitOn check — if any trigger returns an array and uses a
For_eachloop instead ofsplitOn, refactor to usesplitOnand re-test.
Trigger each workflow based on trigger type:
- HTTP →
curl/Invoke-WebRequest - File → place file in
mountPath - Service Bus → send message
- Timer → check logs
If a workflow fails, fix the issue and re-test until all scenarios pass.
2a. Output Content Validation
Workflow completion (status = Succeeded) is NOT sufficient. For every output produced during E2E testing, perform field-level content validation:
- Parse every output file/message — read the actual XML/JSON content produced by each workflow action that writes to an external destination (file, HTTP response, queue message).
- Verify non-empty fields — every element/property that should carry a value from the source message MUST be non-empty. Flag any empty elements that should contain propagated data.
- Verify value propagation — trace key business fields (IDs, amounts, dates, counts) from input through every transformation to output. Confirm the correct value appears at each stage.
- Verify constant/static values — check that hardcoded values (status codes, acknowledgment strings, booleans) match the expected constants from the source orchestration logic.
- Verify collection preservation — if the source message contains repeating elements (arrays/lists), confirm all items survive through mass-copy/pass-through transforms (not just the first item).
- Compare against source behavior — determine what the source platform (BizTalk, MuleSoft, TIBCO, etc.) would produce for the same input, and verify the migrated Logic App produces semantically equivalent output.
If any field is empty, truncated, or contains the wrong value, treat it as a test failure even if the workflow status is Succeeded. Fix the root cause (wrong action input, incorrect XSLT XPath, missing mapping) and re-test.
3. Test Adaptation Rules
- NEVER skip tests due to long delays, timers, retry intervals, or timeouts.
- Instead, temporarily reduce these values to test-friendly durations (seconds instead of hours).
- Run all tests.
- Then REVERT to original production values after testing.
- Document all adaptations and reversions in the test report.
4. No Source Platform Infrastructure
During testing, NEVER connect to or use original source platform infrastructure (on-premises SQL servers, file shares, message queues, FTP servers, etc.).
- For local-capable connectors (File System, HTTP, Timer) → use LOCAL resources.
- For cloud-only connectors (Service Bus, Event Hubs, etc.) → use ONLY Azure resources provisioned in the configured resource group.
- Ensure Azurite is running before
func start(AzureWebJobsStorageusesUseDevelopmentStorage=true).
5. Local-First Resource Strategy
- Use Azurite (
UseDevelopmentStorage=true) forAzureWebJobsStorage. - Use local file paths for File System connector
mountPath. - Use
localhostfor HTTP triggers. - For SQL Server, Cosmos DB, SFTP, PostgreSQL, MySQL → use Docker containers.
- Check Docker availability with
docker --version. - Only provision Azure resources for connectors with NO local/Docker alternative (Service Bus, Event Hubs, Integration Account).
6. TEST-REPORT.md
After testing, generate TEST-REPORT.md in the project root with:
- This report is MANDATORY. Do NOT consider the local testing task complete until
TEST-REPORT.mdhas been created and populated. - Test results per workflow.
- Output content validation results — for each workflow, list fields checked, values found, and pass/fail per field. Flag any empty/wrong values.
- Azure resources provisioned.
- Adjustments made during testing.
- Design deviations from plan (should be none — see plan adherence).
- Deployment notes.
- Re-test instructions with exact commands.
7. Completion Gate
Do NOT call migration_conversion_finalize until ALL tests pass and TEST-REPORT.md exists. The delivered workspace MUST be fully working with zero manual setup.
More skills from the logicapps-migration-agent repository
View all 12 skillsanalyse-source-design
analyze TIBCO flow architecture
Jul 12ArchitectureAzureCode AnalysisDiagramscloud-deployment-and-testing
deploy and test Azure Logic Apps
Jul 12AzureBicepDeploymentReporting +1connections-json-generation-rules
generate connections.json files for Logic Apps
Jul 12AutomationAzureConfigurationWorkflow Automationconversion-task-plan-rules
generate ordered conversion task plans
Jul 12AzureMigrationOperationsPlanningdependency-and-decompilation-analysis
analyze MuleSoft dependencies and decompiled Java code
Jul 12AzureCode AnalysisJavaMaven +1detect-logical-groups
group MuleSoft integration artifacts
Jul 12ArchitectureAzureMigration
More from Azure (Microsoft)
View publisherazure-arg-external-evaluation-policy-author
author and test Azure Resource Graph policies
azure-policy
Jul 12AzureComplianceGovernancePolicyazure-blueprints-migration
migrate Azure Blueprints to Template Specs
azure-blueprints
Jul 12AzureDeploymentInfrastructure as CodeMigrationapiview-feedback-resolution
resolve APIView feedback on Azure SDKs
azure-sdk-tools
Jul 12API DevelopmentAzureCode ReviewDocumentationazsdk-common-live-and-recorded-tests
deploy resources and run Azure SDK tests
azure-sdk-tools
Jul 12AzureDeploymentSDKTestingazsdk-common-prepare-release-plan
manage Azure SDK release plan work items
azure-sdk-tools
Jul 12AzureGitHubProject ManagementSDKazsdk-common-sdk-release
release Azure SDK packages
azure-sdk-tools
Jul 12AzureCI/CDDeploymentSDK