Семь промтов, которые заменят ручное тестирование
Ручное тестирование — это как заполнение налоговой декларации: важно, но отнимает часы. Я — QA-инженер с пятилетним стажем, и когда в моей команде появился доступ к большим языковым моделям, я решил проверить, действительно ли они могут автоматизировать рутину. Результат превзошёл ожидания: время на написание тест-кейсов сократилось на 70%. В этой статье я делюсь семью проверенными промтами, которые стали моими цифровыми ассистентами.
Почему это работает
Современные нейросети, такие как GPT-4o и Claude 3.5, обучены на огромном количестве кода и технической документации. Они понимают контекст, умеют генерировать структурированные артефакты и объяснять сложные концепции. Главное — правильно составить запрос. Ниже — подборка промтов, которые я использую ежедневно.
1. Генерация тест-плана на основе требований
Задача: Быстро создать структурированный тест-план из пользовательской истории или технического задания.
Промт:
Ты — опытный QA-лид. На основе следующего требования создай подробный тест-план:
Требование: «Как пользователь, я хочу сбросить пароль через email, чтобы восстановить доступ к аккаунту».
Включи в план:
- Критерии готовности (DoR) и готовности к релизу (DoD)
- Область тестирования (функциональное, UI, безопасность)
- Риски и допущения
- Чек-лист для смоук-теста
- Матрица трассировки требований
Пример результата:
Модель генерирует план с разделами: приоритеты, окружение, данные, сценарии. Например, для сценария «неверный email» она предлагает проверить отсутствие утечки информации о существовании аккаунта.
Какую ручную задачу автоматизирует: Заменяет написание плана с нуля — обычно на это уходило 2-3 часа, теперь 15 минут на корректировку.
2. Написание тест-кейсов в стиле команды
Задача: Сгенерировать набор тест-кейсов в едином формате, принятом в команде.
Промт:
Ты — тестировщик в команде, использующей TestRail. Создай 10 тест-кейсов для функции «поиск товаров» по следующему шаблону:
| ID | Заголовок | Предусловия | Шаги | Ожидаемый результат | Приоритет |
Учти позитивные, негативные и граничные сценарии.
Пример результата:
Модель возвращает таблицу в Markdown, которую можно сразу скопировать в TestRail. Пример кейса: «Поиск по спецсимволам» — ожидается сообщение об отсутствии результатов.
Какую ручную задачу автоматизирует: Написание десятков кейсов вручную — экономия 3-4 часа на каждую фичу.
3. Генерация автотестов на Python + Selenium
Задача: Получить готовый код автотеста по описанию шагов.
Промт:
Ты — инженер по автоматизации. Напиши автотест на Python с использованием Selenium WebDriver для следующего сценария:
1. Открыть https://example.com/login
2. Ввести email и пароль
3. Нажать кнопку «Войти»
4. Проверить, что открылась страница профиля
Используй паттерн Page Object Model, добавь явные ожидания и обработку ошибок.
Пример результата:
Модель генерирует классы LoginPage, ProfilePage и тест с pytest.
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
class LoginPage:
def __init__(self, driver):
self.driver = driver
self.email_input = (By.ID, "email")
self.password_input = (By.ID, "password")
self.submit_button = (By.ID, "login")
def login(self, email, password):
WebDriverWait(self.driver, 10).until(EC.presence_of_element_located(self.email_input)).send_keys(email)
self.driver.find_element(*self.password_input).send_keys(password)
self.driver.find_element(*self.submit_button).click()
def test_login():
driver = webdriver.Chrome()
driver.get("https://example.com/login")
login_page = LoginPage(driver)
login_page.login("test@test.com", "password")
WebDriverWait(driver, 10).until(EC.url_contains("/profile"))
assert "/profile" in driver.current_url
driver.quit()
Какую ручную задачу автоматизирует: Написание базовых автотестов — экономия 4-5 часов на каждый тест.
4. Анализ и классификация багов
Задача: Быстро проанализировать описание бага и предложить приоритет, серьёзность и возможную причину.
Промт:
Ты — QA-аналитик. Изучи следующий баг-репорт:
- Шаги: 1. Открыть приложение 2. Перейти в настройки 3. Нажать «Сменить тему» 4. Выбрать тёмную тему
- Фактический результат: приложение вылетает с ошибкой NullPointerException
- Ожидаемый результат: тема применяется без ошибок
Определи серьёзность (Critical/Major/Minor), приоритет (P1-P4) и предположительную причину. Дай рекомендации по дальнейшему расследованию.
Пример результата:
Модель отвечает:
Серьёзность: Critical — приложение не выполняет базовую функцию.
Приоритет: P1 — блокирует тестирование.
Причина: вероятно, не инициализирован объект темы перед применением.
Рекомендации: проверить логи, воспроизвести на нескольких устройствах, уточнить, происходит ли сбой на других экранах.
Какую ручную задачу автоматизирует: Первичный триаж багов — экономия 20-30 минут на баг.
5. Подготовка отчёта о тестировании
Задача: Собрать данные о прогоне тестов и сформировать отчёт для стейкхолдеров.
Промт:
Ты — QA-менеджер. На основе следующих данных создай отчёт о тестировании:
- Всего тестов: 250
- Пройдено: 200
- Провалено: 30
- Пропущено: 20
- Критических багов: 2
- Основные причины падений: нестабильность окружения, ошибки в новых функциях
Формат: краткое резюме, статистика, список рисков, рекомендации.
Пример результата:
Модель генерирует структурированный отчёт с диаграммой распределения (в тексте) и выводами о готовности к релизу.
Какую ручную задачу автоматизирует: Составление отчёта вручную — экономия 1-2 часа ежедневно.
6. Конвертация ручных тестов в автотесты
Задача: Имея ручной тест-кейс, получить код автотеста на Cypress.
Промт:
Ты — специалист по Cypress. Конвертируй следующий ручной тест в автотест:
1. Открыть страницу /checkout
2. Заполнить поле "Имя" значением "Иван"
3. Выбрать способ доставки "Курьер"
4. Нажать "Оформить заказ"
5. Проверить, что появилось сообщение "Заказ успешно оформлен"
Учти, что поле "Имя" обязательно, и добавь проверку валидации.
Пример результата:
Модель выдаёт код с использованием cy.get, cy.click, cy.contains, а также тест для проверки сообщения об ошибке при пустом поле.
Какую ручную задачу автоматизирует: Перевод ручных тестов в автоматизированные — экономия 2-3 часа на тест.
7. Генерация данных для тестирования
Задача: Создать реалистичные тестовые данные (имена, email, адреса) в нужном формате.
Промт:
Ты — помощник QA. Сгенерируй 20 наборов тестовых данных для регистрации пользователя:
- Имя: русское, не менее 2 символов
- Email: валидный формат
- Пароль: не менее 8 символов, включая цифры и заглавные буквы
- Номер телефона: формат +7 (XXX) XXX-XX-XX
Выведи в виде CSV-таблицы.
Пример результата:
Модель генерирует таблицу с колонками name, email, password, phone. Данные выглядят правдоподобно.
Какую ручную задачу автоматизирует: Подготовка данных вручную — экономия 30-40 минут.
Как я достиг 70% экономии
В моём проекте мы внедрили эти промты в ежедневный процесс. Ключевое — не копировать результат слепо, а адаптировать под свой контекст. Нейросеть не заменит тестировщика, но снимает рутину, позволяя сосредоточиться на исследовательском тестировании и сложных сценариях.
Ограничения и риски
- Актуальность информации: модели могут ошибаться в версиях библиотек, всегда проверяйте документацию.
- Безопасность: не загружайте конфиденциальные данные в публичные промты.
- Качество: сгенерированные тест-кейсы требуют ревью — нейросеть не знает специфику вашего продукта.
Итог
Промты — это не магия, а инструмент. Они экономят время, если вы умеете их готовить. Начните с малого: возьмите один из приведённых шаблонов, адаптируйте под свою задачу и посмотрите, насколько быстрее пойдёт работа. Возможно, именно вы сократите ручное тестирование на 70% в своей команде.
Комментарии