Тестирование с Devtools для тех, кто никогда не. Часть 1 — Elements

Что влияет на самооценку джуна-тестировщика? По нашему опыту, один из ключевых факторов – опыт работы с Devtools. Покажем, как мы применяем этот инструмент на практике при тестировании коммерческих проектов.

Тестирование с Devtools для тех, кто никогда не. Часть 1 — Elements

Для новичков в тестировании панель разработчика – она же Devtools – овеяна ореолом тайны. Ведь там бродят цветные строчки кода, виднеются три тысячи вкладок и даже есть страшное слово «Консоль»… В общем, это что-то на прогерском.

Не так страшна Devtools, как её малюют.

Эта статья – первая в нашем цикле публикаций о панели разработчика. В них мы на конкретных примерах постараемся показать, какие задачи может решать тестировщик с помощью Devtools.

Все описанные ниже кейсы взяты из нашей практики на проекте «Джуны». Он создан, чтобы помочь начинающим тестировщикам получить опыт работы с реальными продуктами.

В «Джунах» мы, с одной стороны, привлекаем предпринимателей и разработчиков, у которых есть сайт, мобильное приложение, лендинг или админки. А с другой – набираем команду начинающих QA, которые под чутким руководством тимлида тестируют тот или иной продукт.

А теперь – к делу!

Первое. Что такое перед нами?

Devtools (от англ. «development tools») — это инструмент веб-разработки, встроенный непосредственно в браузер. С его помощью можно отлаживать страницы и выявлять проблемы в работе сайта.

Как же попасть в Нарнию… в смысле в панель разработчика?

Горячие клавиши для вызова Devtools будут зависеть от операционной системы вашего устройства и браузера, которым вы пользуетесь. Самый простой и универсальный способ – открыть интересующий сайт и в любом месте щелкнуть правой кнопкой мыши. Нажмите в контекстном меню на кнопку «Посмотреть код»/ «Исследовать» – и появится Devtools.

Тестирование с Devtools для тех, кто никогда не. Часть 1 — Elements

Обратите внимание, что само расположение панели настраивается: ее можно закрепить слева, справа, внизу или открыть в отдельном окне.

Тестирование с Devtools для тех, кто никогда не. Часть 1 — Elements

Для примера мы возьмем Devtools в браузере Chrome. К февралю 2024 года он оценивается как самый популярный в мире – с колоссальным отрывом от остальных. Но даже если вы используете другой браузер, сможете сориентироваться – все панели разработчика обладают схожим функционалом.

Второе. А тестирование-то тут причем?

В этой части речь пойдет о первой вкладке – Elements. Она содержит HTML-код страницы в виде структурированных тегов.

<p><i>Такое представление кода называется DOM (Document Object Model). Благодаря организации в виде DOM, скрипты JavaScript получают доступ к HTML-коду страницы и могут вносить в него изменения.</i></p>

Такое представление кода называется DOM (Document Object Model). Благодаря организации в виде DOM, скрипты JavaScript получают доступ к HTML-коду страницы и могут вносить в него изменения.

Elements – лучший друг тестировщика номер раз. Когда тестируете верстку – вам сюда. Ведь в Elements можно посмотреть HTML-код элементов, все применяемые (и игнорируемые) CSS-стили.

Рассмотрим случаи, в которых нам пригодится Elements.

Задача 1. Нужно оценить реализацию макета.

Это самое очевидное применение функционала Elements – проверить, совпадает ли сайт с макетом. Воспользуемся инспектором, чтобы выбрать интересующий нас элемент – во всплывающем окне появится основная информация о нем.

<i>Такие параметры элемента предусмотрены в макете Figma</i>
Такие параметры элемента предусмотрены в макете Figma
<i>А так элемент выглядит на сайте</i>
А так элемент выглядит на сайте

Дополнительно: откроем вкладку Styles и проверим все остальные параметры – будь то цвет, шрифт, отступы или бордер-радиус. Здесь же можно посмотреть, как выглядит на кнопке ховер- или актив-эффект. И тоже сравнить их реализацию с макетом, если необходимо.

<i>Так выглядит кнопка с примененным к ней ховер-эффектом</i>
Так выглядит кнопка с примененным к ней ховер-эффектом

Чем в данном случае полезна Elements? Разве отличия сайта от макета не видны просто на глаз? Чаще да, но не всегда.

