
Привет, Хабр! Меня зовут Иван, я в тестировании более 2-х лет. Начинал свой путь с курса Яндекс Практикума (подробнее в тг канале). Продолжаем разбирать вопросы и технические задания на собеседовании QA manual. Перед прочтением этой статьи рекомендую ознакомиться с моей предыдущей работой Какие вопросы я задаю на собеседовании QA Junior+
По традиции оставляю ссылки на вопросы и технические задания для подготовки к собесу, но к сожалению не все ресурсы предоставляют ответы и не все правильные.
Я лишь предоставляю ответы на технические задания, которые пользуются спросом на ресурсах ниже:
Хекслет - Как пройти собеседование на тестировщика: все этапы и вопросы.
Telegra.ph - Собеседование с QA. 250+ вопросов для Junior, Middle, Senior.
Test, Test, Test - Test-engineer Interview или QA_Bible
Практические задания
1. Написать чек-лист для функционала корзины в интернет-магазине.

Добавление товара в корзину | |
1 | При нажатии на кнопку "Добавить в корзину" товар успешно добавляется в корзину |
2 | Количество выбранных товаров в корзине обновляется при изменении |
3 | Информация о товаре (название, цена, изображение) отображается корректно в корзине |
Управление количеством товаров в корзине | |
4 | Пользователь может изменять количество товаров в корзине (увеличивать или уменьшать) |
5 | Общая стоимость товаров в корзине автоматически пересчитывается при изменении количества |
6 | При уменьшении количества товаров до нуля, товар удаляется из корзины (проверка окна подтверждения "Удалить товар из корзины?") |
Удаление товара из корзины | |
7 | Пользователь может удалить товар из корзины |
8 | После удаления товара, общая стоимость товаров в корзине автоматически пересчитывается |
Отображение информации о корзине | |
9 | Корзина отображается на всех страницах сайта, где это необходимо |
10 | Информация о количестве товаров в корзине видна пользователю |
11 | Пользователь может перейти в корзину для просмотра и оформления заказа |
Оформление заказа | |
12 | Пользователь может перейти к оформлению заказа из корзины |
13 | При оформлении заказа, пользователь должен указать необходимую информацию (адрес доставки, контактные данные и т.д.) |
14 | Пользователь получает подтверждение о размещении заказа после успешного оформления |
Отсутствие товара | |
15 | При возникновении ошибок (например, отсутствие товара в наличии), пользователь получает соответствующее сообщение |
16 | При возникновении ошибок при оформлении заказа, пользователь получает информацию о причине ошибки и возможные действия для её исправления |
2. Написать тестовые наборы данных для поля ввода даты, которое отсеивает пользователей в возрасте до 18 лет.
Для решения этого задания необходимо использовать технику тест-дизайна "Граничные значения" и сервис Калькулятор возраста
Дата проверки поля ввода на 04.01.2024
Дата | Возраст | Комментарий |
05.03.2006 | 17 лет 10 месяцев 0 дней | За два месяца |
04.02.2006 | 17 лет 11 месяцев 0 дней | За месяц |
05.01.2006 | 17 лет 11 месяцев 30 дней | Значение около границы за пределами класса |
04.01.2006 | 18 лет 0 месяцев 0 дней | Значение на самой границе |
03.01.2006 | 18 лет 0 месяцев 1 день | Значение около границы за пределами класса |
02.12.2005 | 18 лет 1 месяц 2 дня | Далеко за пределами значения |
Можно добавить проверки на логику сравнения даты и месяца:
Дата | Возраст | Комментарии |
04.01.2007 | Проверяем дату рождения, но 17-летие | Дата рождения позже даты проверки |
04.01.2005 | Проверяем дату рождения, но 19-летие | Дата рождения раньше даты проверки |
04.01.2024 | Проверяем текущую дату рождения | Дата рождения совпадает с датой проверки |
3. Протестировать «предмет» для различных видов тестирования. (Предмет — лифт, карандаш, калькулятор и т.д.)

