Я бы хотела сделать свой вклад и помочь QA сейчас.
Расскажу, о чём вас могут спросить на ближайшем собеседовании на QA Auto (особенно в зарубежных компаниях). ⬇️
Я сфокусировалась на автоматизации, но не думайте, что теорию тестирования не нужно осваивать.
База: должны знать все 🔆
ООП принципы и их реализация в ЯП
Структуры данных и сложность операций
Базовые алгоритмы (бинпоиск)
Шаблоны проектирования: singleton, builder, fabric method и КАК применять
Базово понимать всякие SOLID, DRY, KISS - не писать совсем кашу вместо кода
Вопросы❓
Как реализуется инкапсуляция в Java?
Чем отличается массив от списка?
Есть форма - ввод возраста от 1 до 100, как быстро найти возраст, при котором система запретит доступ к материалу.
Напишите в блокноте singleton на вашем ЯП.
Напишите прямоугольник и квадрат в ООП.
Java 🔆
Значения static, final у разных сущностей
Модификаторы доступа
Класс Object
Иерархия Exceptions: try/catch, throw/throws
Абстрактные классы и интерфейсы
Java Collections: реализация + иерархия
Generics: классы и методы
Stream API, функциональные интерфейсы
Вопросы❓
Как проверить на равенство два объекта?
Есть птицы и все летающие - как реализовать их в Java?
ArrayList - это массив или список?
Зачем нам ArrayList, если есть array?
Когда использовать ArrayList, а когда LinkedList?
Как реализовать Generic для объединения 2 множеств?
Тестирование 🔆
JUnit5/TestNG
Аннотации: параметризация тестов, до/после тестов
Расширение testRunner: добавление listeners, своих аннотаций
API RestAssured (или другая)
Запросы, спецификации, авторизация, работа с куками
Сериализация и десериализация в JSON
Ассерты и матчеры
Вопросы❓
Как засетапить данные перед тестом?
Как в случае падения теста сохранять артефакты?
Что такое soft assertions?
Как сделать запрос с oauth2?
Как заасертить ответ запроса?
Как готовить JSON для запроса? (Сериализация, параметризация)
UI Selenide (или другой)
Селекторы: data attributes, CSS, XPath
Конфигурация: URL, браузеры, расширение экрана, user agents
Базовые методы: клики, скроллы, ввод
Загрузка файлов, куки, явные/неявные ожидания
Page Object Pattern, встроенные ассерты
Удаленный запуск (Selenoid)
Вопросы❓
Как выбрать способ поиска элемента?
Как запустить один тест на разных браузерах?
Как проверить, что элемент есть на странице?
Что делать, если тест не находит элемент, а вы видите его?
Что такое Page Object и всегда ли он нужен?
Как запустить N тестов на M браузеров?
Помимо базы, я задаю вопросы, связанные с опытом и процессами и личными "бест прекстис". Мне важно узнать, как думает сам соикатель, а не как было/есть у него в компании. Мне важно узнать, если ли у него своя точка зрения, умеет ли он аргументировать решения и вести дискуссию.
По вашему мнению:❓
Нужно ли QA смотреть в unit-тесты?
Какое должно быть покрытие unit-тестами?
Какие проблемы есть у API тестов? Как их решать?
Какие проблемы у UI тестов?
Как сделать UI тесты стабильными?
Важен ли CI/CD - нужно ли его использовать для повышения качества?
Вопросы про unit-тесты - смотрит ли QA куда-то дальше своих тестов и контролирует качество в целом.
Проблемы API тестов - дублирование unit-тестов, неполное покрытие и интеграция.
Проблемы UI тестов - игнорирование пирамиды тестирования, flaky тесты, скорость исполнения.
Из неупомянутого:
Сети: модель OSI, HTTP запросы и любимый GET и POST
Linux: базовые операции типо cd, ls -a, pwd
SQL: базовые запросы на чтение select с условиями
СI/CD: понимать концепцию и знать про Quality Gates
Ко мне постепенно начинают приходить на менторинг по программе Women Developer Academy 2022.
Самый частый запрос про выступления на конференциях:
❓как придумать доклад
❓мой опыт не уникальный
❓меня никуда не возьмут
Тред развеивания мифов 🎙
❓ как придумать доклад ❓
Темы для докладов пронизывают всю нашу жизнь.
В каждой задаче и коммуникации вы можете словить "инсайт", который можно передать другим людям, которые его не знают либо забыли о его ценности.
=> Любой опыт можно реализовать как выступление.
Разделим доклады на 2 типа:
🛠 Практический
=> Слушатели получили алгоритм "как решить проблему", основанный на чужом опыте
🎆 Вдохновляющий
=> Слушатели получили заряд энергии и мотивацию к решению задачи