Всем привет! Меня зовут Катя, я PO приложения для подготовки документации. Мы продвигаем подход Docs as Code среди нетехнических специалистов. В этой статье я расскажу, как мы сэкономили кучу времени: научили ChatGPT4 писать сценарии e2e-тестов для нашего WYSIWYG-редактора.
Дисклеймер №1
В приложении мы используем WYSIWYG-редактор на базе Tip-Tap. Опережая волну хейта: да, мы реально верим, что визивиг может быть удобным и понятным. Да, мы такой сделаем.
Дисклеймер №2
Тут не будет развернутого рассказа о настройке самих тестов, только о сценариях.
Предпосылки
Как в любом стартапе, у нас небольшая команда и нет четкого разделения на аналитиков, тестеров, кодеров и так далее. Все задачи мы равномерно размазываем между друг другом.
Каждую готовую фичу мы тестируем в 3 этапа:
Ручное тестирование разработчиком на соответствие требованиям из User Story.
Ручное тестирование PO в хаотичном порядке.
Автоматические e2e-тесты, чтобы точно знать, что ничего вокруг не отвалилось.
Главная головная боль — тестирование визуального редактора. В отличие от многих систем, мы не ограничиваем использование разных элементов внутри друг друга. Из-за этого нам приходится четко прописывать их взаимодействие. Как вы можете догадаться, автотесты нужны буквально на каждый пук.
С чего мы начали
Шаг 1. Настройка. Сначала, конечно, настроили сами тесты. Как — я не знаю, это сделали разработчики.
Шаг 2. Синтаксис. Затем договорились о синтаксисе для сценариев. Какие требования выдвигались:
Понятное описание происходящего (я уже подозревала, что придется самой писать сценарии).
Одинаковое именование сущностей в интерфейсе (сделали глоссарий).
Шаг 3. Подготовка сценариев. Тесты настроены, синтаксис согласован, можно писать. Я сделала пару фича-файлов и выдохлась. Долго, муторно, скучно.
Как автоматизировали
Каждый раз, решая баг по редактору, мы говорили: «даааа, надо бы писать тесты, дааа». Начать всегда тяжело, и чтобы это сделать, в стиле эффективного менеджера я пошла к ChatGPT со своими потребностями. Что в него загнала:
-
Промпт. Содержал следующий текст:
Действуй как профессиональный тестировщик. У тебя есть синтаксис для написания e2e-тестов: Сценарий: Удалить связь маркированного списка по нажатию на Backspace Пусть документ содержит """ - text - (*)text """ Когда жмем "Backspace" Тогда документ будет содержать """ - text (*)text """ Когда жмем "Backspace" Тогда документ будет содержать """ - text(*)text """ Я тебе отправлю описание логики каждой фичи. Напиши сценарии тестирования, используя этот синтаксис. Должно получиться 22 сценария.
-
Описание логики каждой фичи. Я их взяла из User Story и оформила списком. Примерно так:
... В статье можно создать нумерованный список: - когда нажимаем Ctrl + Shift + 7 - когда пишем 1. и нажимаем пробел - когда нажимаем на нумерованный список в панели редактирования В статье можно создать маркированный список: - когда нажимаем Ctrl + Shift + 8 - когда пишем - и нажимаем пробел - когда нажимаем на маркированный список в панели редактирования В список можно добавить пункты: - когда в конце первого пункта нажимаем Enter ...
И что же получилось...
А все получилось. 0 вопросов и претензий. Берем в работу, спасибо чату.
Резюмируем
ChatGPT молодец, а мы — не очень. Могли и раньше догадаться у него спросить.
Что не стоит упускать из внимания: любую работу (автоматизированную или ручную) нужно проверять. Чат, как и обычный человек, не всегда внимателен. Например, иногда терял позицию фокуса в тестах или объединял два сценария в один. Но этот парень обучаем — важно не переделывать за ним, а просить все переписать с исправлениями. Тогда В ЭТОМ ЧАТЕ он ошибаться больше не будет.
MAXH0
Я смотрю внутренняя политика НЛО на ХАБРЕ на октябрь:
"Надо дать больше инвайтов за странные статьи из песочницы."