©Татьяна Лабчук Автор telegram-канала “Заметки о QA”
-
методологии разработки и место QA в этом процессе
- методологии разработки
- этапы тестирования ПО:
- в каких этапах вступает тестировщик
- что такое shift-left testing
- принимаете ли вы участие в тестировании требований
- критерии начала и окончания процесса тестирования, готовность задачи к тестированию
-
теория тестирования
- QA, QC, тестирование
- качество и какие бывают критерии качества
- верификации и валидация
- виды тестирования
- тест-дизайн,
- техники тест-дизайна
- классы эквивалентности
- проверка граничных значений
- таблица принятия решений
- pairwise
- диаграммы изменения состояний
- прочие
- в каких случаях применять ту или иную технику
- задача на тест-дизайн: например, создайте список проверок на данное поле
- практика pair-wise
- техники тест-дизайна
- тестовая документация
- виды тестовой документации
- содержание полей
- отличие тест-кейса от чек-листа
- баг-репорт: жизненный цикл, критичность и приоритет, назовите пример бага с высокой серьезностью, но низким приоритетом
-
специфика области: веб/мобилки/десктоп
(приведу примеры только для веб, так как прохожу и провожу собеседования в данном направлении)
- модели OSI и TCP/IP: что такое, из каких уровней состоят, популярные протоколы
- клиент-серверная архитектура
- HTTP: структура ,методы, коды ответов,идемпотенотность
- разница HTTP/HTTPS
- разница get/post, put/patch
- кэш и куки
- разница между Идентификацией, Аутентификацией, Авторизацией
- REST/SOAP/GraphQL/gRPC: разница, особенности тестирования
- форматы данных: JSON, XML
- AJAX
- инструменты работы: cURL, devTools, Swagger, Postman/SoapUI/Insomnia (как у вас был практическая область применения)
- монолиты vs микросервисы: что такое, в чем особенность тестирования
- очереди, кафка, как это тестировать
-
автоматизация
- автоматизация тестов
- когда необходимо начинать автоматизацию тестирования
- какие тесты не целесообразно автоматизировать,
- как внедрять автоматизацию на проекте
- что такое пирамида тестирования
- что такое принцип трех А
- ООП
- три (четыре) принципа
- вопросы по построению ООП и основных особенностях
- класс/объект
- разница перегрузки и переопределения
- абстрактный класс/интерфейс
- база языка программирования
- типы данных
- основные конструкции языка
- популярные библиотеки
- SOLID, KISS, DRY и прочее
- работа с Selenium/selenide, локаторы XPATH/CSS и их написание
- паттерны протектирования и автоматизации
- flacky тесты: что такое, какие причины, как избавляться
- TDD/BDD
- решение алгоритмической задачи (сложность разная) Пример простой задачи: найти количество вхождений числа n в массив чисел
- автоматизация тестов
-
CI/CD
- что это такое, зачем нужно
- какие этапы выстраивания quality gate
- внедрение и поддержка на проекте
- особенности работы с инструментами
- docker
- что такое контейнер
- состав docker
- основные сущности
- основные команды для Dockerfile
-
база данных
- реляционные/нереляционные БД
- виды связей между таблицами
- первичный/внешний ключи
- нормализация
- основные операции и их синтаксис: create, select, intsert into, delete
- подробный синтаксис select: join (виды и их отличия), where, group by, distinct
- какая разница между LEFT, RIGHT, INNER, OUTER JOIN?
- задача на join/group by
-
локализация багов: порядок действий при обнаружении бага
- работа с логами: инструмент, подход к поиску логов, где они лежат
- работа с БД: поиск созданной сущности
- работа с devTools: как применяете для локализации
- как понять: ошибка на стороне сервера или клиента
Типичная задача: Есть форма входа, которая состоит из логина и пароля. Ты вводишь корректные значения, нажимаешь на кнопку войти и ничего не происходит. Твои действия?
-
командная строка
- основные команды: ls / grep / cat / top / atop / free / lsof / netstat
- перенаправление вызовов
-
GIT
- основные понятия: репозиторий, индекс, коммит, указатели, ветка, рабочая копия.
- основные команды: add, commit, status, diff, branch, checkout, reset, merge, pull, push
- специфические команды: cherry-pick, stash, revert, rebase
-
популярные “опытные” вопросы
- Как тестировать продукт с большим количеством фичей, задач и сложным функционалом
- Как убедиться, что тесты покрывают все необходимые сценарии
- Что делать, если вам не хватает ресурса для выполнения задач в срок
- Как вы гарантируете, что ваши автотесты расширяемы и легко поддерживаемые
- Кто принимает решение, что все проверено и можно выпускаться?
- как вы влияете на скорость исправление бага
- Вот у нас новые фичи, 3 часа до окончания рабочего времени, надо все проверить - с чего начнешь?