Привет, Хабр! Меня зовут Иван, я в тестировании более 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 страница перезагружается и ранее введенные данные исчезают. Как проверить, что информация отправлена ​​в базу данных?

Проверка запроса в сетевом журнале Network
Проверка запроса в сетевом журнале Network

Как проверить, что данные отправились на сервер, если у нас нет доступа к бэкенду?

Открываем 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)


  1. gigimon
    05.01.2024 21:34
    +4

    В 2024 году еще кто-то задает вопросы про карандаш? Какой ужас. Хотя в целом, что первая часть, что вторая, говорит о методах 10-15 летней давности в найме, не хотел бы я к вам попасть на собеседование


    1. Zrgk
      05.01.2024 21:34
      +1

      А какие тогда вопросы современные, по-вашему?


      1. gigimon
        05.01.2024 21:34
        +2

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

        2. Технические вопросы лучше базировать на том, что на вашем проекте используется и до чего у тестировщиков есть доступ. У меня был опыт, когда меня долго и нудно гоняли по селениуму и ui тестированию, хотя брали в команду, где UI нет и даже не предвидится. Я всегда спрашиваю по тем технологиям, что важны на текущем проекте и смотрю на знание фундаментальных знаний.

        3. Очень часто гоняют по теории тестирования, хотя никогда и нигде ее не применяют, потому что "это долго документировать и соблюдать" (конечно, бывают исключения). Абсолютно не вижу в этом смысла, потому что везде свои стандарты описания, формы и инструменты

        4. Когда беру автоматизатора, то всегда задаю 10 вопросов по языку на который беру, от простого к сложному и примерно на 5-6 уже понятно насколько хорошо человек пишет код (к этому приходил долго, гонял раньше и по задачкам и по большому количеству вопросов, лучше не было)

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


        1. ivaniksanov Автор
          05.01.2024 21:34
          +1

          Какой селениум у Джуна спрашивать? А языки программирования? Тема статьи - технические задания для junior qa. Это не вопросы по теории тестирования. Я не могу раскрывать необходимый стек на проектах, в которых принимаю участие. Поэтому пишу статьи, где отвечаю на вопросы и задания, которые пользуются популярностью. Если вы не согласны с источниками, то прошу приложить свои. Буду благодарен Вам!


          1. gigimon
            05.01.2024 21:34

            Вы в первой статье пишете "Делюсь своим списком вопросов и ответов, которые я ожидаю услышать.", в первой я решил не комментировать (редко набираю ручников), но во второй, увидев про карандаш, не смог держаться :)

            Если в этой статье не ваши вопросы, а только ваши ответы, тогда вопросов нет.


    1. ivaniksanov Автор
      05.01.2024 21:34

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


  1. Andrey_V_S
    05.01.2024 21:34
    +1

    Про карандаш интересно. Карандаш бывает не только графит в дереве, он может быть куском свинца или серебра, может быть обмотан бумагой, может быть автоматическим - цанговым. Может быть т.н. химическим то есть не стираться и оставлять след подобный чернилам. Растушевать карандаш 9H, ну попробуй.

    ИМХО в этом задании ответ " без внятного ТЗ результат ХЗ" самый верный. А так есть пишущий элемент, его можно обновлять при истерании ну и хватит.


    1. StjarnornasFred
      05.01.2024 21:34

      Подозреваю, что если соискатель при слове "карандаш" представляет себе что-то отличное от грифеля в деревяшке, то это, мягко говоря, странная личность. А если работодатель пытается на этом его подловить, то это не собеседование, а игра кто кого обманет. В мире нормальных людей просьба что-то сделать с карандашом по умолчанию (без дополнительного контекста, хотя бы без уточнения "цанговый карандаш" или "восковой карандаш") таких вопросов не вызывает. Тем более что этот самый карандаш, скорее всего, лежит на виду и соискателю даже его цвет уточнять не потребуется.


  1. QANovikov
    05.01.2024 21:34
    +1

    А Вам важен факт отправки данных на сервер или факт их сохранения в бд ? Если все таки второе, то 200 в POST запросе и ответ с данными об этом не говорят.


  1. Boethiah
    05.01.2024 21:34

    "Скопируй первый абзац эссе, используя Devtools."????


  1. Vsevo10d
    05.01.2024 21:34
    +2

    Запах не должен быть специфичным

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

    3 шаг. Негативное тестирование проверяет поведение функционала при нестандартных действиях:

    6 Шаг. Стресс-тестирование. Проверка за пределами допустимого:

    Что-то не соображу, вот это под какой пункт подпадает?


  1. Rub3N
    05.01.2024 21:34

    Ну думаю что если Junior+ с 2х летнем стажем то ок. Если у человека 2х года опыта и решился податся в вашу компанию на Jun+ (хотя и не понятно что такое этот плюс) то ему так и надо))) пусть тестирует карандаш, и ручку (дверьную конечно) и пусть бекенд тестить с фронта и в бд лезать чтобы фронт проверить. Я думаю достойно. Про чекисты ничего не могу сказать. Реально чеклист джуна. В общем хороший гайд для тех кто Jun+.


  1. Kuzrus
    05.01.2024 21:34

    То лифт., то карандаш., то еще какая несуразица:))., а главное - целая армия экспертов! Даже страшно на собеседование идти;))


  1. Eugene_Ustinov
    05.01.2024 21:34

    Профессия для больных людей...


    1. phx
      05.01.2024 21:34

      Почему?