Тестовые задания по QA
Здесь собраны реальные тестовые задания, которые дают соискателям на стажировках и junior-позициях. Эти задания помогут лучше подготовиться к отбору, потренироваться и пополнить портфолио
Javarush • Лёгкая сложность
Тестовое задание по QA от компании Javarush
Тестовое задание для стажёра-тестировщика на знание Java и SQL Создайте форк репозитория в GitHub и выполните задания на Java версии 15 или более поздней. Присылайте ссылку на репозиторий с решением, даже если выполнили не все задания. Задание 1 Скорректируйте класс WithProblemsTests, чтобы проект скомпилировался, а все пять тестов успешно завершились. Задание 2 В тесте класса ReadFileTests прочитайте файл ReadFileTests.txt. Проверьте, содержит ли вторая строка слово «аллоха». Задание 3 Существуют две таблицы: orders (order_id, promocode_id) — заказы; promocodes (promocode_id, name, discount) — промокоды. Напишите SQL-запрос, который подсчитает долю заказов с промокодами — соотношение заказов с промокодами от общего количества заказов. Сохраните запрос в файле resourc es\Task3.sql. Задание 4 Напишите xpath и CSS-селектор для кнопки-стрелки с https://ya.ru/ cкриншот. Сохраните результат в файле resources\Task4.txt. Задание 5* (сложное) Реализуйте иерархию классов с примером основных принципов ООП. По возможности укажите, где какой принцип используется. За основу возьмите роботов. Робот умеет ходить, ездить или летать. Робот имеет тип назначения: боевой робот снабжён набором оружия (стрелкового или мечом) и умеет стрелять; сварщик сваривает детали; повар готовит. Роботы заправляются по определённому циклу в зависимости от вида энергии: атомной раз в 50 лет; внутреннего сгорания (дизельное топливо, бензин) по мере опустошения бака в зависимости от его объёма; электрической по мере уменьшению заряда до 20%. Продемонстрируйте, пожалуйста: роботов по каждому виду назначения с каждым видом топлива (3*3 = 9 объектов); работу каждого робота; заправку каждого робота по его запросу. Негативная проверка: хотя бы один робот использован не по назначению; хотя бы один робот заправлен не тем топливом.
Flatstack • Высокая сложность
Тестовое задание по QA от компании Flatstack
Тестовое задание для кандидата в QA-engineer В рамках данной задачи вы должны выполнить тестирование и предоставить список обнаруженных в приложении проблем (багов). В вашем распоряжении имеется список требований к этому приложению и само приложение в виде *apk файла. В качестве решения Вы должны предоставить отчет, в котором должны быть описаны все обнаруженные вами проблемы (функциональные и не функциональные). Обязательные требования Обязательно нужно провести тестирование функциональности и интерфейса пользователя. Выполняется тестирование «черного ящика». Отчет должен быть аккуратно оформлен, при необходимости к проблеме должны быть приложены скриншоты и любая другая дополнительная информация. Описание каждой проблемы должно быть четким и понятным. Отчет должен быть предоставлен в виде одного документа в Word document (.docx) формате. Приветствуется Использование шаблонов оформления багов (проблем/ошибок). Краткое описание стратегии тестирования, которой вы придерживались. Краткое описание выполненных тестов. Проведение иных типов тестирования, отличных от указанных в п. 1 Обязательных требований. Выполнение бонусных требований (секция «приветствуется») в тот же срок будет плюсом, однако есть риск увлечься документированием и пропустить важную ошибку. Соразмеряйте ваши возможности. Задача может содержать скрытые недоговорки в требованиях к приложению. Если вы их распознаете и сумеете правильно определить, как в данном случае должно себя вести приложение, это будет плюсом. В приложении есть один серьезный дефект-блокер. Его можно обойти. Постарайтесь его определить. Если не получится - можете обратиться за подсказкой. Требования к приложению RSS Reader Необходимо реализовать приложение, которое бы синхронизировало новости с сайта rbc.ru. Синхронизация должна происходить в бэкграунде с определенной периодичностью. Категория новостей задается в параметрах (допускается жестко прописать категории в коде программы). Программа должна содержать следующие компоненты: При запуске должен отображаться Splash screen. По истечении 2 секунд, открывается основной экран. Основной экран - в стиле Android UI Pattern Dashboard. Он должен содержать 2 кнопки: Список новостей Настройки Экран списка новостей должен быть представлен в виде ListView с заголовками новостей. Должна быть предусмотрена возможность ручного обновления списка новостей, UI Pattern Pull to refresh. При нажатии на заголовок новости, должен открываться новый экран с WebView, в котором будет загружаться новость. Экран настроек должен предоставлять возможность конфигурировать: периодичность синхронизации в бэкграунде желаемую категорию новости (например, спорт: лента новостей, или автомобили: тест-драйвы). Action Bar для навигации между экранами: со всех дочерних экранов, включая экран 4, кнопка Up в Action Bar должна приводить на дашбоард. Необязательно, но желательно Приложение должно работать в offline, т.е. при отсутствии интернета должна быть возможность просмотреть последние синхронизированные новости, а так же менять настройки.
Avito • Лёгкая сложность
Тестовое задание по QA от компании Avito
Задача для стажёра-автоматизатора На вход поступает 2 файла: TestcaseStructure.json Values.json TestcaseStructure.json Cодержит в себе массив параметров. Каждый параметр может иметь поля: id - Уникальный идентификатор; title - Название параметра; value - Выбранное значение, изначально пустая строка; values - Массив возможных значений, если поля нет, считаем что значение заполняется вручную, а не выбором. Значения имеют следующие поля: id - Уникальный идентификатор; title - Название значения, которое подставляется в value параметра; params - массив вложенных в это значение параметров. Values.json Содержит массив объектов. Каждый объект имеет поля: id - Идентификатор параметра; value - Идентификатор значения этого параметра. либо строка, если у параметра нет массива значений. Результат В результате выполнения, программа должна сформировать файл StructureWithValues.json с заполненными value у параметров, на основе файла Values.json. Пример корректного выполнения задачи StructureWithValues.json приложен к заданию. Доп. информация Если мы не можем найти параметр с id из файла Values.json, то считаем, что такого параметра нет и значение подставлять некуда. Если у параметра с id из Values.json, в массиве values нет объекта с id равным value, то считаем, что такого значения нет и оставляем поле value пустым. Если входные файлы являются неконсистентными, то программа должна сформировать файл error.json с сообщением о том, что входные файлы являются некорректными. Пример error.json приложен к заданию.
SendSay • Средняя сложность
Тестовое задание по QA от компании SendSay
Junior Frontend + QA: Тестирование логина и отправки рассылки [АРХИВ] Задача Напишите e2e-тесты для сценариев входа в приложение и отправки произвольной рассылки. Когда всё готово Выложите на гитхаб репозиторий с тестовым заданием Создайте пулл-реквест на гитхабе со всеми файлами вашего проекта Пригласите в свой репозиторий камрадов: bitoptik, nipanasovich, rosendi, alexander-litvinovich, yukonovalov, victor-magarlamov Отправьте ссылку на репозиторий как отклик на вакансию в hh Отправьте нам ссылку на видео, где видно, что ваши тесты у вас запустились и проходят Наши ожидания Сначала мы будем смотреть, работает задание или нет, поэтому нам нужна ссылка на репозиторий, чтобы мы могли его склонировать и запустить. Мы ждём, что в написании e2e-тестов вы: посмотрите продукт и познакомитесь с предметной областью будете использовать Cypress (https://www.cypress.io/) будете использовать JS ES6 При оценке задания мы обращаем внимание на следующие вещи: Работоспособны ли тесты — если они не запускаются, мы расстраиваемся и проверяем код с большим скепсисом Насколько тщательно вы подготовились: как разобрались в продукте и какие дополнительные кейсы добавили в сценарии Насколько тесты независимы от html-кода страницы и какие селекторы вы используете Как сгруппированы тестовые блоки и какие комментарии вы оставили в коде image ⚡️ На автомате накидали всё в index.js? ⚡️ Если вы так и сделали, то мы заранее просим отрефакторить такое «выполненное» задание. Вы пишете код для людей. Лучше потратьте чуть больше времени, но решите задачу качественно. Что понадобится для задания Зарегистрировать бесплатный аккаунт в Sendsay. Используйте промокод «тест» при заполнении регистрационной формы. Сценарий входа в приложение (обычный вход и корпоративный): 1. Я захожу на https://app.sendsay.ru/signin 2. Ввожу логин, пароль и нажимаю «Войти» 3. Если введение данные валидны, то я попадаю в приложение 4. Если введенные данные невалидны, то … Сценарий отправки еmail-выпуска (некорпоративный аккаунт): 1. Я залогинен в приложении 2. Захожу в раздел «Рассылки» на https://app.sendsay.ru/campaigns/issues 3. Создаю новый email-выпуск 4. Я прохожу все обязательные шаги визарда формирования email-выпуска 5. Отправляю выпуск рассылки P.S. Если хотите задать вопрос по тестовому заданию, до того как откроете пулл-реквест 👉 https://t.me/joinchat/CN4mgxZRCXU-uRZo9VBuWw — Это тихий чат, задаёте вопрос и получаете ответ. На обыденные темы разговаривать запрещается. Сообщения цензурируются, болтуны банятся. P.P.S. Многие соискатели совсем не умеют читать или читают, но очень невнимательно. Если вы внимательный читатель, поместите в корне репозитория файл с названием SimonSays.md и внутри напишите какую-нибудь смешную фразу-палиндром на русском или английском языке. P.P.P.S. Для выполнения задания вам понадобится бесплатный аккаунт в Sendsay. Вам также очень поможет поиск по описанию API и API-коннектор. (Спасибо, Кирилл 👋) P.P.P.P.S. Мы смотрим, проверяем код и тестируем функциональность всех тестовых заданий. На проверку тестового задания, сделанного на среднем уровне (не совсем плохо, но и не восхитительно) уходит от двух дней до недели. Восхитительно сделавшим тестовое, мы почти не пишем комменты. Сделавшим «совсем плохо» тоже стараемся отвечать побыстрее, но иногда пишем общими фразами. Иногда мы просим доработать какие-нибудь части задания — так мы проверяем насколько комфортно нам будет вместе работать. Для справки — https://help.github.com/en/articles/creating-a-pull-request — https://help.github.com/en/articles/requesting-a-pull-request-review
без ограничений.
Чтобы получить полный доступ,
вам необходимо зарегистрироваться.