Для начала необходимо спросить "Есть ли требования к карандашу?" Если вы пропустите этот вопрос и приступите к тестированию, то считай вы провалили задание.
- Требований нет.
1 шаг. Исследовательское тестирование
на основе косвенных требований
.
Мы знаем что должен делать карандаш - писать по бумаге, но с возможностью стереть данные ластиком. Карандаш может быть разной формы, цвета и жесткости:
✏️ Форма влияет на функционал и на удобство использования. Круглый скатится со стола, с гранями не должен "резать" руку, три грани слишком крупно и подойдет не для всех пользователей. Есть ли ластик на карандаше и выполняет он свою прямую функцию?
✏️ Цвет не влияет на функционал (говорим не про цвет графита, а про визуальную часть). Цвет не должен нести лишнюю информацию, кроме как визуального акцента или бренда компании;
✏️ Запах не должен быть специфичным;
✏️ Степень жесткости стержня влияет на функционал. Для художников, писателей и просто для конспектирования информации необходимы разные уровни жесткости.
2 шаг. Позитивное тестирование
проверяет все функции, которые должен выполнять продукт:
✏️ Писать на разных видах бумаги;
✏️ Чертить под наклоном;
✏️ Растушевать набросок.
3 шаг. Негативное тестирование
проверяет поведение функционала при нестандартных действиях:
✏️ Письмо на мокрой поверхности;
✏️ Письмо на лакированной бумаге;
✏️ Письмо на твердых предметах; В школе любят рисовать на партах и будет супер, если это сотрется с ДСП.
4 шаг. Тестирование локализации:
✏️ Писать на морозе! Я еще со студенческих времен помню, что ручка на морозе не пишет, а карандаш - пожалуйста :) В космосе...
✏️ Писать на жирных пятнах в тетради.
✏️ Писать справа налево. Письмо можно смазать рукой, если стержень карандаша мягкий.
✏️ Писать мелким шрифтом арабские, китайские символы. Мягкий карандаш с этим не справится.
5 шаг. Нагрузочное тестирование. Проверка в пределах допустимого:
✏️ Падение со стола;
✏️ Проверка степени давления на корпус;
✏️ Проверка степени давления на стержень;
✏️ Проверка давления на стержень под углом.
6 Шаг. Стресс-тестирование. Проверка за пределами допустимого:
✏️ Погрызть зубами. Крошится ли дерево и слезает краска.
✏️ Удар по карандашу с давлением. Например падение в пенале и в портфеле.
7 шаг. Тестирование совместимости:
✏️ Помещается ли в пенал;
✏️ Подходит ли по толщине под отверстия точилок;
✏️ Походит ли для большинства ластиков.
4. Есть веб-страница с полями: e-mail, password и кнопкой submit. Необходимо привести примеры отрицательных тест-кейсов, по которым можно проверить эту страницу.

Негативные проверки:
📂 Нажать на submit с пустыми полями
📂 Неверный формат e-mail
📂 Превышено кол-во символов e-mail
📂 Неверный формат password
📂 Превышено кол-во символов password
📂 Ввести верный e-mail, но неверный password
📂 Ввести верный password, но неверный e-mail
📂 Обновить страницу при заполнении полей
5. Предположим, что после нажатия кнопки submit страница перезагружается и ранее введенные данные исчезают. Как проверить, что информация отправлена в базу данных?

Как проверить, что данные отправились на сервер, если у нас нет доступа к бэкенду?
Открываем Devtools; Cmd+Option+I | F12
Вкладка Network;
🔴 Стираем данные в сетевом журнале;
Нажимаем на submit повторно;
🔵 Проверяем, что в сетевом журнале появился запрос со статусом 200 ОК 🟢;
Payload, Preview, Respones
Второй вариант смотреть запись в БД:
SELECT *
FROM table_name
ORDER BY id DESC
LIMIT 1
SELECT e-mail
FROM table_name
WHERE e-mail = 'QAtoDev@gmail.com';
ORDER BY id DESC
LIMIT 1
6. Привести примеры тест-кейсов для функционала, находящегося на нескольких страницах проекта (например, поле поиска).

