Перейти к основному содержимому

Основы тестирования веб-приложений — маршрут для QA

Тестировщику Аналитику

Зачем эта статья. Типичный курс QA по вебу охватывает пять больших блоков: основы, клиент–сервер, backend, формы и фронтенд, нефункциональные проверки. В энциклопедии эти темы разбросаны по разделам «Тестирование», «Сеть», «HTML», «Безопасность». Здесь — единый маршрут: что читать, в каком порядке и что проверять руками на стенде.


Как пользоваться маршрутом

ШагДействие
1Пройдите блоки 1–2, если только входите в веб-QA
2Откройте Ручное тестирование веба — практические чек-листы
3По задаче углубляйтесь в смежные разделы по ссылкам из таблиц
4Автоматизацию подключайте после ручной базы — 115, 1182
Связка «теория → практика»

Прочитали про HTTP — сразу откройте DevTools → Network на любом сайте. Прочитали про роли — войдите под двумя учётками и сравните доступ к /admin. Без такой связки материалы остаются абстракцией.


Блок 1 — основы веба для тестировщика

Архитектура браузера — что нужно QA

Тестировщику не обязательно знать исходники Chromium, но структура браузера объясняет, куда смотреть при баге.

КомпонентЗачем QA
UI браузераАдресная строка, вкладки, закладки — навигация пользователя
Движок рендеринга (Blink, Gecko, WebKit)Разная отрисовка CSS и шрифтов → кроссбраузерные баги
JavaScript-движок (V8, SpiderMonkey, JavaScriptCore)Ошибки в Console, «белый экран» на SPA
Сетевой стекЗапросы HTTP/HTTPS, cookies, кэш — вкладка Network
DevToolsElements, Console, Network — ежедневный инструмент ручного QA

Где углубиться

HTML и структура страницы

HTML — каркас, который видит браузер и скринридер. QA проверяет не синтаксис ради синтаксиса, а поведение элементов.

ЭлементЧто проверить
Формы (form, input, select)Отправка, валидация, обязательные поля — чек-лист форм
Ссылки (a href)Все ли ведут куда нужно, нет ли javascript:void(0) вместо действия
Кнопки (button vs a)Клик с клавиатуры, тип submit vs button
Семантика (nav, main, h1)Заголовки, landmarks — база для accessibility

Где углубитьсяраздел HTML.

Навигация

Проверки навигации — в 128: меню, хлебные крошки, кнопка «Назад», модальные окна, 404/500, title и favicon.

Для SPA добавьте: смена URL без перезагрузки, deep link (открытие /orders/123 напрямую), состояние после F5 — см. Playwright и SPA.

Локализация и интернационализация

ТерминСмыслЧто тестировать
i18nПродукт готов к переводуСмена локали не ломает логику, даты и числа
l10nКонкретный язык и регионТексты, валюта, форматы, правовые формулировки

Чек-лист l10n для веба

  • Переключение языка сохраняется после F5 и логина
  • Длинные немецкие/финские строки не обрезают кнопки
  • RTL (арабский, иврит) — порядок элементов и выравнивание
  • Форматы даты, времени, валюты по региону
  • Ввод на национальной раскладке в полях поиска и логина
  • SEO-мета (title, description) на целевом языке

Теория i18n/l10n — Классификация видов тестирования. Мобильные сценарии — 124.

Характеристики качества

Нефункциональные свойства веба описывают как система работает, а не что делает.

ХарактеристикаПримеры для вебаМатериал
ФункциональностьСценарии по ТЗ1, 127
ПроизводительностьВремя загрузки, TTFB122
БезопасностьXSS, IDOR, сессии123
UsabilityПонятность интерфейса111, маршрут веб-дизайна
Accessibility (a11y)Клавиатура, скринридер, контраст111, 128
СовместимостьБраузеры, разрешения128
Надёжность / availabilityUptime, деградация при сбое122, DevOps-мониторинг

Стандарт ISO/IEC 25010 систематизирует эти характеристики — см. Экономика производства ПО.


Блок 2 — клиент–серверное взаимодействие

HTTP и REST

HTTP — язык общения браузера и API с сервером. Минимум для QA:

ТемаМинимумСтатья
МетодыGET, POST, PUT/PATCH, DELETE2, 1274
Коды2xx, 4xx, 5xx128
ЗаголовкиContent-Type, Authorization, Cookie, Set-Cookie2
ТелоJSON, application/x-www-form-urlencoded, multipart2
RESTРесурсы, идемпотентность GET/PUT/DELETE117

Базовый разбор протокола — HTTP как основа веб-интеграций.

