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

# Create your first test

> Write one instruction, choose its intent, and send it.

A test starts as a sentence in the project's chat.

## Write the instruction

Say what to do and what should be true at the end.

```text theme={null}
Sign in with demo@example.com / secret123, open Settings, change the display
name to "QA Bot", save, and check the header shows QA Bot.
```

Two habits carry most of the weight:

1. **Name things you have actually seen on the page.** *"the Sign in button"*,
   *"the Email field"*, *"the cart badge"*. Testorim does not know your site's
   copy before it opens it.
2. **Say what "done" looks like.** A test with no stated outcome can only
   check that nothing exploded.

[Writing tests](/test-creation/writing-tests) goes into this properly.

## Choose the intent

Two controls sit next to the chat input.

<AccordionGroup>
  <Accordion title="Should fail: negative tests" icon="shield-x">
    Turn this on when the app is *supposed* to refuse. The run passes when the
    action is correctly rejected, and fails when it goes through.

    ```text theme={null}
    Try to sign in with the wrong password and check an error is shown.
    ```

    If no step in the plan expects a refusal, Testorim appends one rather than
    letting a "should fail" test quietly pass because nothing was checked.
  </Accordion>

  <Accordion title="Time limit: slow workflows" icon="timer">
    The default cap is 10 minutes. Raise it (5 to 120 minutes) for flows that
    legitimately take a long time: a scrape, an import, a background job you
    are waiting on.

    Raising the cap also stretches the step timeouts and the sweeper that
    reclaims dead runs, so a healthy 30-minute job is not cancelled
    mid-flight.
  </Accordion>
</AccordionGroup>

## Send it

Press send. One of three things happens.

<Tabs>
  <Tab title="It runs">
    Steps appear in the execution bar and screenshots start streaming. Skip to
    [Run and inspect a test](/getting-started/run-and-inspect).
  </Tab>

  <Tab title="It asks you something">
    If the instruction needs values Testorim cannot invent, such as real
    credentials, a coupon code or an account number, it pauses and shows a
    small form. Fill
    it in and the plan is written again with your values.

    Password-type fields are masked, and their values are stripped before
    anything is stored or sent to a model.
  </Tab>

  <Tab title="It refuses">
    A refusal always names the reason: no plan on the account, the month's run
    allowance is spent, too many runs already in flight, or the feature needs
    a paid plan. See [Common issues](/troubleshooting/common-issues#a-run-will-not-start).
  </Tab>
</Tabs>

## Mid-run prompts

Some flows cannot be scripted ahead of time: a one-time code from an
authenticator, an SMS code, a device-trust prompt. Ask for it in the
instruction and Testorim will stop mid-run and wait for you:

```text theme={null}
Sign in with demo@example.com, then ask me for the 6-digit code from my
authenticator app and enter it.
```

The run parks for up to 10 minutes waiting for your reply, then continues with
the value you gave. See [Test data](/test-creation/test-data#values-you-supply-mid-run).

<Note>
  Mid-run prompts need a person watching. A scheduled run, a CI-triggered run
  or a fuzz variant has no input channel, so the step fails with that reason
  instead of hanging.
</Note>

## What gets saved

A chat message and its run are persisted whether the run passed or not, so the
project's history holds the failures too. Nothing is saved as a *reusable*
test until you press **Save as test**. See
[Reusable flows](/test-creation/reusable-flows).


## Related topics

- [What is Testorim](/index.md)
- [Create a project](/getting-started/create-a-project.md)
- [Quickstart](/getting-started/quickstart.md)
- [Create (or re-use) a project](/api-reference/projects/create-or-re-use-a-project.md)
- [Reusable flows](/test-creation/reusable-flows.md)