Проверка отображения Бургер-меню на странице Публикации;
Проверка нажатия на Профиль со страницы результатов поиска;
Проверка ввода данных в поле поиска на странице Профиля;
Проверка счетчика на кнопке Уведомления (Недавние действия);
Отображение окна "Позвоните нам" в правом нижнем углу веб-страницы.
Поле поиска |
Проверить поиск со страницы 1 2 3 4 5 |
Проверить поиск находясь в профиле |
Проверить поиск находясь в корзине |
Проверить результаты поиска на странице 1 2 3 4 5 |
Отображение истории поиска на странице 1 2 3 4 5 |
Переход со страницы 1 2 3 4 5 на результат поиска |
Возвращение из результата поиска на страницу 1 2 3 4 5 |
7. Поле username должно быть обязательным, но оно не обязательно. Приведите пример баг-репорта, созданного для этой ошибки.
Название | Отсутствие обязательного ввода данных в поле username при регистрации. |
ID | 777 |
Приоритет | Средний |
Прелусловие | Перейти на t.me/QAtoDev |
Шаги: | Нажать "Войти" |
Нажать "Еще нет акаунта" | |
Ввести email | |
Пропустить поле username | |
Ввести password | |
Нажать "Регистрация" | |
ОР | Уведомление об ошибке "Введите username" |
ФР | Переход на страницу профиля... |
Приложение | Скрин с веб-сайта, скрин из БД, скрин каст... |
Исполнитель 1 | Backend - сделать поле обязательным на уровне БД |
Исполнитель 2 | Frontend - отобразить маркер обязательного поля для заполнения + окно с предупреждением |
8. Есть таблица books с полями: name, price, page_count. Нужно выбрать все имена книг, в которых price более 10 единиц и количество страниц от 20 до 100.
SELECT name
FROM books
WHERE price > 10 AND page_count BETWEEN 20 AND 100;
9. Задание на работу по SQL.
Извлечь номер телефона и адрес пользователя Ivan
.
SELECT phone_number, address
FROM users
WHERE name = 'Ivan';
Вытащить данные о пользователях, имеющих сумму заказа более 2000
.
SELECT *
FROM users
WHERE user_id IN (
SELECT user_id
FROM orders
GROUP BY user_id
HAVING SUM(order_amount) > 2000
);
Подсчитать количество заказов в таблице и общую сумму заказов.
SELECT COUNT(*) AS total_orders, SUM(order_amount) AS total_order_amount
FROM orders;
10. На сайте dzodzo отображается эссе на тему "Будьте внимательны к своим мыслям – они начало поступков". Скопируй первый абзац эссе, используя Devtools.

Данным знанием мы проверяем знания вкладки Elements в Devtools. Скопировать обычным способом, путем выделения текста курсором не получиться.
Открываем Devtools; Cmd+Option+I | F12
Вкладка Elements;
🟢 Выбираем прицел и кликаем на первый абзац;
🟠 Раскрываем тег <p> и копируем текст.
11. На сайте dzodzo необходимо протестировать локализацию. Замени текст на английский и проверь отображение шрифта.
Повторяем шаги из задания 10;
Выделяем текст и заменяем его на другой;
Увеличиваем кол-во символов для проверки отображения верстки.

Итог
Решения технических задач точно пригодятся на собеседовании и для тех, кто их будет задавать:) Лично я задаю на собеседованиях тех.задания под номером 4, 5, 9, 10, 11.
Спасибо за изучение материала и заглядывайте в QAtoDev - там мы обсуждаем материалы из статей заранее и голосуем за темы следующих статей на Хабре.