DevTools для тестировщика

Approved

Как использовать браузерные DevTools в ежедневной работе QA: network, console, elements, storage и debugging.

Содержание

DevTools - один из самых полезных инструментов QA в вебе. Он помогает видеть не то, что "кажется на экране", а то, что реально происходит в браузере: какие запросы ушли, что вернул сервер, какие ошибки появились в JavaScript, что хранится в cookies и storage, почему элемент не кликается и какой слой перекрывает интерфейс.

Многие начинающие тестировщики открывают DevTools только когда уже всё сломалось. Это рабочий путь, но не лучший. Намного сильнее привычка держать его рядом даже во время обычного тестирования. Тогда странные сигналы видны раньше, и расследование не начинается с фразы "ну вроде просто не работает".

Почему DevTools так важен для QA

Главная ценность DevTools в том, что он быстро разделяет баги по слоям.

Один и тот же симптом "не сохраняется форма" может означать совершенно разные вещи:

  • кнопка неактивна из-за состояния DOM
  • обработчик события не сработал
  • запрос вообще не отправился
  • запрос ушёл, но сервер вернул ошибку
  • ответ успешный, но UI не обновился
  • данные сохранились, но страница показывает stale state
  • ошибка есть в console, но пользователь её не видит

Без DevTools всё это выглядит как один дефект. С DevTools QA уже через минуту понимает, в какую сторону копать.

Какие панели особенно нужны QA

Тестировщику не обязательно знать весь DevTools одинаково глубоко. На практике есть несколько панелей, которые дают максимум пользы каждый день.

  • Elements - посмотреть DOM, атрибуты, классы, скрытые блоки, disabled state, layout и стили
  • Network - увидеть запросы, ответы, headers, payload, timing, redirects, caching
  • Console - заметить JS-ошибки, warnings и runtime-проблемы
  • Application - проверить cookies, localStorage, sessionStorage, service workers и состояние приложения в браузере
  • Sources - полезно, когда нужно понять, где именно ломается JS-логика, поставить breakpoint или проверить source map

Этого набора уже достаточно, чтобы уровень web QA резко вырос.

Elements: почему элемент "есть", но не работает

Панель Elements помогает увидеть реальную структуру страницы. Это особенно полезно, когда UI визуально вводит в заблуждение.

С её помощью QA может проверить:

  • элемент действительно существует в DOM или только кажется, что должен быть
  • не скрыт ли он через CSS
  • не disabled ли он
  • не перекрыт ли другим слоем
  • не уехал ли за экран
  • какие классы и атрибуты у него реально есть
  • меняется ли DOM после действия пользователя

Это очень полезно для форм, модалок, тултипов, выпадающих списков, таблиц, динамических блоков и состояний loading/error/empty.

Network: главный инструмент для связи UI и backend

Если QA уверенно пользуется только одной вкладкой DevTools, это почти всегда должен быть Network.

Именно здесь видно:

  • какой запрос ушёл
  • на какой URL
  • с каким методом
  • какие headers и body были отправлены
  • какой пришёл статус
  • что вернулось в response
  • сколько времени занял запрос
  • был ли redirect
  • не было ли повторных или лишних вызовов
  • не вмешался ли caching

Через Network очень быстро выясняется, проблема в UI или в backend. Например, если запрос не ушёл вообще, причина почти наверняка на фронте. Если сервер вернул 403, а UI пишет "неизвестная ошибка", то дефект уже в обработке ответа. Если запросов два вместо одного, стоит думать про двойной submit, retry или лишний render.

Для QA Network - это мост между пользовательским действием и реальным техническим поведением системы.

Console: баги, которые не видны глазами

Console особенно полезна там, где интерфейс ведёт себя странно, но не показывает явную ошибку пользователю.

  • кнопка нажимается, но ничего не происходит
  • часть страницы не перерисовывается
  • модалка не открывается
  • фильтр зависает
  • один сценарий работает, а другой внезапно ломается после предыдущего шага

Очень часто в такие моменты в Console уже лежит ошибка JavaScript. И это резко меняет качество расследования. Вместо "иногда не открывается" QA может принести в баг-репорт конкретную runtime-ошибку и её контекст.

Важно только не путать полезный сигнал с шумом. В больших проектах в Console может быть много warning'ов и сторонних сообщений. Но именно поэтому полезно замечать, что появляется нового именно в момент твоего сценария.

Application: состояние пользователя в браузере

Панель Application особенно важна для сценариев, где участвуют:

  • сессии
  • авторизация
  • remember me
  • storage
  • feature flags
  • service workers
  • кэш и оффлайн-поведение

Через неё QA может увидеть:

  • какие cookies реально выставлены
  • что лежит в localStorage и sessionStorage
  • что осталось после logout
  • не живёт ли старое состояние между сессиями
  • влияет ли service worker на поведение приложения
  • не использует ли страница устаревший кэш

Очень много "необъяснимых" багов на вебе оказываются просто проблемами клиентского состояния. И без этой панели их легко принять за случайную нестабильность.

Что особенно полезно делать QA в DevTools

  • открывать Network до начала сценария, а не после сбоя
  • чистить лог и смотреть только на запросы текущего действия
  • сравнивать успешный и неуспешный сценарий
  • смотреть response и timing, а не только status code
  • проверять Console после странного поведения UI
  • заглядывать в Application при проблемах с логином, вкладками, refresh и logout
  • использовать Elements, когда "кнопка есть, но не работает"

Это простые вещи, но именно они чаще всего и дают быстрый прогресс в качестве тестирования.

Практический пример

Представь баг: пользователь нажимает "Оплатить", и экран зависает на loading.

Что полезно сделать через DevTools:

  • в Network проверить, ушёл ли запрос вообще
  • если ушёл, посмотреть статус, response и timing
  • в Console проверить, не упал ли frontend после ответа
  • в Elements убедиться, не перекрыл ли loading overlay интерфейс навсегда
  • в Application посмотреть, не сломалось ли состояние сессии или не исчезли нужные данные

Без DevTools это выглядело бы как "иногда зависает". С DevTools уже можно понять, это timeout backend, ошибка JS, двойной запрос, stale state или сломанный loading layer.

Что должен вынести QA из этой темы

  • DevTools помогает видеть реальное поведение браузера, а не только визуальный результат.
  • Самые полезные панели для QA - Elements, Network, Console и Application.
  • Большая часть web-багов локализуется быстрее, если смотреть не только на экран, но и на DOM, запросы, ошибки и browser state.
  • DevTools лучше открывать не только при поломке, но и во время обычного тестирования.
  • Чем увереннее QA работает с DevTools, тем быстрее он отделяет frontend-проблему от backend-проблемы и тем точнее пишет баг-репорты.

Что ещё почитать

  • Внутри базы: Cookies, SessionStorage, LocalStorage
  • Внутри базы: HTTP и HTTPS
DevTools для тестировщика | QA Hub