QA. Подготовка к интервью
Что стоит повторить
Теория тестирования
Оптимизация тестового покрытия техниками тест-дизайна;
Методы, этапы и метрики тестирования;
Flaky-тесты, Shift-left testing, пирамида тестирования.
В зависимости от задач на конкретной позиции мы можем спрашивать вас по backend-, frontend- и mobile-тестированию.
Материалы по подготовке
Базовый уровень:
Библия QA
The 100-Year QA-Textbook
Дорожная карта Awesome Quality Assurance на GitHub
Продвинутый уровень:
Рекс Блэк. «Ключевые процессы тестирования»
Гленфорд Майерс, Кори Сандлер, и Том Баджетт. «Искусство тестирования программ»
Джеральд Вайнберг, «Идеальное программное обеспечение и другие иллюзии в тестировании»
«Что происходит, когда вы вводите google.com в адресной строке браузера и нажимаете Enter?»
Backend-тестирование
Сетевые протоколы (HTTP / gRPC);
Взаимодействие между клиентом и сервером;
Методы и коды ответов;
Cookie.
Материалы по подготовке
Базовый уровень:
Цикл статей «Сети для самых маленьких» на Habr
Как тестировать не-REST-бэкенд. Часть третья, gRPC: https://habr.com/ru/companies/qiwi/articles/753778/ Раздел «Сети и около них» на QA Bible
Раздел «Тестирование АРI» на QA Bible
Продвинутый уровень:
Эндрю Таненбаум, Дэвид Уэзеролл. «Компьютерные сети»
Тренажёр Warrfie / secret_trainer: https://github.com/Warrfie/secret_trainer
Frontend-тестирование
Кроссбраузерное тестирование;
Работа с консолью разработчика в браузере, поиск информации для воспроизведения;
Hands-on в автоматизации: уверенное использование локаторов, декомпозиция кода с использованием Page Object и понимание возможностей Chrome DevTools и WebDriver протоколов.
Материалы по подготовке
Базовый уровень:
Chrome DevTools: DOM, CSS, JavaScript
Глоссарий MDN Web Docs: DOM, атрибуты CSS, XPath, HTML
Р. Савин. «Тестирование Дот Ком, или Пособие по жестокому обращению с багами в интернет-стартапах»
Продвинутый уровень:
«Средства консоли Chrome, которыми вы, возможно, никогда не пользовались» на Habr
Материалы ISTQB
С. Канер. «Тестирование программного обеспечения»
Mobile-тестирование
Проверка UI в мобильном приложении;
Баги на специфических устройствах;
Трафик через мобильное устройство;
Полезные для тестирования возможности платформ;
Артефакты для исправления багов.
Материалы по подготовке
Базовый уровень:
«Как работает Android. Архитектура платформы» на GitHub
«32 отличия дизайна мобильного приложения под iOS и Android» на Habr
Mobile App Testing Tutorials (A Complete Guide with 30+ Tutorials)
«Гайдлайны Google Material и Apple Human Interface. Android, iOS n Material You» на YouTube
Продвинутый уровень:
Android developer guides
Apple developer documentation
Certified Tester Mobile Application Testing (CT-MAT) ISTQB
Android Activity Lifecycle n iOS App's Life Cycle
Программирование
Написание автотестов (Go, С# или Python — в приоритете, но рассматривается опыт на другом языке при готовности разобраться с нашим стэком);
Структуры данных и методы работы с ними;
Знание стандартной библиотеки;
Работа с фреймворком для написания тестов и его инструментарием. Например, для Python это обязательно будут PyTest и фикстуры: важно понимать, как их запускать, отлаживать и настраивать.
Материалы по подготовке
Базовый уровень:
Документация выбранного ЯП / фреймворка
Дорожные карты по ЯП / фреймворкам
Раздел «Автоматизация» в QA Bible
LeetCode Easy
Продвинутый уровень:
Тренажёр the-internet
B. Okken. Python Testing with PyTest
LeetCode Medium
Р. Мартин. «Чистый код»
Базы данных
Знание основных концепций (мы используем PostgreSQL, ClickHouse, Redis и другие БД);
Умение выполнить SQL-запрос данных из нескольких таблиц.
Понимание индекса, транзакций, работа с большими таблицами.
Материалы по подготовке
Базовый уровень:
А. Болье. «Изучаем SQL»
М. Грубер. «Понимание SQL»
Тренажёр SQL Academy
SQL Cheat Sheet
Продвинутый уровень:
Тренажёры sql-ex.ru
CI/CD
Навык работы с Git. Все тесты должны быть написаны с расчётом на запуск в пайплайне. Работа с кодом подразумевает работу с системой контроля версий.
Создание/переключение на новую ветку, разрешение конфликтов при слиянии;
Работа с консолью на уровне взаимодействия с папками и директориями;
Опыт использования Docker-контейнеров.
Материалы по подготовке
Базовый уровень:
«Что такое CI/CD? Разбираемся с непрерывной интеграцией и непрерывной поставкой»: https://habr.com/ru/companies/otus/articles/515078/ GitHowTo
Полный курс Docker для начинающих от Bogdan Stashchuk на YouTube
«Основы командной строки» на Hexlet
Продвинутый уровень:
Уильям Шоттс. «Командная строка Linux. Полное руководство. 2-е межд. изд.»
LearnGitBranching
Play with Docker. Hands-on Docker Tutorials for Developers