Дополнительные модули для тестировщика
Проверка в БД — SQL для тестировщика, Основы БД, транзакции, PostgreSQL. Карта — о разделе.
Типичный курс QA включает не только тест-дизайн и автоматизацию, но и Git, HTTP, базовые алгоритмы, soft skills и английский. Здесь — карта: что уже есть в энциклопедии, в каком порядке читать и где практиковаться. Эта карта поможет вам сориентироваться в материалах энциклопедии, выстроить пошаговый план обучения QA и найти лучшие площадки для практики.
- Читайте основы тестирования. Введение в QA, жизненный цикл ПО (STLC), виды и уровни тестирования, техники тест-дизайна (эквивалентное разделение, граничные значения, QA-матрицы). Задача - научиться правильно искать баги и оформлять тест-кейсы и баг-репорты.
- Сети и протоколы (HTTP). Изучайте такой фундамент, как модель OSI, структура HTTP-запросов и ответов, методы (GET, POST, PUT, DELETE), коды ответов сервера, основы REST API. Нужно понимать, как клиент общается с сервером, и уметь тестировать API.
- Познакомьтесь с системами контроля версий - что такое Git, основные команды (
clone,add,commit,push,pull), работа с ветками (branch,checkout,merge) и разрешение конфликтов. Нужно уметь сохранять свой код автоматизации и работать в команде. - Запомните базовые алгоритмы и изучайте программирование. Переменные, циклы, условия, структуры данных (массивы, списки, словари), базовые алгоритмы сортировки и поиска. Нужно развить алгоритмическое мышление для написания автотестов.
- Автоматизация тестирования - следующий этап, тогда уже предстанут выбор языка (Python/Java/JavaScript), основы Selenium WebDriver или Playwright, паттерн Page Object Model (POM), запуск тестов. Всё это чтобы автоматизировать рутинные проверки UI и API.
- Soft Skills и Английский язык для таких целей, как развитие коммуникации, работа в команде (Agile/Scrum), прохождение собеседований. IT-терминология и подтяжка технического английского позволят успешно пройти интервью и комфортно работать на проекте.
Как устроен маршрут QA
| Блок курса | Где в энциклопедии | Комментарий |
|---|---|---|
| Основы QA, документы, тест-дизайн | Основы → Документация тестировщика → Техники проектирования тестов | Ядро профессии |
| Ручное веб-тестирование | Ручное тестирование веб-приложений | DevTools, Network, smoke |
| API, HTTP, Postman | Тестирование и анализ API · раздел интеграции | curl, DevTools, pytest |
| SQL для проверки данных | SQL для тестировщика · SQL | 10 шаблонов + углубление |
| Автоматизация и пирамида | Автоматизация тестирования · Инструменты для ручного и автоматизированного тестирования | Стратегия + каталог инструментов |
| Практикум Python | Подготовка среды и создание первого теста → Проверка надежности под нагрузкой | pytest, API, Selenium, нагрузка |
| Практикум Java | Практикум Java — JUnit и REST Assured · JUnit в каталоге | JUnit 5, REST Assured |
| Практикум JavaScript | Практикум JavaScript — Playwright и Jest · Jest в каталоге | Playwright, Postman-скрипты |
| Мобильное тестирование | Особенности тестирования мобильных приложений | Appium, Espresso, XCUITest, Maestro |
| Git | см. раздел ниже | Минимум для QA в команде |
| Бонус-модули | этот материал | Алгоритмы, soft skills, английский |
Самовосстанавливающиеся тесты, Инструменты с низким кодом для тестирования и Тестирование нейроморфных систем — углублённые темы (self-healing, low-code, нейроморфные системы), а не базовые бонус-модули курса. Их можно читать после основного маршрута.
Git — минимум для тестировщика
Для тестировщика (как ручного, так и автоматизатора) Git необходим, чтобы забирать актуальный код разработчиков, фиксировать свои автотесты или обновлять тестовые артефакты в репозитории проекта:
- Подготовка и получение проекта
- Работа с ветками (Branches)
- Сохранение изменений
- Синхронизация с сервером (GitHub, GitLab, Bitbucket)
В большинстве компаний, конечно, вам будут предоставлять готовый стенд, настройка ляжет на админов, код на разработчиков, но всё же, может быть и сложная задача.
QA-инженер работает с Git так же, как разработчик — хранит автотесты, коллекции Postman, чек-листы в Markdown, конфиги CI.
| Задача QA | Команда / действие | Где подробнее |
|---|---|---|
| Склонировать репозиторий с тестами | git clone | Как работать с Git |
| Создать ветку под задачу | git checkout -b feature/QA-123-login-tests | Ветвление |
| Зафиксировать изменения | git add → git commit | Как работать с Git |
| Отправить на review | git push → Pull Request | Ветвление и слияние в Git |
| Подтянуть свежий main | git pull / git fetch + merge | Как работать с Git |
| Не коммитить секреты | .gitignore, env-файлы | Файл .gitignore |
Шпаргалка на каждый день — 12 команд Git.
Запуск тестов в пайплайне после push — DevOps и CI/CD.
HTTP — что должен знать QA
HTTP — язык общения браузера, мобильного клиента и Postman с сервером. Без него сложно читать Network в DevTools и оформлять баг-репорты.
Для тестировщика HTTP — это главный инструмент понимания того, как веб-приложения общаются между собой. Без этих знаний невозможно тестировать REST API, разбираться в логах или находить причины багов на стыке фронтенда и бэкенда. Вы должны четко понимать, из чего состоят сообщения, которыми обмениваются клиент (браузер/Postman) и сервер, наизусть знать группы кодов и самые популярные статусы, чтобы мгновенно понимать, в чем проблема.
| Тема | Минимум | Статья |
|---|---|---|
| Методы | GET, POST, PUT/PATCH, DELETE | Тестирование и анализ API |
| Коды ответа | 2xx успех, 4xx клиент, 5xx сервер | Ручное тестирование веб-приложений, Тестирование и анализ API |
| Заголовки | Content-Type, Authorization, Cookie | Тестирование и анализ API |
| Тело запроса | JSON, form-data | Тестирование и анализ API |
| REST | ресурсы, эндпоинты, идемпотентность | API - интерфейсы прикладного программирования |
| Инструменты | curl, Postman, DevTools Network | Тестирование и анализ API, Ручное тестирование веб-приложений, утилита curl, curl / fetch — примеры |
Алгоритмы — для собеседований и логики
Для ручного QA алгоритмы не обязательны. Для автоматизатора и собеседований в крупные компании полезен базовый набор задач на массивы, строки и хеш-таблицы.
На собеседованиях на позицию QA (особенно в автоматизацию Automation QA) алгоритмы проверяют, чтобы оценить вашу логику, умение оптимизировать код и знание базовых структур данных. От тестировщика редко требуют решать задачи уровня Hard на LeetCode, но базу знать необходимо. Прежде чем писать алгоритмы, нужно понимать, где хранятся данные. Алгоритмы конечно писать с нуля в реальной автоматизации не придется (есть встроенные методы sort()), но на собеседовании могут попросить реализовать руками для проверки логики.
| Паттерн | Пример задачи | Зачем QA |
|---|---|---|
| Подсчёт частот | Сколько раз встречается символ в строке | Парсинг логов, группировка багов |
| Два указателя | Есть ли дубликат в отсортированном массиве | Проверка уникальности id |
| Хеш-таблица (dict / Map) | Найти пару чисел с заданной суммой | Быстрый поиск в тестовых данных |
| Стек / очередь | Проверка скобочной последовательности | Валидация JSON, XML |
| Бинарный поиск | Найти элемент в отсортированном списке | Поиск в больших логах |
Практика
- LeetCode Easy — 20–30 задач уровня Easy достаточно для старта.
- Задачник лаборатории — вопросы по смежным темам (SQL, сети, языки).
- Связь с тест-дизайном: эквивалентные классы и границы — та же логика "разбить пространство входов".
Soft skills — часть работы QA
В работе тестировщика soft skills (гибкие навыки) важны не меньше, чем знание кода или тест-дизайна. QA находится на стыке всех участников проекта: он общается с разработчиками, менеджерами, дизайнерами и бизнесом. Главная задача тестировщика — не просто найти баг, а сделать так, чтобы его исправили, не разрушив при этом рабочую атмосферу.
Никто не любит, когда говорят, что их работа выполнена плохо. Разработчики могут болезненно реагировать на баги. Не говорите «Ты написал кривой код» или «Твоя фича не работает». Говорите фактами: «В приложении падает ошибка при вводе спецсимволов», «Поведение системы отличается от требований». Если вы нашли баг или неудобную логику, не просто фиксируйте проблему, а мягко предложите вариант улучшения. Разработчики ценят QA, которые думают о продукте, а не просто ставят крестики в чек-листах.
Тестировщик много общается — уточняет требования, спорит о severity, пишет понятные баг-репорты, участвует в ретро.
Понимайте, что коллеги могут быть уставшими или поджимать дедлайны. Прежде чем бежать со статусом «Блокирующий баг», оцените реальную критичность проблемы.
| Навык | Проявление в QA | Материал |
|---|---|---|
| Ясная письменная речь | Баг-репорт, тест-кейс | Документация тестировщика |
| Уточняющие вопросы | Анализ ТЗ до тестирования | Аналитика |
| Обратная связь без конфликта | Обсуждение "баг или фича" | Soft skills в IT |
| Работа в Agile-команде | Daily, ретро, приоритеты | Scrum |
| Коммуникация со стейкхолдерами | Приёмка, UAT spec | 127 аналитики |
Английский — для документации и карьеры
Идеальный C1 не нужен для старта. Достаточно читать документацию и понимать термины в Jira, Confluence, Stack Overflow.
Вся актуальная техническая документация, описания библиотек для автотестов (Selenium, Playwright) и интерфейсы баг-трекеров (Jira) создаются на английском. Без него карьерный рост до позиций Middle/Senior или переход в зарубежную компанию невозможны.
- Письменный английский - база, которая нужна с первого дня работы даже на локальном рынке.
- Устный английский нужен для работы в международных командах или на аутсорс-проектах.
| Уровень | Что делать | Материал |
|---|---|---|
| Старт | 50 базовых терминов QA и HTTP | Английский в IT |
| Чтение | Документация pytest, Selenium, Postman | Практикум чтения |
| Собеседование | Описать последний проект 2–3 минуты | Карьера в IT |
Типичные термины в работе — test case, regression, assertion, endpoint, payload, staging, flaky test, severity, priority.
Три языка для автотестов — как выбрать
| Язык | Когда выбирают | Практикум | Фреймворки |
|---|---|---|---|
| Python | Старт в автоматизации, ML/данные рядом | Подготовка среды и создание первого теста–Проверка надежности под нагрузкой | pytest, Playwright, requests |
| Java | Enterprise, Android, банки, REST Assured в стеке | Практикум Java — JUnit и REST Assured | JUnit 5, TestNG, Selenium, REST Assured |
| JavaScript | Фронтенд-команда, React/Vue, Postman-скрипты | Практикум JavaScript — Playwright и Jest | Jest, Playwright, Cypress |
Выбор языка для автоматизации (Automation QA) зависит от ваших целей, бэкграунда и рынка, на котором вы планируете искать работу. Главное правило — учите не язык, а автоматизацию (паттерны, архитектуру, работу с API и базами данных), так как эти концепции одинаковы везде.
Python — самый популярный язык для новичков в QA благодаря простому синтаксису, который напоминает обычный английский язык. Подходит как раз тем, кто учит программирование с нуля, хочет быстро увидеть результаты и не желает тратить месяцы на изучение сложной теории.
Если вы планируете тестировать современные веб-приложения (SPA на React, Vue, Angular) и хотите работать на одном языке с фронтенд-разработчиками, выбирайте JS/TS.
Java — это тяжелая артиллерия. На этом языке написаны банковские системы, ритейл-гиганты и масштабные государственные сервисы. Подойдёт тем, кто нацелен на стабильную карьеру в банках, финтехе или крупных международных корпорациях, и готов к долгому обучению.
Один язык для старта достаточен. Паттерны (Arrange–Act–Assert, Page Object, фикстуры) переносятся между языками. Углублённый Playwright (архитектура, Allure, портфолио) — Playwright.
Чек-лист готовности к junior QA
Junior QA (младший специалист по тестированию) — это стартовая позиция в сфере обеспечения качества программного обеспечения, на которой специалист выполняет базовые задачи под руководством опытных коллег. Главная цель джуниора — учиться, нарабатывать опыт и разгружать команду от рутинных проверок.
- Оформил 3 тест-кейса и 1 баг-репорт по шаблону
- Проверил сайт через DevTools Network (Ручное тестирование веб-приложений)
- Отправил запрос в Postman или curl (Тестирование и анализ API)
- Выполнил
SELECT+JOINна тестовой БД (SQL для тестировщика) - Написал первый автотест на pytest (Подготовка среды и создание первого теста) или Java/JS (Практикум Java — JUnit и REST Assured, Практикум JavaScript — Playwright и Jest)
- Сделал
clone→ ветка → commit → push (Git) - Прошёл 50 вопросов самопроверки
В дальнейшем можно развиваться дальше как ручной тестировщик (Manual QA), уйти в автоматизацию (Automation QA), нагрузочное тестирование или со временем вырасти в QA Lead / Project Manager. До Middle QA обычно переход занимает от 1 до 2 лет активной работы.
Навигация по разделу "Тестирование"
- Маршрут: О разделе · Резюме раздела · Карта уровней и практик
- Практикум: Подготовка среды и создание первого теста · Проверка взаимодействия компонентов · Проверка пользовательского сценария · Проверка надежности под нагрузкой · 1015 Java · 1016 JavaScript
- Бонус: Дополнительные модули для тестировщика (этот материал) · Самовосстанавливающиеся тесты · Инструменты с низким кодом для тестирования · Тестирование нейроморфных систем
- Мобильное: Особенности тестирования мобильных приложений · Самопроверка: Тестирование программного обеспечения — чек-лист