Azure Test Plans: Manual and Automated Testing

Khimananda Oli 7 min read Virtualization
Azure Test Plans: Manual and Automated Testing

By Khimananda Oli | Last reviewed: August 2026

Shipping software without structured verification is a liability, especially when compliance or complex business logic is involved. Azure Test Plans: Manual and Automated Testing provides the integrated framework to manage both exploratory validation and scripted regression within a single traceable system. For teams balancing rapid delivery with audit requirements, understanding how to orchestrate these distinct testing modes is critical for release confidence. This guide covers the practical implementation of both approaches, ensuring your quality gates are as reliable as your deployment pipelines.

Manual Test SuitesAutomated TestsAzure Test PlansUnified Reports
Azure Test Plans architecture integrating manual and automated testing streams into centralized traceability and reporting.

How do you structure Azure Test Plans for manual and automated testing?

Effective test management starts with intentional organization. A common mistake is dumping all tests into a single flat list, which makes filtering by execution type nearly impossible during sprint planning. Instead, create separate test plans or at minimum separate test suites for manual and automated workloads. This separation allows QA engineers to focus on exploratory sessions while developers maintain regression suites without interference.

Organizing test suites by execution type

In Azure DevOps, navigate to Test Plans > Test Plans and create a hierarchical structure. Use Static Suites for curated manual scenarios like UAT or smoke tests. Use Requirement-based Suites to automatically group tests linked to user stories or bugs—this is essential for maintaining traceability without manual tagging. For automated tests, rely on pipeline association rather than manual suite assignment where possible, as this keeps the source of truth in code rather than in the UI.

  • Manual Suite: Exploratory testing, usability checks, accessibility validation, and customer-facing UAT scenarios.
  • Automated Suite: Regression packs, API contract tests, performance baselines, and security scans triggered on every PR.
  • Hybrid Suite: Requirement-based suites that contain both types, filtered dynamically during test runs based on execution context.

This structure mirrors how mature teams actually work. If you're setting up CI/CD alongside this, refer to CI/CD best practices for small teams to align your test gates with deployment stages effectively.

When should you use manual testing versus automated testing in Azure DevOps?

Not every test deserves automation. The decision matrix should be driven by ROI, not technology availability. Manual testing excels at discovering unknowns—usability issues, visual regressions, and edge cases that scripted tests cannot anticipate. Automated testing dominates at verifying knowns—regression protection, load testing, and compliance checks that must run consistently across hundreds of builds.

CriteriaManual TestingAutomated Testing
Best forExploratory, UX, ad-hoc validationRegression, smoke, performance, compliance
Execution speedSlow, human-pacedFast, parallelizable
Maintenance costLow upfront, high recurringHigh upfront, low recurring
TraceabilityLinked via test runner sessionLinked via pipeline publish task
Audit evidenceScreenshots, session recordingsLogs, artifacts, deterministic pass/fail
Flakiness riskHuman inconsistencyEnvironment/data dependency issues

In regulated environments, auditors care less about whether a test was manual or automated and more about whether it was executed as defined and traceable to a requirement. Both modes satisfy this if configured correctly. The key is documenting the rationale for manual-only tests in your test plan description to preempt audit questions.

Automated tests only appear in Azure Test Plans if you explicitly publish results using the correct task and associate them with test cases. Simply running tests in a pipeline does not create traceability. This is the most frequent gap I see in teams adopting Azure DevOps for compliance.

Run Tests (NUnit/Jest)Publish Test ResultsAzure Test PlansRelease Gate
CI pipeline sequence publishing automated test results to Azure Test Plans for release gate enforcement.

Publishing test results with correct association

In your YAML pipeline, use the PublishTestResults@2 task immediately after test execution. Crucially, set testRunTitle to match your test plan or suite name for easy filtering, and ensure your test framework outputs TRX or JUnit XML format. For true test case linkage, each automated test method must be associated with an Azure DevOps test case work item via the [TestMethod] attribute or equivalent framework annotation, or linked post-hoc through the pipeline’s test results association feature.

- task: PublishTestResults@2
  inputs:
    testResultsFormat: 'JUnit'
    testResultsFiles: '**/test-results/*.xml'
    mergeTestResults: true
    testRunTitle: 'Regression-Suite-$(Build.BuildId)'
    publishRunAttachments: true

Without publishRunAttachments: true, you lose screenshots and logs that auditors require as evidence. Always enable this for compliance-sensitive projects. For infrastructure validation tests, consider integrating with Terraform-based IaC testing to extend coverage beyond application logic.

How do you execute manual test runs efficiently in Azure Test Plans?

Manual testing in Azure Test Plans uses the Test Runner web interface, which records steps, captures screenshots, and links results directly to test cases. Efficiency comes from preparation: well-written test cases with clear expected results reduce ambiguity and execution time. Avoid writing test steps as prose; use discrete, verifiable actions.

Optimizing manual test sessions

  1. Pre-session setup: Ensure test data and environment access are ready before starting the runner. Context switching kills momentum.
  2. Use shared steps: For common setup sequences (login, navigation), create shared parameterized steps to avoid duplication and maintenance overhead.
  3. Capture evidence inline: Use the built-in screenshot and screen recording tools rather than external snipping tools. This embeds evidence directly in the test result artifact.
  4. Log bugs from runner: When a step fails, use “Create bug” directly in Test Runner. This auto-links the bug to the test case and populates repro steps, eliminating transcription errors.
  5. Mark outcomes deliberately: Pass/Fail/Blocked/Not Applicable are distinct states. Use Blocked when environment issues prevent execution—this signals infrastructure problems vs. product defects.

