Job Interview_QA

Чек-лист “Темы для собеседований”

©Татьяна Лабчук Автор 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 часа до окончания рабочего времени, надо все проверить - с чего начнешь?