Что такое E2E-тест и приведите его пример.

«Что такое E2E-тест и приведите его пример.» — вопрос из категории Автоматизация тестирования, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

E2E-тест (end-to-end) — это тип автоматизированного тестирования, который проверяет работу приложения как целостной системы, имитируя действия реального пользователя от начала до конца бизнес-сценария.

Пример E2E-теста для процесса оформления заказа с использованием Playwright:

import { test, expect } from '@playwright/test';

test('Полный цикл покупки товара', async ({ page }) => {
  // 1. Открытие сайта и выбор товара
  await page.goto('https://demo-shop.example.com');
  await page.click('data-testid=product-card-1');
  await page.click('text=В корзину');

  // 2. Переход в корзину и оформление
  await page.click('#cart-icon');
  await expect(page.locator('.cart-item')).toHaveCount(1);
  await page.click('text=Оформить заказ');

  // 3. Заполнение формы
  await page.fill('#email', 'customer@example.com');
  await page.fill('#address', 'ул. Примерная, 123');
  await page.click('#confirm-payment');

  // 4. Проверка успешного завершения
  await expect(page.locator('h1')).toHaveText('Заказ подтверждён!');
  await expect(page).toHaveURL(/order-success/);
});

Характеристики E2E-тестов:

  • Цель: Проверка интеграции всех компонентов (фронтенд, бэкенд, БД, сторонние сервисы).
  • Уровень: Высокий, ближе к пользовательскому сценарию.
  • Выполнение: Часто запускаются в CI/CD пайплайне после модульных и интеграционных тестов.
  • Инструменты: Cypress, Playwright, Selenium, TestCafe.