QA-тестирование: с чего начать в 2026
Полный гайд по старту в QA: теория тестирования, ручное тестирование, автоматизация, API тестирование. Пошаговый план обучения и практические примеры.
Введение: что такое QA
QA (Quality Assurance) — обеспечение качества программного обеспечения. QA-тестировщик проверяет, что продукт работает правильно и соответствует требованиям.
Что делает QA-тестировщик:
- Проверяет функциональность продукта
- Ищет баги и описывает их
- Пишет тест-кейсы
- Тестирует в разных браузерах и устройствах
- Автоматизирует повторяющиеся проверки
Плюсы QA:
- ✅ Хороший баланс сложности входа и зарплаты
- ✅ Много вакансий для новичков
- ✅ Не нужно сразу программировать (для ручного тестирования)
- ✅ Можно работать удаленно
- ✅ Хороший карьерный рост
Минусы:
- ❌ Много рутины в ручном тестировании
- ❌ Нужна внимательность к деталям
- ❌ Для роста нужно изучать автоматизацию
Теория тестирования
Теория тестирования — это основы, которые нужно знать каждому QA.
Виды тестирования
По уровню:
- Модульное — тестирование отдельных компонентов
- Интеграционное — тестирование взаимодействия компонентов
- Системное — тестирование всей системы
- Приемочное — тестирование с точки зрения пользователя
По типу:
- Функциональное — проверка функций продукта
- Нефункциональное — производительность, безопасность, удобство
По способу выполнения:
- Ручное — тестирование вручную
- Автоматизированное — тестирование через скрипты
Техники тестирования
Эквивалентное разбиение: разделение входных данных на группы эквивалентных значений.
Граничные значения: тестирование на границах диапазонов (минимум, максимум, значения за границами).
Таблица решений: тестирование комбинаций условий.
Жизненный цикл бага
- Новый — баг найден, создан отчет
- Назначен — баг назначен разработчику
- В работе — разработчик исправляет
- Исправлен — баг исправлен, нужна проверка
- Проверен — QA проверил исправление
- Закрыт — баг закрыт
- Отклонен — баг не воспроизводится или не является багом
Ручное тестирование
Ручное тестирование — это проверка продукта вручную, без автоматизации.
Тест-кейсы
Тест-кейс — это документ с описанием шагов для проверки функции.
Структура тест-кейса:
- ID тест-кейса
- Название
- Предусловия
- Шаги выполнения
- Ожидаемый результат
- Приоритет
Пример тест-кейса:
ID: TC-001
Название: Авторизация с валидными данными
Предусловия:
- Пользователь зарегистрирован
- Открыта страница авторизации
Шаги:
1. Ввести email: user@example.com
2. Ввести пароль: password123
3. Нажать кнопку "Войти"
Ожидаемый результат:
- Пользователь авторизован
- Открыта главная страница
- Отображается имя пользователя
Приоритет: ВысокийБаг-репорты
Баг-репорт — это описание найденной проблемы.
Структура баг-репорта:
- Название бага
- Описание проблемы
- Шаги воспроизведения
- Ожидаемый результат
- Фактический результат
- Приоритет (Критический, Высокий, Средний, Низкий)
- Окружение (браузер, ОС, версия)
- Скриншоты/видео
Пример баг-репорта:
Название: Кнопка "Отправить" не работает на странице контактов
Описание:
При заполнении формы обратной связи и нажатии кнопки "Отправить" ничего не происходит.
Шаги воспроизведения:
1. Открыть страницу /contacts
2. Заполнить все поля формы
3. Нажать кнопку "Отправить"
Ожидаемый результат:
Форма отправляется, показывается сообщение об успехе
Фактический результат:
Ничего не происходит, форма не отправляется
Приоритет: Высокий
Окружение: Chrome 120, Windows 11
Скриншот: [прикреплен]Инструменты для ручного тестирования
- Jira — управление тест-кейсами и багами
- TestRail — управление тест-кейсами
- Bugzilla — трекинг багов
- Browser DevTools — инструменты разработчика в браузере
Автоматизация тестирования
Автоматизация — написание скриптов для автоматической проверки продукта.
Selenium
Selenium — инструмент для автоматизации браузера.
Установка:
pip install seleniumПример теста на Python:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome()
driver.get("https://example.com")
# Найти элемент и кликнуть
button = driver.find_element(By.ID, "submit")
button.click()
# Ожидание элемента
wait = WebDriverWait(driver, 10)
element = wait.until(EC.presence_of_element_located((By.ID, "result")))
# Проверка
assert "Успех" in element.text
driver.quit()Playwright
Playwright — современная альтернатива Selenium, быстрее и надежнее.
Установка:
pip install playwright
playwright installПример теста:
from playwright.sync_api import sync_playwright
def test_login():
with sync_playwright() as p:
browser = p.chromium.launch()
page = browser.new_page()
page.goto("https://example.com")
page.fill("#email", "user@example.com")
page.fill("#password", "password123")
page.click("#submit")
assert "Добро пожаловать" in page.text_content("#welcome")
browser.close()Pytest
Pytest — фреймворк для написания тестов на Python.
Установка:
pip install pytestПример теста:
def test_addition():
assert 2 + 2 == 4
def test_string():
assert "hello".upper() == "HELLO"API тестирование
API тестирование — проверка работы API (Application Programming Interface).
Postman
Postman — инструмент для тестирования API.
Базовые операции:
- Отправка GET-запросов
- Отправка POST-запросов с данными
- Проверка ответов
- Создание коллекций тестов
Пример теста в Postman:
// В разделе Tests
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
pm.test("Response has user data", function () {
var jsonData = pm.response.json();
pm.expect(jsonData).to.have.property('id');
pm.expect(jsonData).to.have.property('name');
});Тестирование API на Python
import requests
def test_get_user():
response = requests.get("https://api.example.com/users/1")
assert response.status_code == 200
data = response.json()
assert data["id"] == 1
assert "name" in data
def test_create_user():
data = {"name": "Иван", "email": "ivan@example.com"}
response = requests.post("https://api.example.com/users", json=data)
assert response.status_code == 201
assert response.json()["name"] == "Иван"Карьерный путь в QA
Junior QA (ручное тестирование):
- Ручное тестирование
- Написание тест-кейсов
- Баг-репорты
- Работа с Jira
Middle QA (ручное + автоматизация):
- Все из Junior
- Автоматизация тестов
- Написание автотестов на Selenium/Playwright
- API тестирование
Senior QA / QA Lead:
- Все из Middle
- Планирование тестирования
- Управление командой QA
- Внедрение процессов тестирования
Практические проекты
Проект 1: Тестирование реального сайта
- Выберите сайт (например, интернет-магазин)
- Напишите 20+ тест-кейсов
- Протестируйте и найдите баги
- Опишите баги в баг-репортах
- Опубликуйте на GitHub
Проект 2: Автотесты на Selenium/Playwright
- Напишите автотесты для проверки авторизации
- Напишите автотесты для проверки формы
- Используйте Page Object Model
- Опубликуйте на GitHub
Проект 3: API тестирование
- Создайте коллекцию тестов в Postman
- Напишите тесты на Python для API
- Проверьте все эндпоинты
- Опубликуйте на GitHub
Заключение
QA — хороший вход в IT. Начните с ручного тестирования, затем изучайте автоматизацию. Делайте проекты, публикуйте на GitHub.
План обучения (3-6 месяцев для ручного, 6-12 для автоматизации):
- Теория тестирования (1 месяц)
- Ручное тестирование (2-3 месяца)
- Автоматизация (3-6 месяцев, параллельно с ручным)
- Проекты (2-3 месяца)
Следующие шаги:
- Изучите стек технологий для QA
- Начните делать проекты
- Составьте резюме