
Привет, Хабр! Меня зовут Иван, я в тестировании более 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 — там мы обсуждаем материалы из статей заранее и голосуем за темы следующих статей на Хабре.
ссылка на оригинал статьи https://habr.com/ru/articles/784710/
Добавить комментарий