DNS

DNS переводит shop.example.com в IP-адрес сервера. Для QA важно понимать:

  • неверный DNS на стенде → «сайт не открывается» при рабочем backend;
  • CDN и балансировщик могут отдавать разный контент по региону;
  • при отладке curl/Postman иногда нужен Host-заголовок или запись в /etc/hosts.

Где углубитьсяDNS — система доменных имён.

Анализ запросов и логов

ИсточникЧто даёт QA
DevTools → NetworkСтатус, тело, timing, HAR-экспорт
Логи веб-сервера (nginx, Apache)4xx/5xx, медленные запросы, IP
Логи приложенияStack trace, business-код ошибки, correlation id
Логи БДМедленные запросы, блокировки

При баге с сетью приложите к отчёту: URL, метод, статус, фрагмент Request/Response, Request-Id или trace id из заголовка.

Где углубитьсяЛогирование и мониторинг, 128.

Перехват трафика, прокси и брандмауэр

Зачем QA перехват

  • увидеть запрос «как его шлёт браузер», а не только ответ на экране;
  • подменить ответ (mock) для негативных сценариев;
  • проверить, не уходит ли лишнее в query string (пароль, токен);
  • воспроизвести медленную сеть и обрыв соединения.
ИнструментКогда использовать
Chrome DevToolsЕжедневно — Network, Throttling, Override
Burp Suite / OWASP ZAPГлубокий анализ, повтор запросов, security-smoke
Charles / FiddlerПерехват HTTPS на desktop, мобильный прокси
Postman InterceptorСвязка браузера и коллекции Postman

Прокси стоит между клиентом и сервером: корпоративный фильтр, кэш, MitM для отладки. Брандмауэр может блокировать порты — симптом «работает у разработчика, не работает у QA в офисе».

Этика и правила

Перехват HTTPS и пентest-инструменты — только на своих стендах или с письменным разрешением. На production без согласования — нарушение политики и закона.

Где углубиться


Блок 3 — динамика и backend

Серверы приложений и стек

Типовая цепочка: браузер → балансировщик → веб-сервер (nginx) → приложение (Node, Java, PHP…) → БД.

QA на интеграционном стенде проверяет, что версии компонентов совпадают с релизной матрицей, а конфиг (env, feature flags) — с тест-планом.

Где углубитьсяКак работают сайты, веб-серверы.

БД и SQL для проверки данных

UI может показывать «Успех», а в БД — пусто или дубль. После критичных операций (регистрация, оплата, смена статуса) сверяйте данные запросом.

ЗадачаПример
Запись создаласьSELECT * FROM orders WHERE id = …
Статус сменилсяpayment_status = 'paid'
Нет дубляодин заказ на двойной submit
Мягкое удалениеdeleted_at IS NOT NULL, UI скрывает

Где углубитьсяSQL для тестировщика, раздел SQL.

Аутентификация, авторизация, cookies, OAuth

МеханизмЧто проверить
Логин/парольНегатив, блокировка, политика пароля
Сессия (cookie / JWT)Logout, истечение, F5, два браузера
«Запомнить меня»Срок жизни cookie по ТЗ
Роли (RBAC)Гость не видит /admin; user не редактит чужие данные
OAuth 2.0 / SSOВход через Google/GitHub; отзыв доступа; callback URL
2FAОбязательность, резервные коды, блок после N попыток

Чек-лист прав доступа (IDOR-smoke)

  • Открыть /api/users/100 под user A — только свои данные
  • Подменить id в URL или теле запроса на чужой — 403/404, не чужой профиль
  • Прямая ссылка на админ-раздел без роли — редирект или 403
  • Действие «удалить» доступно только владельцу или admin

Сессии в UI — 128. Теория auth — Аутентификация и авторизация. OAuth в API — Публичный API и OAuth 2.0. Cookies — Cookies и хранилища.


Блок 4 — формы, вёрстка и интерактивность

GET и POST

МетодОсобенностьРиск для теста
GETПараметры в URLУтечка в логах, истории браузера, Referer
POSTТело запросаПовторная отправка при «Назад», CSRF

После успешной POST-формы ожидайте PRG (Post/Redirect/Get) — иначе браузер предложит повторить отправку. Проверка — 128.

Функциональное тестирование

Функциональные проверки строятся из требований и техник тест-дизайна: эквивалентные классы, границы, таблицы решений, попарное тестирование.

HTML, CSS и адаптивность