Некоторые браузеры и ОС не поддерживают определенные шрифты, и далеко не на всех мониторах цвета выглядят одинаково. Надежнее проверять соответствие элементов макету через код и стили. Например, выбранные цвета или шрифты могут не поддерживаться в браузерах и ОС, которыми пользуется большинство посетителей сайта.

<i>На левом скриншоте видно, как шрифт, предусмотренный в макете, выглядит в браузере Firefox. А справа – на том же устройстве, но в браузере Chrome</i>
На левом скриншоте видно, как шрифт, предусмотренный в макете, выглядит в браузере Firefox. А справа – на том же устройстве, но в браузере Chrome

Задача 2. При наведении на кнопку курсор не меняется на пойнтер.

В чем может быть дело – подскажет код этого элемента. Воспользуемся инспектором, чтобы выбрать интересующую нас кнопку. Откроем вкладку Styles и увидим, что в элементе наследуется дефолтный курсор и не прописана его замена на пойнтер.

<i>При наведении курсор остается дефолтным</i>
При наведении курсор остается дефолтным

Для сравнения можно взять другой кликабельный элемент на той же странице и посмотреть, как стили реализованы для него.

<i>На этой кнопке параметры курсора меняются с дефолтного на пойнтер</i>
На этой кнопке параметры курсора меняются с дефолтного на пойнтер

Дополнительно: можно самим добавить недостающее правило и убедиться, что оно корректно применяется.

<i>С добавленным правилом курсор становится пойнтером при наведении</i>
С добавленным правилом курсор становится пойнтером при наведении

Задача 3. Все страницы открываются в той же вкладке.

В рамках лучших практик считается, что как минимум любые юридические документы и соцсети должны открываться в отдельной вкладке.

Если на тестируемом сайте этого не происходит, скорее всего у таких элементов отсутствует атрибут target="_blank". Или он написан с опечаткой – всякое бывает при спешке в разработке :)

<i>Во всех ссылках отсутствует атрибут для перехода в новую вкладку</i>
Во всех ссылках отсутствует атрибут для перехода в новую вкладку
<i>Для сравнения – на этой странице те же ссылки открываются в новой вкладке</i>
Для сравнения – на этой странице те же ссылки открываются в новой вкладке

Задача 4. Нарушена кликабельность кнопок.

Ошибка может заключаться в верстке – например, кнопка перекрывается другими элементами. Чтобы это понять, нам снова пригодится инспектор из Elements – он показывает расположение блоков, из которых сверстана страница.

<i>Кнопка «Предложений не найдено» работает корректно, но ее перекрывает расположенный ниже блок</i>
Кнопка «Предложений не найдено» работает корректно, но ее перекрывает расположенный ниже блок
Для сравнения – при уменьшенном масштабе кнопка работает корректно, потому что мешавший ей блок сдвинулся

Другой проблемой может быть «неправильная» область кликабельности элемента. Например, ссылка может прикрепляться не непосредственно к кнопке, а ко всему блоку, в котором кнопка расположена. Это также можно отследить через инспектор или непосредственно в HTML-коде.

Из-за подобного строения страницы происходят мисклики – пользователь может случайно попасть в ненужный ему раздел или совершить ненужное действие, кликнув далеко за пределами кнопки. Такое поведение тоже стоит отнести к багам UX\UI.

<i>Весь div с классом check-box отвечает за активацию и деактивацию чек-бокса</i>
Весь div с классом check-box отвечает за активацию и деактивацию чек-бокса

Бывают и другие ошибки, связанные с переходами по страницам. Например, не срабатывает скрипт, отвечающий за кнопку. Подробнее о таком мы писали здесь и здесь.

Задача 5. Нужно проверить, как адаптируется верстка.

Верстка у современных сайтов меняется в зависимости от размера, разрешения и ориентации экрана. Это свойство называется адаптивностью.

Ширина, при которой один вариант отображения сайта преобразуется в другой, называется контрольной точкой, или брейкпоинтом. При создании макета дизайнер продумывает брейкпоинты и изображает, как сайт должен выглядеть на разных экранах.

А проверить, правильно ли задумка реализована на практике, можно с помощью Elements.

Например, в макете мы видим варианты главной страницы сайта: для монитора ноутбука и для вертикальной ориентации планшета. В первом случае – четыре блока в строке, в хедере есть кнопки. Во втором – два блока в строке, кнопки хедера исчезают.

