©Татьяна Лабчук
Автор 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
Действия
Существует два основных вариант перехода в автоматизацию: