> ## Documentation Index
> Fetch the complete documentation index at: https://docs.featherhq.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Testing Lab

> Testing Lab helps you generate scenarios, run repeatable evaluations, and compare agent behavior before deployment.

Testing Lab is Feather's structured environment for validating agent behavior before you send real traffic to a new version.

## What It Helps You Catch

* Prompt regressions
* Weak objection handling
* Missing tool coverage
* Broken booking or transfer paths
* Inconsistent qualification behavior

## Core Objects

* **Scenario**: the test case
* **Run**: one execution over one or more scenarios
* **Expected outcome**: the condition you want the agent to satisfy

## Generate Scenarios

Use generated scenarios when you want a wide spread of realistic tests from a short brief.

```bash theme={"system"}
curl -X POST "https://prod.featherhq.com/api/v1/testing-lab/scenarios/generate" \
  -H "X-API-Key: $FEATHER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "agent_id": 123,
    "num_scenarios": 5,
    "inbound_phone_number": 456,
    "first_message": "Hi, I wanted to learn more about your pricing.",
    "extra_instructions": "Include one confused prospect, one price-sensitive prospect, and one customer asking for a callback.",
    "generate_expected_outcomes": true,
    "tags": ["release-candidate"]
  }'
```

## Run Scenarios

```bash theme={"system"}
curl -X POST "https://prod.featherhq.com/api/v1/testing-lab/scenarios/run" \
  -H "X-API-Key: $FEATHER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "agent_id": 123,
    "scenarios": [1001, 1002, 1003],
    "frequency": 1,
    "name": "RC1 voice validation",
    "outbound_phone_number": "+14155550999",
    "tags": ["release-candidate"]
  }'
```

## Suggested Testing Process

1. Generate or hand-author scenarios for the core jobs the agent must complete.
2. Include edge cases, objections, and failure paths.
3. Run the candidate version.
4. Fix prompts, tools, or settings.
5. Re-run before deployment.

## What Good Scenarios Look Like

Good scenarios are:

* Specific about the caller or sender goal
* Focused on one main success condition
* Diverse in tone and objections
* Tagged so release candidates can be compared over time

## Related Guides

<CardGroup cols={2}>
  <Card title="Agents" icon="robot" href="/documentation/core-concepts/agents">
    Validate each new version before deployment.
  </Card>

  <Card title="Workflows" icon="timeline" href="/documentation/core-concepts/workflows">
    Test the agents used in automated outreach.
  </Card>

  <Card title="Testing Lab API" icon="code" href="/api-reference/testing-lab/generate-testing-lab-scenarios">
    Generate, inspect, and run scenarios.
  </Card>

  <Card title="Calls API" icon="code" href="/api-reference/calls/list-all-calls">
    Review live production results after launch.
  </Card>
</CardGroup>