ЗонаПроверки
ВёрсткаНаложения, обрезанный текст, сломанная сетка
Адаптив320px, 768px, 1920px; бургер-меню; горизонтальный скролл
Zoom 125–200%Читаемость, кликабельность — часть a11y
Тёмная темаКонtrast, иконки, границы полей

CSS-теория — разделы HTML и интерфейс. Практика — 128.

JavaScript, DOM, AJAX и SPA

ТехнологияСимптом багаГде смотреть
JS-ошибкаБелый экран, кнопка «мертвая»Console
DOMЭлемент есть в Elements, но не виденdisplay, visibility, overlay
AJAX / fetchДанные не обновилисьNetwork → XHR/Fetch
SPAURL сменился, контент старыйNetwork, timing, 1182 SPA

Smoke для SPA

  • F5 на внутреннем маршруте не даёт 404
  • Кнопка «Назад» ведёт себя предсказуемо
  • Лоадер исчезает после ответа API
  • Ошибка API показывает сообщение, а не вечный спиннер

JavaScript для контекста — раздел JS.


Блок 5 — нефункциональное тестирование и смежные темы

Производительность

Минимум для ручного QA без JMeter:

  • DevTools → Performance / Lighthouse — TTFB, LCP, CLS
  • Network → Throttling (Slow 3G) — usable или белый экран
  • Список из 100+ элементов — пагинация, виртуализация, время отклика

Системная нагрузка — 122 Нагрузочное тестирование, практика — 1014.

Защищённость

Базовый security-smoke для QA (не замена пентest):

  • HTTPS везде, нет mixed content
  • Cookie с HttpOnly, Secure, SameSite где нужно
  • Нет секретов в URL и в ответах API
  • Ошибка 500 не показывает stack trace пользователю
  • Заголовки X-Frame-Options / CSP — clickjacking

Углубление — 123, пентest веба.

Usability и accessibility

Usability — наблюдение за пользователем или экспертный обход: «где кнопка?», «понятна ли ошибка?».

Accessibility (a11y) — WCAG 2.x: клавиатура, контраст, alt у картинок, labels у полей. Инструменты: axe DevTools, Lighthouse, NVDA/VoiceOver.

Краткий a11y-smoke — 128. Классификация — 111.

Автоматизация

УровеньИнструментСтатья
APIPostman, pytest, REST Assured2, 1011, 1015
E2E UIPlaywright, Selenium1182, 1181
СтратегияПирамида, CI115

Автотесты дополняют ручные чек-листы из 128, не заменяют исследовательское тестирование новых фич.

SEO и мониторинг — что проверяет QA

SEO-smoke (если продукт зависит от поиска):

  • Уникальные title и meta description на ключевых страницах
  • robots.txt и sitemap.xml доступны на стенде
  • Канонический URL (link rel="canonical") без дублей
  • Open Graph / Twitter Card для шаринга
  • Core Web Vitals в норме — пересекается с performance

Мониторинг — зона DevOps/SRE, но QA должен знать:

  • алерт «5xx > порога» блокирует релиз;
  • дашборды uptime, latency, error rate;
  • после деплоя — smoke + сверка метрик.

Где углубитьсяSEO-оптимизация, мониторинг в DevOps.


Сводная таблица — покрытие syllabus

Тема курсаСтатусГлавные материалы
Архитектура браузера, HTML, навигацияПокрытоэтот маршрут, 127, HTML, 128
Локализация, характеристики качестваПокрыто111, 128, 124
HTTP, DNS, логи, прокси, перехватПокрыто2, 1274, 6, 614–615
Backend, SQL, auth, OAuth, праваПокрыто129, 128, 111 auth
GET/POST, формы, CSS, JS, DOM, AJAX, SPAПокрыто128, 1182
Perf, security, usability, a11y, авто, SEO, мониторингПокрыто122, 123, 111, 115, 118, DevOps 19
Чего пока нет отдельной статьёй

Нет одного длинного учебника «веб-QA от А до Я» — зато есть этот маршрут и практика в 128. Отдельный глубокий курс по Burp для функционального QA (не пентest) и развёрнутый l10n-чек-лист для веб-магазинов — кандидаты на следующие статьи раздела.


Рекомендуемый порядок чтения

  1. Основы тестированияКлассификация
  2. Этот маршрут (132) — обзор веб-стека
  3. От URL до пикселей — как грузится страница
  4. Ручное тестирование веба — ежедневные чек-листы
  5. Тестирование APISQL для тестировщика
  6. Дополнительные модули — Git, HTTP, soft skills
  7. По роли: 115 + 1182 или 122 / 123

Навигация по разделу «Тестирование»

См. также

Другие статьи этого же раздела в боковом меню (как на странице "О разделе").