# Web Testing Overview

{% hint style="info" %}
**Who is this for?** Testers and SDETs who want to automate web application testing using natural language — no Selenium or Playwright expertise required.
{% endhint %}

ContextQA's web testing capabilities let you build automated tests for any web application in natural language — no code required. The AI agent navigates real browsers, interacts with your UI, and verifies results exactly as a human QA engineer would.

***

## How Web Testing Works

1. **Describe the test** — Write what you want to test in plain English, including the steps to perform and what to verify.
2. **ContextQA creates the steps** — The AI parses your description into structured, executable steps.
3. **Execution runs in a real browser** — The AI agent navigates Chrome, Firefox, Safari, or Edge with actual browser rendering and JavaScript execution.
4. **Evidence is collected automatically** — Screenshots, video, network HAR, and console logs are captured for every run.
5. **AI self-healing keeps tests green** — If a UI element changes, the agent automatically finds the equivalent new element and continues.

***

## Supported Browsers

| Browser | Versions            | Notes                     |
| ------- | ------------------- | ------------------------- |
| Chrome  | Latest + 2 previous | Default; best performance |
| Firefox | Latest + 2 previous |                           |
| Safari  | Latest              | macOS/iOS only            |
| Edge    | Latest              | Chromium-based            |

Browser selection is configured in the **Test Plan** or per individual execution run.

***

## What You Can Test

* **Single-page applications** (React, Angular, Vue, Svelte) — full JavaScript execution and dynamic routing
* **Traditional server-rendered sites** — page loads, form submissions, redirects
* **Authentication flows** — login, logout, SSO/SAML redirect handling, MFA (with Knowledge Base entries)
* **Multi-step workflows** — checkout flows, onboarding wizards, multi-page forms
* **Data entry and validation** — form field inputs, error messages, required field enforcement
* **Navigation and routing** — breadcrumbs, back button behavior, deep link handling
* **API-backed UI** — the network monitor captures all XHR/fetch requests, so API failures surface in test results
* **PDF and file download** — verify that downloads trigger and files have expected content
* **File uploads** — test file input fields with actual files
* **Responsive layouts** — set the viewport size per run to test desktop, tablet, and mobile breakpoints

***

## In This Section

| Page                                                                   | What you'll learn                                                                                  |
| ---------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
| [Creating Test Cases](/web-testing/creating-test-cases.md)             | How to write effective test descriptions; AI-powered test generation from tickets and requirements |
| [Test Steps Editor](/web-testing/test-steps-editor.md)                 | Manual step editing; conditional logic (If / Else If / Else), loops, API calls, and step groups    |
| [Database Steps](/web-testing/database-steps.md)                       | Run SQL queries during tests and verify backend data with assertions                               |
| [Custom Code Steps](/web-testing/custom-code-steps.md)                 | Execute custom JavaScript for complex logic, calculations, and DOM interactions                    |
| [Document Generation Steps](/web-testing/document-generation-steps.md) | Generate TXT and CSV files dynamically for file upload and import testing                          |
| [Managing Test Suites](/web-testing/managing-test-suites.md)           | Grouping test cases; building regression and smoke suites                                          |
| [Test Data Management](/web-testing/test-data-management.md)           | Data-driven testing with parameterized profiles; local and global variables                        |
| [AI Self-Healing](/web-testing/self-healing.md)                        | How self-healing works; reviewing and approving healing suggestions                                |

***

## Quick Start: Your First Web Test

If you want to jump straight in:

1. Go to **Test Cases** in the left navigation.
2. Click **+ New Test Case**.
3. Choose **Start with AI Assistance**.
4. Enter your application URL and a plain-English description:

   ```
   Navigate to https://demo.myapp.com/login
   Enter admin@test.com in the email field
   Enter the password Admin123!
   Click the Login button
   Verify the page heading reads "Welcome back"
   ```
5. Click **Generate Test Case**.
6. Watch the AI run, capture screenshots, and build the structured steps.
7. Click **Run** to execute the saved test case.

The test is now saved and can be added to a suite and scheduled.

***

## Tips for Effective Web Tests

* **Be specific about what to verify** — "verify the order confirmation number appears" is better than "verify the page loads".
* **Use your Knowledge Base** — if your app has cookie banners, chat widgets, or feature tours, add Knowledge Base entries to dismiss them automatically before they interfere with tests.
* **Keep tests atomic** — one test case per user scenario. This makes failures easier to diagnose.
* **Use step groups for shared setup** — if 20 test cases all start with "log in as admin", create a Login step group and reuse it.
* **Set realistic environments** — always use an Environment record instead of hardcoding URLs in steps, so the same tests can run against staging and production.

***

## Related Pages

* [Tutorial: Data-Driven Testing](/web-testing/data-driven-testing-tutorial.md)
* [Core Concepts](/getting-started/core-concepts.md)
* [Execution & Scheduling](/execution/running-tests.md)
* [AI Features Overview](/ai-features/ai-features.md)
* [MCP Server](/mcp-server/overview.md)

{% hint style="info" %}
**70% less manual test maintenance with AI self-healing** [**Book a Demo →**](https://contextqa.com/book-a-demo/)
{% endhint %}


---

# Agent Instructions: 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:

```
GET https://learning.contextqa.com/web-testing/web-testing.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
