> For the complete documentation index, see [llms.txt](https://learning.contextqa.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://learning.contextqa.com/web-testing/requirements-management.md).

# Requirements Management

## Quick answer

Open **Assets → Requirements → New Requirement**, choose a file, connected work tracker, or live crawl, then select **Require Approval** or **Auto Publish**. Generation continues in the background. Before publishing, review variables and use the existing-case marker to distinguish new coverage from a test already in the repository.

{% hint style="info" %}
**Who is this for?** QA engineers, testers, and product managers who want to generate test cases from requirement documents and track coverage gaps automatically.
{% endhint %}

## Overview

The **Requirements Library** is a centralized workspace where you upload requirement files, review AI-generated questionnaires, monitor test case generation, and inspect coverage gaps. Each uploaded file gets a dedicated **Requirements Details** page that keeps the source, AI interpretation, generated coverage, review decisions, and metadata together.

```mermaid
flowchart LR
    A[File, work item, or live crawl] --> B[AI analysis and clarifications]
    B --> C[Generate candidate test cases]
    C --> D{Already in the repository?}
    D -->|Yes| E[Mark the existing case and link its test ID]
    D -->|No| F[Keep as new coverage]
    E --> G[Reviewer checks evidence and gaps]
    F --> G
    G --> H{Publish mode}
    H -->|Require Approval| I[Approve or reject]
    H -->|Auto Publish| J[Publish to suite or plan]
```

***

## Opening the Requirements Library

{% stepper %}
{% step %}

### Navigate to test development

Open <https://app.contextqa.com> and sign in to your workspace. Select **Test Cases** from the left sidebar.
{% endstep %}

{% step %}

### Open the Requirements Library

Select **Assets → Requirements** from the left sidebar. The Requirements Library displays all uploaded requirement files in a searchable, filterable table.
{% endstep %}
{% endstepper %}

***

## Requirements Library table

The table displays one row per uploaded file with the following columns:

| Column             | Description                                                                                                      |
| ------------------ | ---------------------------------------------------------------------------------------------------------------- |
| **Name**           | File name prefixed with a requirement ID (e.g., `REQ-42`). Click the name to open the Requirements Details page. |
| **Type**           | File type — *Requirements* or *Test case* — with a platform icon (Web, Mobile, or API).                          |
| **Status**         | Current processing status displayed as a colored badge.                                                          |
| **Estimated Time** | Time taken to process the file.                                                                                  |
| **Test Cases**     | Number of generated test cases (visible when status is *Completed*).                                             |
| **Created by**     | The user who uploaded the file.                                                                                  |
| **Created Date**   | Date and time of upload.                                                                                         |

**Status values:**

| Status                       | Meaning                                                                                                |
| ---------------------------- | ------------------------------------------------------------------------------------------------------ |
| **Completed**                | Processing finished — test cases are ready for review.                                                 |
| **Pending action**           | The AI needs clarification before generating test cases. Click the row to answer the AI questionnaire. |
| **Processing / In progress** | File is being analyzed. You can continue working — ContextQA notifies you when generation completes.   |
| **Failed / Error**           | Processing failed. Check the error details and re-upload if needed.                                    |

**Table features:**

* **Search** — Filter files by name or ID.
* **Filters** — Filter by format, status, date range, or test plan.
* **Auto-refresh** — Automatically reload the table to check for status updates.
* **Upload requirement** button — Start a new upload directly from the library.

***

## Uploading a requirement file

{% stepper %}
{% step %}

### Click New Requirement

Click **New Requirement** in the Requirements Library header. The source chooser opens.
{% endstep %}

{% step %}

### Select the import mode

Choose the source that matches the requirement:

| Source                         | Description                                                                                                                                                                                                              |
| ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Import Test Cases**          | Upload an Excel spreadsheet (`.xlsx`, `.xls`) containing test case definitions.                                                                                                                                          |
| **Import Requirements**        | Upload requirements documents, images, or video files to generate test cases from specifications.                                                                                                                        |
| **Generate from Integrations** | Choose a connected work tracker, then browse Jira tickets or Azure DevOps work items and generate tests from their content. During the staged rollout, some workspaces may still label the entry **Generate from Jira**. |
| **Generate from Crawl**        | Give an AI agent a starting URL and goal so it can explore a live web flow and create requirement-backed tests.                                                                                                          |
| {% endstep %}                  |                                                                                                                                                                                                                          |

{% step %}

### Select the target platform

| Platform            | Available in                 |
| ------------------- | ---------------------------- |
| **Web Application** | Both modes                   |
| **Mobile**          | Both modes                   |
| **API**             | Import Requirement mode only |
| {% endstep %}       |                              |

{% step %}

### Upload your files

Drag and drop or click to browse. You can upload up to **10 files** per upload in Import Requirements mode. Accepted file types depend on the mode and platform:

| Mode                | Platform     | Accepted formats                                                                                                                        |
| ------------------- | ------------ | --------------------------------------------------------------------------------------------------------------------------------------- |
| Import Test Cases   | All          | `.xlsx`, `.xls`                                                                                                                         |
| Import Requirements | Web / Mobile | `.csv`, `.txt`, `.xlsx`, `.docx`, `.pdf`, image (`.png`, `.jpg`, `.jpeg`, `.webp`), or video (`.mp4`, `.mov`, `.webm`, `.mpeg`, `.mkv`) |
| Import Requirements | API          | `.json`, including a valid Swagger or OpenAPI JSON document                                                                             |

{% hint style="warning" %}
Document and image files have a maximum size of **100 MB** each. Video files have a maximum size of **500 MB** and a maximum duration of **30 minutes** — only one video per upload.
{% endhint %}

After selecting files, each file appears in the **Inputs Attached** list below the drop zone. Expand any file card to add **Additional information** describing what the file contains or how it should be used. Click the delete icon on a file card to remove it before uploading.

Optionally, fill in the **Name** and **Additional information** fields above the drop zone to provide overall context for the requirement set.
{% endstep %}

{% step %} <img src="/files/5a78pIYlqUjpFM1riFTq" alt="Requirement generation configuration for target platform, approval, environment, and AI context" data-size="original">
{% endstep %}

{% step %}
{% hint style="info" %}
For tracker-based generation, choose the integration before the configuration step. Jira and Azure DevOps connections are managed under **Integrations & Plugins**. The Azure DevOps picker supports search by work-item ID or title and filters by project and work-item type.
{% endhint %}
{% endstep %}

{% step %}

### Select a publish mode

Choose how generated test cases are handled after analysis:

| Mode                           | Description                                                                                                                                                                                                                                                   |
| ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Require Approval** (default) | Generated test cases are saved in a pending state. You must manually review and approve them from the Test Cases tab before they are published. The **Create Test Suite**, **Create Test Plan**, and **Execute Test Plan** options are disabled in this mode. |
| **Auto Publish**               | Generated test cases are published immediately after analysis. You can optionally configure test suite, test plan, and execution settings (see next step).                                                                                                    |

{% hint style="info" %}
Publish mode is available in **Import Requirement** mode only. When you select **Require Approval**, use the **Approve All** or **Reject All** buttons on the Test Cases tab to manage generated test cases (see [Test Cases tab](#test-cases-tab)).
{% endhint %}
{% endstep %}

{% step %}

### Configure optional settings

These options are available when **Auto Publish** is selected as the publish mode:

| Option                | Description                                                                                               |
| --------------------- | --------------------------------------------------------------------------------------------------------- |
| **Create Test Suite** | Automatically group generated test cases into a new test suite. Enter a suite name.                       |
| **Create Test Plan**  | Create a test plan for the generated cases. Enter a plan name. Automatically enables test suite creation. |
| **Execute Test Plan** | Run the test plan immediately after generation. Available when **Create Test Plan** is enabled.           |

When the advanced connection section is available, you can also assign an organization-level **Proxy** or **Remote Browser** profile to the plan created from the import. These values apply to the generated plan, not to every generated test case. See [Proxy and remote browser profiles](/execution/proxy-and-remote-browser-profiles.md).
{% endstep %}

{% step %}

### Start generation

Click **Create Test Cases**. ContextQA uploads the file and begins processing.

* If the AI needs clarification, the **AI questionnaire** opens automatically (see [Answering the AI questionnaire](#answering-the-ai-questionnaire)).
* Otherwise, ContextQA generates test cases in the background. The file appears in the Requirements Library with status *Processing*.
  {% endstep %}
  {% endstepper %}

{% hint style="info" %}
When the Figma feature is enabled on your plan, you can select **Figma** as the source instead of uploading a file. Enter a Figma file URL (e.g., `https://www.figma.com/file/...` or `https://www.figma.com/design/...`).
{% endhint %}

***

## Answering the AI questionnaire

When the AI determines that your requirements need clarification, it generates a set of questions. This happens either automatically after upload or when you click a file with **Pending action** status.

The questionnaire dialog displays:

* The file name and the AI's initial analysis message
* One or more clarification questions, each with context explaining why the question is relevant

Type your answer for each question in the provided text area. Then:

* Click **Submit** to send your answers and continue generation.
* Click **Skip & Generate Test Cases** to proceed without answering. This option is available only before you enter any answers.

After submission, a confirmation message appears: *"The requirements are currently being processed. Please review the test cases once they are ready."*

***

## Requirements Details page

Click any file in the Requirements Library to open its **Requirements Details** page. The header displays:

* File name and processing status
* Metadata (file type, test type, requirement code, creator, date)
* Test case count and type badges (Positive, Negative, Edge)
* Actions menu with **View Details**, **Download Original**, **Export Test Cases**, **Re-import / Update**, and **Delete**

Below the header, up to six tabs provide different views of the requirement: **Test Cases**, **Questionnaire**, **Requirement Data**, **History**, **Metadata**, and **Gaps**. The source type controls availability: test-case and video imports omit unsupported tabs, **History** is marked **Coming soon**, and crawl requirements currently show **Gaps** as **Coming soon**.

***

### Test Cases tab

The default tab. Displays all test cases generated from the requirement file in a searchable, filterable table.

**While generation is in progress**, a progress indicator shows:

* Percentage complete and a note that processing may take a few minutes
* A message confirming that generation runs in the background

The details page remains usable while generation runs. You can leave the page and continue other work; ContextQA keeps processing and notifies you when the cases are ready. If the run takes longer than expected, the page changes to a delayed message instead of blocking navigation.

**After generation completes**, the table shows each test case with:

* Name and description
* Variables, including test-data references and detected environment or global-variable references
* Type (Positive, Negative, Edge, Functional, Boundary Value, End to End, Field Validation)
* Priority, prerequisite, and review decision

If a generated candidate matches a test already in the repository, ContextQA places an **existing test case** icon beside its `TC-<id>` link and displays the match reason below the title. Select the linked test ID to inspect the existing case before deciding whether additional coverage is necessary. A newly generated candidate uses an under-review `UR-<id>` until it is accepted.

**Available actions:**

* **Search** test cases by name
* **Filter** by type, priority, prerequisite, or decision
* **Approve All** or **Reject All** to batch-manage generated test cases
* Click a test case row to open a detail drawer with full step information

**Table row actions:**

* View, edit, or delete individual test cases from the row action menu

#### Review detected variables

Open a generated test case and select **Variables** in the detail drawer before approving it.

* `${name}` identifies a value stored with the generated test data.
* `*|name|` identifies a value supplied by the selected environment.
* `{{name}}` identifies a global variable.

The table and drawer display environment and global references as labeled badges so you can distinguish their source. Environment and global values are managed from their respective configuration pages; do not create a second test-data variable with the same purpose. When a variable already has a value that you supplied during the requirement flow, that value is retained instead of being replaced by an environment value. ContextQA also avoids adding a duplicate name to the selected environment.

Special characters that are valid for the selected variable type are preserved after test-case generation. Resolve any syntax warning in the drawer before approving or publishing the case, then confirm the step still references the intended variable.

***

### Questionnaire tab

Displays the AI-generated questions and your answers from the clarification step.

Each entry shows:

* The question text
* Your answer (or a note that the question was skipped)

Use this tab to review what context the AI used when generating test cases. If a question was skipped, a placeholder indicates: *"Question skipped. Regenerate the test case to add an answer."*

***

### Requirement Data tab

The **Requirement Data** tab keeps both the uploaded source material and the AI's interpretation in one place. Switch between the **Requirement Files** and **AI Analysis** sub-tabs.

#### Requirement Files

Displays the files that were uploaded as part of this requirement. Each file appears as an expandable card.

**Each file card shows:**

* **File name** — The name of the uploaded file with a document icon
* **Download** button — Click to download the original file. If the download link is unavailable, the button is disabled with a tooltip explaining the status.
* **Expand/collapse** toggle — When the file has additional context, click the chevron to expand the card and view it

**Expanded card content:**

* **Context** — The additional information provided during upload that describes what the file contains or how it should be used

When no files are associated with the requirement, an empty state message is displayed.

{% hint style="info" %}
This view is most useful when multiple files were uploaded together for one requirement set. It preserves each source file and its context annotation for later review.
{% endhint %}

#### AI Analysis

Shows the AI's analysis of your uploaded requirements, organized into four sections:

| Section              | Description                                                                    |
| -------------------- | ------------------------------------------------------------------------------ |
| **AI Understanding** | A summary of how the AI interpreted your requirements document.                |
| **Assumptions Made** | A numbered list of assumptions the AI made during analysis.                    |
| **Coverage Notes**   | Areas covered by the generated tests, with a summary and bullet-point details. |
| **Warnings & Gaps**  | Areas that may need attention — flagged with warning indicators.               |

A **Confidence Score** (0–100%) indicates how confident the AI is in its analysis. Higher scores mean the requirements were clear and complete.

***

### History tab

{% hint style="info" %}
This tab is coming soon. It will display a timeline of changes made to the requirement file, including re-imports, test case modifications, and status transitions.
{% endhint %}

***

### Metadata tab

Displays detailed information about the uploaded file in three sections:

**File information:**

| Field      | Description                                         |
| ---------- | --------------------------------------------------- |
| File Type  | Format of the uploaded file (e.g., XLSX, JSON, MP4) |
| File Size  | Size of the uploaded file                           |
| Page Count | Number of pages in the document                     |
| Word Count | Total word count                                    |
| Version    | Current version number                              |

**Configurations:**

| Field                   | Description                                           |
| ----------------------- | ----------------------------------------------------- |
| Test Plan               | Associated test plan name (if created during upload)  |
| Test Suite              | Associated test suite name (if created during upload) |
| Platform                | Target platform (Web, Mobile, or API)                 |
| Browser / Mobile Device | Target browser or mobile device                       |
| Environment             | Environment selected for generation or execution      |

**Timestamps:**

| Field         | Description                             |
| ------------- | --------------------------------------- |
| Created By    | User who uploaded the file              |
| Created At    | Upload date and time                    |
| Last Modified | Date and time of the most recent change |

**Labels:** Any tags applied to the requirement file.

***

### Gaps tab

Identifies coverage gaps between your requirements and the generated test cases. The page displays each gap as a card in a two-column grid.

**Each gap card shows:**

* **Title** — A short description of the missing coverage area
* **Similarity score** — How closely the gap relates to existing test cases (displayed as a progress bar)
* **Tags** — Requirement ID, test case priority, test case type, and prerequisite warnings
* **Why missing** — An explanation of why this area lacks coverage

Click **View details** on any gap card to open a detail drawer with:

* **Similarity score** — A visual ring chart with a description of the score level
* **Summary** — Detailed explanation of the gap
* **What's missing** — A numbered list of specific items not covered
* **Suggested test cases** — AI-recommended test cases to close the gap

**Gap drawer actions:**

* **Add** individual suggested test cases to your project
* **Add All Suggestions** to close the gap at once
* **Dismiss** the gap if it is not relevant

***

## Row actions in the Requirements Library

Right-click or use the action menu on any file in the Requirements Library for quick actions:

| Action                 | Description                                              |
| ---------------------- | -------------------------------------------------------- |
| **View Details**       | Open the Requirements Details page                       |
| **Download Original**  | Download the originally uploaded file                    |
| **Export Test Cases**  | Export generated test cases                              |
| **Re-import / Update** | Upload a new version of the requirement file             |
| **Delete**             | Remove the requirement file and its generated test cases |

***

## Related documentation

* [Creating Test Cases](/web-testing/creating-test-cases.md) — All test case creation methods including file import
* [AI Test Generation](/ai-features/ai-test-generation.md) — All 10 AI test generation methods
* [Managing Test Suites](/web-testing/managing-test-suites.md) — Organize test cases into suites
* [Test Data Management](/web-testing/test-data-management.md) — Variables and data-driven testing
* [Azure DevOps integration](/integrations/azure-devops.md) — Generate requirements from work items and report failures
* [PR Impact Analysis](/ai-features/pr-impact-analysis.md) — Map pull-request changes to affected tests
* [Proxy and remote browser profiles](/execution/proxy-and-remote-browser-profiles.md) — Route generated plans through saved connections


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://learning.contextqa.com/web-testing/requirements-management.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
