Привет, Хабр! Меня зовут Иван, я в тестировании более 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.
Открываем Devtools; Cmd+Option+I | F12
Вкладка Elements;
???? Выбираем прицел и кликаем на первый абзац;
???? Раскрываем тег <p> и копируем текст.
11. На сайте dzodzo необходимо протестировать локализацию. Замени текст на английский и проверь отображение шрифта.
Повторяем шаги из задания 10;
Выделяем текст и заменяем его на другой;
Увеличиваем кол-во символов для проверки отображения верстки.
Решения технических задач точно пригодятся на собеседовании и для тех, кто их будет задавать :) Спасибо за изучение материала и заглядывайте в QAtoDev - там мы обсуждаем материалы из статей заранее и голосуем за темы следующих статей на Хабре.
Комментарии (15)
Andrey_V_S
05.01.2024 21:34+1Про карандаш интересно. Карандаш бывает не только графит в дереве, он может быть куском свинца или серебра, может быть обмотан бумагой, может быть автоматическим - цанговым. Может быть т.н. химическим то есть не стираться и оставлять след подобный чернилам. Растушевать карандаш 9H, ну попробуй.
ИМХО в этом задании ответ " без внятного ТЗ результат ХЗ" самый верный. А так есть пишущий элемент, его можно обновлять при истерании ну и хватит.
StjarnornasFred
05.01.2024 21:34Подозреваю, что если соискатель при слове "карандаш" представляет себе что-то отличное от грифеля в деревяшке, то это, мягко говоря, странная личность. А если работодатель пытается на этом его подловить, то это не собеседование, а игра кто кого обманет. В мире нормальных людей просьба что-то сделать с карандашом по умолчанию (без дополнительного контекста, хотя бы без уточнения "цанговый карандаш" или "восковой карандаш") таких вопросов не вызывает. Тем более что этот самый карандаш, скорее всего, лежит на виду и соискателю даже его цвет уточнять не потребуется.
QANovikov
05.01.2024 21:34+1А Вам важен факт отправки данных на сервер или факт их сохранения в бд ? Если все таки второе, то 200 в POST запросе и ответ с данными об этом не говорят.
Vsevo10d
05.01.2024 21:34+2Запах не должен быть специфичным
Специфичным - в смысле каким-то определенным, легко отличаемым и известным? Или в том смысле, что конкретный запах не принадлежит конкретному карандашу, то есть, все могут вонять, но одинаково?
3 шаг. Негативное тестирование
проверяет поведение функционала при нестандартных действиях:6 Шаг. Стресс-тестирование. Проверка за пределами допустимого:
Что-то не соображу, вот это под какой пункт подпадает?
Rub3N
05.01.2024 21:34Ну думаю что если Junior+ с 2х летнем стажем то ок. Если у человека 2х года опыта и решился податся в вашу компанию на Jun+ (хотя и не понятно что такое этот плюс) то ему так и надо))) пусть тестирует карандаш, и ручку (дверьную конечно) и пусть бекенд тестить с фронта и в бд лезать чтобы фронт проверить. Я думаю достойно. Про чекисты ничего не могу сказать. Реально чеклист джуна. В общем хороший гайд для тех кто Jun+.
Kuzrus
05.01.2024 21:34То лифт., то карандаш., то еще какая несуразица:))., а главное - целая армия экспертов! Даже страшно на собеседование идти;))
gigimon
В 2024 году еще кто-то задает вопросы про карандаш? Какой ужас. Хотя в целом, что первая часть, что вторая, говорит о методах 10-15 летней давности в найме, не хотел бы я к вам попасть на собеседование
Zrgk
А какие тогда вопросы современные, по-вашему?
gigimon
Подробнее узнать за опыт и то, что человек делал на прошлых проектах, основывать вообще вопросы на этом. Так человек себя чувствует спокойно на интервью (интервью и смена работы для большинства людей очень нервное дело, на котором хорошие специалисты могут себя показать не очень)
Технические вопросы лучше базировать на том, что на вашем проекте используется и до чего у тестировщиков есть доступ. У меня был опыт, когда меня долго и нудно гоняли по селениуму и ui тестированию, хотя брали в команду, где UI нет и даже не предвидится. Я всегда спрашиваю по тем технологиям, что важны на текущем проекте и смотрю на знание фундаментальных знаний.
Очень часто гоняют по теории тестирования, хотя никогда и нигде ее не применяют, потому что "это долго документировать и соблюдать" (конечно, бывают исключения). Абсолютно не вижу в этом смысла, потому что везде свои стандарты описания, формы и инструменты
Когда беру автоматизатора, то всегда задаю 10 вопросов по языку на который беру, от простого к сложному и примерно на 5-6 уже понятно насколько хорошо человек пишет код (к этому приходил долго, гонял раньше и по задачкам и по большому количеству вопросов, лучше не было)
Очень нравится просто пообсуждать задачки, типичные для прошлой работы или проекта куда беру, возможно даже текущие над которыми работает команда
ivaniksanov Автор
Какой селениум у Джуна спрашивать? А языки программирования? Тема статьи - технические задания для junior qa. Это не вопросы по теории тестирования. Я не могу раскрывать необходимый стек на проектах, в которых принимаю участие. Поэтому пишу статьи, где отвечаю на вопросы и задания, которые пользуются популярностью. Если вы не согласны с источниками, то прошу приложить свои. Буду благодарен Вам!
gigimon
Вы в первой статье пишете "Делюсь своим списком вопросов и ответов, которые я ожидаю услышать.", в первой я решил не комментировать (редко набираю ручников), но во второй, увидев про карандаш, не смог держаться :)
Если в этой статье не ваши вопросы, а только ваши ответы, тогда вопросов нет.
ivaniksanov Автор
Я задаю вопросы, связанные с Devtools. Про тестирование карандаша никогда не спрашивал и не буду. Я лишь предоставил решения задачи. Вопросы старые, согласен, но я приложил источники этих вопросов и не я их придумал.