For teams managing staging environments, align your manual test cycles with environment refresh schedules. See setting up a staging environment that mirrors production to ensure manual tests reflect real conditions.

How do you measure test effectiveness across manual and automated testing?

Coverage metrics alone are misleading. High automation coverage with flaky tests creates false confidence. Low manual coverage with targeted exploratory sessions may catch more critical defects. Effective measurement combines quantitative data from Azure Test Plans dashboards with qualitative assessment of defect escape rates.

Manual Testing Metrics• Execution rate per sprint• Defect detection ratio• Avg. time per test case• Blocked test frequencyAutomated Testing Metrics• Pass rate trend (7-day)• Flakiness index• Pipeline duration impact• Coverage delta per releaseCorrelate
Side-by-side effectiveness metrics for manual and automated testing in Azure Test Plans dashboards.

Build custom Azure DevOps dashboards using the Test Results Trend and Test Plan Progress widgets. Filter by test suite type to isolate manual vs. automated performance. Track defect escape rate separately for each mode: defects found in production that should have been caught by automated regression indicate gaps in automation scope; defects missed by manual testing suggest inadequate exploratory focus or test case design. Review these metrics in sprint retrospectives to adjust the balance between manual and automated investment.

Implementing Azure Test Plans: Manual and Automated Testing for Release Confidence

Azure Test Plans: Manual and Automated Testing succeeds when treated as an integrated system, not two separate tools. Structure your test plans intentionally, link automated results via pipeline tasks, execute manual tests with disciplined evidence capture, and measure effectiveness beyond simple coverage percentages. This approach satisfies both engineering velocity and compliance scrutiny. If your team needs help designing audit-ready test strategies or integrating Azure DevOps with existing infrastructure, reach out to discuss your specific testing challenges.

Frequently Asked Questions

Azure Test Plans costs $52 per user monthly as a standalone service. It is also included in Visual Studio Enterprise subscriptions and Azure DevOps Services Basic + Test Plans bundles, making it free for VS Enterprise subscribers but an additional expense for Basic users needing testing capabilities.

Navigate to Organization Settings, select Billing, and add the Basic + Test Plans access level or purchase standalone licenses. Assign these licenses to specific users under Project Settings > Permissions. Changes propagate immediately without requiring service restarts or downtime.

No, Azure Test Plans does not execute automated tests natively. It links automated test results from Azure Pipelines to test cases for reporting. Execution happens in CI/CD pipelines using frameworks like Playwright or NUnit, while Test Plans aggregates pass/fail data for traceability.

Manual testing uses the Test Runner browser extension for step-by-step execution and result capture. Automated testing relies on external pipelines executing code-based tests. Test Plans unifies both by linking pipeline results to test cases, providing consolidated coverage metrics regardless of execution method.

Yes, through Azure Pipelines integration. Configure your pipeline to publish test results in TRX or JUnit format using the PublishTestResults task. Test Plans automatically associates these results with linked test cases, enabling unified reporting for Selenium and Playwright automated suites alongside manual testing efforts.

Add the PublishTestResults@2 task in your YAML pipeline with testRunTitle matching your test plan name. Ensure automated test methods map to test case IDs via @TestCaseId attributes or association links in the web portal. Results sync automatically after each successful pipeline run completes.

No, all users interacting with test plans require at least Basic + Test Plans access. Stakeholder access only permits viewing dashboards and work items, not test execution or management. Organizations must budget for full licenses for QA teams, developers, and product owners managing test artifacts.

Use the Azure DevOps Office Integration plugin to bulk import test cases from formatted Excel sheets. Map columns to required fields like Title, Steps, and Expected Results. Validate imports in a sandbox project first, as malformed step formatting causes silent failures during the upload process.

The Test Runner extension supports Chrome, Edge, and Firefox stable releases as of 2026. Safari requires manual testing workflows without browser integration. Install the extension from each browser's official store and authenticate with your Azure DevOps credentials before capturing manual test executions.

Create configuration variables under Test Plans > Configurations representing OS, browser, or environment combinations. Assign these to test points within test suites. During execution, testers select applicable configurations, enabling parallel tracking of identical test cases across staging, UAT, and production validation environments.

Yes, use built-in Traceability Matrix and Test Plan Progress widgets on Azure Dashboards. Export test run history via REST API or OData feeds for audit documentation. These reports satisfy SOC2 and ISO 27001 evidence requirements by demonstrating systematic test coverage and defect resolution tracking.

Verify the PublishTestResults task completed successfully in pipeline logs. Confirm test method names match associated test case titles exactly. Check that the test plan and suite IDs in pipeline variables reference active, non-archived plans. Stale associations cause silent result drops without error messages.

Yes, the Exploratory Testing extension captures screenshots, screen recordings, and notes directly into test cases or bugs. Unlike scripted manual tests, exploratory sessions are unstructured and time-boxed. Results attach to work items automatically, preserving context for regression planning and knowledge transfer across distributed QA teams.

Store sensitive test data in Azure Key Vault and reference secrets via pipeline variables rather than hardcoding in test steps. Restrict test plan access using project-level security groups. Enable audit logging to track who viewed or modified test artifacts containing PII or credential references.

Deleting a project permanently removes all associated test plans, suites, cases, and historical results after a 28-day soft-delete recovery window. Export critical test assets via REST API or migration tools before deletion. Cross-project test plan sharing is unsupported, requiring recreation in target projects.