<i>В макете задан внешний вид сайта на экране шириной 1280 px. И на планшете – шириной 834 px</i>
В макете задан внешний вид сайта на экране шириной 1280 px. И на планшете – шириной 834 px

Откройте сайт и нажмите тоггл для смены девайса в Elements. В выпадающем списке Dimensions выберите значение Responsive, чтобы получить возможность менять разрешение вручную. Если задать значения ширины, которые предусмотрены для ноутбука и планшета, будет ли сайт соответствовать макету?

<p><i>Отображение для ноутбука верное, а вот планшет – частично расходится с макетом (в строке по-прежнему четыре блока, а не два)</i></p>

Отображение для ноутбука верное, а вот планшет – частично расходится с макетом (в строке по-прежнему четыре блока, а не два)

Постепенно меняя ширину через стрелки, можно отследить, в правильной ли точке стоит брейкпоинт.

Оказалось, экран меняется таким образом только при ширине 742 px, а не 834 px

Еще к слову об адаптивности: в Elements можно заменить текст любого элемента и посмотреть, как ведет себя верстка. Растягивается ли блок по длине и ширине текста? Присутствует ли какое-то сокращение длинного текста, например, с помощью троеточия? Адаптируются ли шрифты страницы под разные алфавиты?

Откроем HTML-код блока, который хотим протестировать. Кликнем дважды на текст, чтобы включить режим редактирования. И добавим более короткий, длинный, англоязычный или какой угодно текст, отличный от написанного сейчас.

<p><i>Пример адаптационной верстки – вместо названия «Популярные категории» мы поместили в блок длинный текст. Верстка не нарушилась: текст корректно переносится, шрифт слегка уменьшается</i></p>

Пример адаптационной верстки – вместо названия «Популярные категории» мы поместили в блок длинный текст. Верстка не нарушилась: текст корректно переносится, шрифт слегка уменьшается

Магия рассеется в полночь – то есть с обновлением страницы, но этого бывает достаточно для проверки :)

Задача 6. Необходимо посмотреть, как сайт выглядит на разных разрешениях экрана.

Выше мы посмотрели на соответствие сайта заданным в макете брейкпоинтам.

Но если макета нет? Или адаптивность верстки в них никак не описана? Нам все равно стоит посмотреть, как сайт отображается на других мониторах.

Воспользуемся тем же тогглом для выбора кастомного разрешения.

<p><i>Симуляция кастомного разрешения экрана через Devtools</i></p>

Симуляция кастомного разрешения экрана через Devtools

Например, обладатели больших мониторов могут таким образом проверить, как сайт выглядит на маленьких экранах ноутбука – и наоборот.

Если нужно поменять местами высоту с шириной, то есть как бы «перевернуть» виртуальный экран – есть кнопка Rotate.

Еще можно воспользоваться предустановленными расширениями экранов, выбрав в списке Dimensions конкретный планшет или смартфон. Но здесь нужно сделать важный дисклеймер: никто не гарантирует, что на реальном устройстве отображение сайта будет точно таким. Если необходимо проводить кроссплатформенное тестирование, лучше воспользоваться реальными устройствами или хотя бы более надежными эмуляторами.

Итого

Конечно, это далеко не все баги, которые можно локализовать с помощью Elements. Скорее нам хотелось показать, чем может быть полезна эта вкладка в процессе тестирования, и заодно развеять миф о том, что Devtools – что-то страшное и непонятное :)

Если хочется попробовать свои силы в решении конкретных задач по тестированию, можно воспользоваться нашим бесплатным тренажером по Devtools.

А в комментариях напишите, что самое трудное для вас в работе с Devtools – мы постараемся разобрать эти моменты в следующих публикациях ♥

UPD: дополнили статью рассказами про Network, остальные вкладки и лайфхаки в работе с DevTools.

4949
19 комментариев

Ого, у вас крутой тренажер по devtools, добавил себе в закладки 👍

8
Ответить

Тренажер — огонь! Спасибо :)

6
Ответить

Понравилось, что с примерами) Теперь осталось только работу найти 😄

4
Ответить

Для меня он действительно был чем-то страшным и непонятным, но вроде что-то плюс минус стало понятнее!

3
Ответить

А про другие вкладки инфа будет?

Ответить

Обязательно :) Например, в следующей части планируем рассказать про вкладку Network — точно также с примерами и разъяснениями

6
Ответить

Спасибо за статью! Освежила в памяти) еще удобная штука – фильтры для поиска элементов в DOM

1
Ответить