# Features

A feature is one testable part of your web app, usually one page or one area of a page, such as “Checkout” or “User settings”. Every test belongs to a feature. You can let Testifly’s AI agent discover features for you, define them yourself, or create them from Jira or Linear issues.

## Where do I see my features?

Click **Features** in the side menu. The page shows the total, for example _“31 FEATURES AND 425 TESTS”_, and a tree of all features.

- Click the arrow next to a feature to show or hide its sub-features and tests.
- The **orange number** next to a feature is the number of features and sub-features inside it.
- The **blue number** is the number of tests in the feature and its sub-features.
- Each test shows its test suites and its current status.

### How do I filter the list?

Click **FILTER**. You can filter by:

- text in the test name or description
- test suite
- automation status
- run status
- whether the test is a prerequisite

### How do I run only the tests I filtered?

Filter the list, then click **RUN FILTERED TESTS**. Testifly runs every visible test that has code. See [Runs and Results](/content/documentation/runs-and-results/index.html).

## What is the quick view?

Click a feature in the tree. A panel opens on the right with:

- the feature name and a short overview (click **READ MORE** for the full text)
- the **Feature URL**, its **Test suites** and its **Last Run**
- **RUN ALL TESTS** – runs every runnable test in the feature
- **ADD FEATURE** – adds a sub-feature inside this feature
- **ADD TEST** – opens the new test page for this feature
- **OPEN FULL VIEW** – opens the feature page
- the feature’s UI components

## How do I add a feature?

1. Go to **Features** and click **ADD FEATURE**.
2. Enter the **Feature URL**, for example `https://example.com/account/settings`. Testifly checks right away whether a feature with the same URL exists.
3. Under **Create From**, choose one option:

| Option | What happens |
| --- | --- |
| **Use Agent for automatic feature discovery and test creation** | The agent scans the page, names the feature, writes its definition and creates tests. The button says **Discover Feature**. You cannot use this option on a URL that already has a feature. |
| **Define feature and test manually** | You enter the **Feature Name**, **Test Suites**, **Overview** (required) and **Definition** yourself. Nothing is scanned. You add tests afterwards. |
| **From Jira** | You pick one or more Jira issues. The agent then discovers the feature and uses the issues as extra context. This option appears only when Jira is connected. See [Jira Integration](/content/documentation/jira-integration/index.html). |
| **From Linear** | Same as Jira, with Linear issues. See [Linear Integration](/content/documentation/linear-integration/index.html). |

4. Click **Discover Feature** or **Save Feature**.

To add a **sub-feature**, open the parent feature’s quick view and click **ADD FEATURE** there.

## What does the agent do when it discovers a feature?

When you choose automatic discovery (or Jira or Linear), Testifly starts a **Feature Discovery** job. You can follow it on the **Jobs** page. While it runs, the feature page says _“We are currently automating this feature and will email you once it’s ready.”_

1. **Open the page.** The agent starts a real browser on one of Testifly’s runners. If your app needs a login, it first signs in with the project’s login test.
2. **Split the page into sections.** The agent takes screenshots and divides the page into logical segments, such as a header, a form or a table.
3. **Record the UI components.** It lists every button, field, link, menu and table, and gives each one a name, a description and a screenshot.
4. **Click and observe.** It interacts with the components to learn what they do, for example which menu opens or which page a link leads to. Links to new pages on the same site become new features and are scanned in turn.
5. **Write the feature description.** It writes an **Overview**, a detailed **Definition** with acceptance criteria, the business value and any limits it noticed. If the feature came from Jira or Linear, the issue text is used as well.
6. **Write tests.** It creates tests in four categories: Visibility, Functionality, Business Logic and Negative. It adds shared prerequisite tests, such as _Page Loaded Verification_, and places tests into your test suites based on the suite names and descriptions. It also writes tests that cross several related features.
7. **Automate and run.** The new tests go straight to automation, and tests that automate successfully are run. See [Tests](/content/documentation/tests/index.html).

You get an email when discovery is finished, and another when automation is finished.

### What is the difference between discovering one feature and discovering the whole app?

- **Add Feature → Discover Feature** starts from that one URL. If the page links to other pages on the same site that Testifly has not seen yet, they are added as sub-features of the new feature and scanned too, up to your feature limit.
- **Settings → Actions → Start feature discovery from the beginning** maps your whole app again, starting from the base URL, and adds pages it has not seen before.
- **Settings → Actions → Continue with feature discovery** picks up pages that were found earlier but not scanned yet.

Discovery never opens URLs you listed in **Settings → Exclusions**, and it stops adding features when the project reaches its feature limit.

## What can I change on the feature page?

Open a feature with **OPEN FULL VIEW**. You can edit most things by clicking them:

- **Title** – click to rename the feature.
- **Overview** and **Definition** – click to edit. Both support Markdown formatting.
- **UI Components** – see every recorded component with its screenshot.
- **Details → Feature URL** – the page the feature lives on.
- **Details → Parent** – click to move the feature under another feature, or choose no parent.
- **Details → Test suites** – click **ADD** to put the whole feature into a suite. All of its tests then run with that suite.
- **Runs → RUN ALL TESTS** – runs the feature’s tests. The history of earlier runs is listed below the button.
- **Tests → ADD TEST** – adds a test. Click a test in the list to open it.

Changing a feature’s text does not change its existing tests.

## How do I delete a feature?

On the feature page, click **DELETE** at the bottom of the side panel and confirm. Testifly deletes the feature, its tests and its UI components. This cannot be undone. Results of earlier runs stay in the run history.

The internal login feature cannot be deleted, because every test that needs a login depends on it.

## Why can I not add more features?

Each project has a feature limit. When you reach it, **ADD FEATURE** is disabled. Hover over it to see _“Feature Limit (…) Reached”_. Discovery also stops adding new pages. The limit depends on your plan. During the trial it is small. To raise it, choose a plan in **Settings → Billing** or email [support@testifly.dev](mailto:support@testifly.dev).
