QA-тестирование: с чего начать в 2026

    Полный гайд по старту в QA: теория тестирования, ручное тестирование, автоматизация, API тестирование. Пошаговый план обучения и практические примеры.

    Введение: что такое QA

    QA (Quality Assurance) — обеспечение качества программного обеспечения. QA-тестировщик проверяет, что продукт работает правильно и соответствует требованиям.

    Что делает QA-тестировщик:

    • Проверяет функциональность продукта
    • Ищет баги и описывает их
    • Пишет тест-кейсы
    • Тестирует в разных браузерах и устройствах
    • Автоматизирует повторяющиеся проверки

    Плюсы QA:

    • ✅ Хороший баланс сложности входа и зарплаты
    • ✅ Много вакансий для новичков
    • ✅ Не нужно сразу программировать (для ручного тестирования)
    • ✅ Можно работать удаленно
    • ✅ Хороший карьерный рост

    Минусы:

    • ❌ Много рутины в ручном тестировании
    • ❌ Нужна внимательность к деталям
    • ❌ Для роста нужно изучать автоматизацию

    Теория тестирования

    Теория тестирования — это основы, которые нужно знать каждому QA.

    Виды тестирования

    По уровню:

    • Модульное — тестирование отдельных компонентов
    • Интеграционное — тестирование взаимодействия компонентов
    • Системное — тестирование всей системы
    • Приемочное — тестирование с точки зрения пользователя

    По типу:

    • Функциональное — проверка функций продукта
    • Нефункциональное — производительность, безопасность, удобство

    По способу выполнения:

    • Ручное — тестирование вручную
    • Автоматизированное — тестирование через скрипты

    Техники тестирования

    Эквивалентное разбиение: разделение входных данных на группы эквивалентных значений.

    Граничные значения: тестирование на границах диапазонов (минимум, максимум, значения за границами).

    Таблица решений: тестирование комбинаций условий.

    Жизненный цикл бага

    1. Новый — баг найден, создан отчет
    2. Назначен — баг назначен разработчику
    3. В работе — разработчик исправляет
    4. Исправлен — баг исправлен, нужна проверка
    5. Проверен — QA проверил исправление
    6. Закрыт — баг закрыт
    7. Отклонен — баг не воспроизводится или не является багом

    Ручное тестирование

    Ручное тестирование — это проверка продукта вручную, без автоматизации.

    Тест-кейсы

    Тест-кейс — это документ с описанием шагов для проверки функции.

    Структура тест-кейса:

    • 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. Теория тестирования (1 месяц)
    2. Ручное тестирование (2-3 месяца)
    3. Автоматизация (3-6 месяцев, параллельно с ручным)
    4. Проекты (2-3 месяца)

    Следующие шаги:

    1. Изучите стек технологий для QA
    2. Начните делать проекты
    3. Составьте резюме

    Полезно? Подпишитесь на Telegram

    Вступить в канал