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

> ## Agent Instructions
> Spur is an AI-powered QA engineer that lets teams create and run automated end-to-end tests for web and mobile apps using natural language.
> When answering questions about Spur, cite the relevant page from docs.spurtest.com.

# Write your first test

> Create your first Spur test in minutes by generating steps from a video or Loom link, writing them manually, or importing an existing automation script.

## Ways to write tests

<Card icon="video" horizontal href="/authoring-tests/test-side-peek/video-to-test" title="Video to step generation">
  Simply drop in a video file, or paste a Loom Recording Link and we'll generate the test steps for you.
</Card>

<Card icon="pen-to-square" horizontal href="/getting-started/web-prompting" title="Writing steps manually">
  Write your tests yourself, step by step! Useful for trickier flows, or high-level tests.
</Card>

<Card icon="video" horizontal href="/authoring-tests/test-side-peek/script-to-test" title="Script to step generation">
  Upload a script and we'll create test steps.
</Card>

## Creating your test

<Steps>
  <Step title="Fill in basic test information">
    Start with the essential details:

    <Frame>
      <img src="https://mintcdn.com/spur/H3xqe3VyV7YeO-e5/images/Screenshot2026-02-04at7.06.44PM.png?fit=max&auto=format&n=H3xqe3VyV7YeO-e5&q=85&s=cb8b589145ea4c4a0dc0051069ed37d8" alt="Test creation form showing fields for URL, viewport size, and test configuration options" width="786" height="526" data-path="images/Screenshot2026-02-04at7.06.44PM.png" />
    </Frame>

    * **Test Name**: Give your test a clear, descriptive title for internal organization
    * **Test Description**: Add detailed context about the test's purpose
    * **Test URL**: The starting URL of your test (complete path, e.g., [https://your-domain-name.com](https://your-domain-name.com))
    * **Viewport Size**: Choose the screen size for test execution (e.g., MacBook Pro 15")
  </Step>

  <Step title="Configure test settings">
    Set up your test configuration:

    <Frame>
      <img src="https://mintcdn.com/spur/M9lHLoA7TzDZQpbJ/images/loing-test.png?fit=max&auto=format&n=M9lHLoA7TzDZQpbJ&q=85&s=da04b8e0922cbe9e9945bb7a72ff8da7" alt="Test configuration section showing authentication options" width="1074" height="712" data-path="images/loing-test.png" />
    </Frame>

    * **Authentication Settings**:
      * Start from logged-in state: Begin test using login state from another test
      * Save login state: Make this test's login state available for other tests

    <Note>
      Using a custom authentication setup? If you encounter any issues, the Spur team is here to help optimize your configuration. Don't hesitate to reach out for personalized assistance.
    </Note>

    * **File Upload Configuration**:
      * Include files for upload: Add files needed during test execution
    * **Caching Options**:
      * Enable caching for faster test execution
      * [Learn more about caching](/authoring-tests/caching-tests)

    <Note>
      Authentication configuration is crucial for tests that require user login states.
    </Note>
  </Step>

  <Step title="Add dependencies and teardowns">
    Configure test prerequisites and cleanup:

    **Dependencies**

    * Select tests that need to run before your test
    * Dependencies are recursive - if your selected test has dependencies, they'll be included

    **Teardown Tests**

    * These run at the END to reset your application state
    * Example: If your test uploads a file, the teardown should delete it
    * Mark tests as teardown tests to make them available for other tests

    <Tip>
      ### Teardown Tests are Critical

      Always set up appropriate teardown tests to maintain a clean test environment
    </Tip>
  </Step>

  <Step title="File uploads">
    For tests requiring file uploads:

    * Specify the files needed for the test
    * Files must be under **5MB each**
    * Ensure proper file paths and permissions

    <Note>
      File upload capability is essential for completing tests that interact with file inputs
    </Note>
  </Step>
</Steps>

## Best practices

1. **Clear Naming**: Use descriptive names for your tests
2. **Proper Verification**: Include VERIFY statements for critical checkpoints
3. **Clean Teardown**: Always include cleanup steps
4. **Modular Design**: Break complex flows into smaller, reusable tests
5. **Proper Dependencies**: Configure test dependencies correctly

## Next steps

Ready to run your test? Learn how to execute and monitor your tests!
