©Татьяна Лабчук
Автор telegram-канала “Заметки о QA”
Навыки
Необходимые навыки
-
[ ] Навыки тестирования
-
[ ] Базовые знания тестирования и умение их применять на практике
-
[ ] Понимание, что можно и нужно автоматизировать, как это автоматизировать и в каких объемах это нужно делать (в том числе, что такое тестовая пирамида, принцип трех А, TDD/BDD и это как выстраивается в процесс QA)
-
[ ] Умение расставить приоритеты для автоматизации (что в первую очередь, что во вторую?)
-
[ ] Знать специфику тестирования продукта, на который ты пишешь автотесты
Сокращенный пример для веба в общем:
- [ ] знание HTTP/HTTPS
- [ ] структура запроса и ответа
- [ ] коды статусов ответа
- [ ] отправка кэш и куки
- [ ] работа с хедерами
- [ ] особенности тестирования API: что нужно проверить для того, чтобы убедиться в качестве тестирования
- [ ] понимание тестирования UI
- [ ] … (прочие навыки, полный список лучше изучать отдельно)
-
[ ] Навыки программирования [универсально для любого языка]
- [ ] Базовые структуры языка
- [ ] Модули, стандартные библиотеки
- [ ] Типы данных
- [ ] Сериализация/десериализация
- [ ] Обработка ошибок/исключений
- [ ] Запись в файлы
Библиотеки
- [ ] Фреймворк для тестов (JUnit, TestNG, PyTest, Cypress и т.д. в зависимости от языка)
- [ ] Работы с HTTP/API (RestAssured, Requests)
- [ ] Selenium/Selenide/Puppeteer/.. для UI (также умение писать локаторы)
Специфические навыки программирования
- [ ] Работа с IDEA (в том числе знание крутых горячих клавиш)
- [ ] Библиотека для репорта отчетов (Allure, Report Portal)
- [ ] Интеграция с БД/брокером сообщений/прочие интеграции
- [ ] Библиотека для BDD
- [ ] Инструменты сборки (Maven, Gradle)
- [ ] Работа с библиотеками мокирования/расчета покрытий/т.д.
- [ ] Уметь читать чужой код
- [ ] Параллелизация
В помощь: карты развития в языках
-
[ ] Computer science
- [ ] ООП
- [ ] Принципы написания кода SOLID, KISS, DRY
- [ ] Паттерны проектирования
- [ ] Паттерны автоматизации
- [ ] Умение решать базовые алгоритмы
Редко
- [ ] Умение решать сложные алгоритмические задачи (leetcode/codewars/..)
-
[ ] Git
- [ ] Работа с ветками локально/удаленно
- [ ] создание и скачивание репозитория (в том числе по ssh)
- [ ] обновление и пуш в удаленный репозиторий
- [ ] умение решать конфликты (или хотя бы понимать, по какой причине могут возникнуть)
- [ ] Основные команды: add/commit/status/diff/branch/checkout/reset/merge/pull/push
“Особые” навыки
(в зависимости от должности)
- [ ] SQL
- [ ] базовые навыки работы с запросами (select, join)
- [ ] Настройка CI/CD
- [ ] инструмент gitlab/jenkins/т.п.
- [ ] работа с консолью
- [ ] Основные команды bash: ls / grep / cat / top / atop / free / lsof / netstat
- [ ] Перенаправление ввода/вывода
- [ ] Редко: умение писать bash script
- [ ] работа с docker
- [ ] работа с dockerFile
- [ ] запуск контейнеров и работа с ними
- [ ] Навыки мокирования/работы с инструментами мокирования
- [ ] Расчет покрытия
- [ ] Работа с очередями
Дублирование навыков в формате mind-map
https://whimsical.com/S6rK4Qgd2RR92AVRRBmYTX
Действия
Существует два основных вариант перехода в автоматизацию: