Сэкономили часы работы: сценарии e2e-тестов с помощью ChatGPT4

от автора

Всем привет! Меня зовут Катя, я PO приложения для подготовки документации. Мы продвигаем подход Docs as Code среди нетехнических специалистов. В этой статье я расскажу, как мы сэкономили кучу времени: научили ChatGPT4 писать сценарии e2e-тестов для нашего WYSIWYG-редактора.

Дисклеймер №1

В приложении мы используем WYSIWYG-редактор на базе Tip-Tap. Опережая волну хейта: да, мы реально верим, что визивиг может быть удобным и понятным. Да, мы такой сделаем.

Дисклеймер №2

Тут не будет развернутого рассказа о настройке самих тестов, только о сценариях.

Предпосылки

Как в любом стартапе, у нас небольшая команда и нет четкого разделения на аналитиков, тестеров, кодеров и так далее. Все задачи мы равномерно размазываем между друг другом.

Каждую готовую фичу мы тестируем в 3 этапа:

  1. Ручное тестирование разработчиком на соответствие требованиям из User Story.

  2. Ручное тестирование PO в хаотичном порядке.

  3. Автоматические e2e-тесты, чтобы точно знать, что ничего вокруг не отвалилось.

Главная головная боль — тестирование визуального редактора. В отличие от многих систем, мы не ограничиваем использование разных элементов внутри друг друга. Из-за этого нам приходится четко прописывать их взаимодействие. Как вы можете догадаться, автотесты нужны буквально на каждый пук.

С чего мы начали

Шаг 1. Настройка. Сначала, конечно, настроили сами тесты. Как — я не знаю, это сделали разработчики.

Для запуска - Cucumber, для написания - Genkin, для воспроизведения - Playwrite:)

Для запуска — Cucumber, для написания — Genkin, для воспроизведения — Playwrite:)

Шаг 2. Синтаксис. Затем договорились о синтаксисе для сценариев. Какие требования выдвигались:

  • Понятное описание происходящего (я уже подозревала, что придется самой писать сценарии).

  • Одинаковое именование сущностей в интерфейсе (сделали глоссарий).

Шаг 3. Подготовка сценариев. Тесты настроены, синтаксис согласован, можно писать. Я сделала пару фича-файлов и выдохлась. Долго, муторно, скучно.

Как автоматизировали

Каждый раз, решая баг по редактору, мы говорили: «даааа, надо бы писать тесты, дааа». Начать всегда тяжело, и чтобы это сделать, в стиле эффективного менеджера я пошла к ChatGPT со своими потребностями. Что в него загнала:

  1. Промпт. Содержал следующий текст:

    Действуй как профессиональный тестировщик. У тебя есть синтаксис для написания e2e-тестов:  Сценарий: Удалить связь маркированного списка по нажатию на Backspace   Пусть документ содержит   """     - text     - (*)text   """   Когда жмем "Backspace"   Тогда документ будет содержать   """     - text      (*)text   """   Когда жмем "Backspace"   Тогда документ будет содержать   """     - text(*)text   """  Я тебе отправлю описание логики каждой фичи. Напиши сценарии тестирования, используя этот синтаксис. Должно получиться 22 сценария.
  2. Описание логики каждой фичи. Я их взяла из User Story и оформила списком. Примерно так:

    ... В статье можно создать нумерованный список:  - когда нажимаем Ctrl + Shift + 7 - когда пишем 1. и нажимаем пробел - когда нажимаем на нумерованный список в панели редактирования  В статье можно создать маркированный список:  - когда нажимаем Ctrl + Shift + 8 - когда пишем - и нажимаем пробел - когда нажимаем на маркированный список в панели редактирования  В список можно добавить пункты:  - когда в конце первого пункта нажимаем Enter ...

И что же получилось…

А все получилось. 0 вопросов и претензий. Берем в работу, спасибо чату.

Резюмируем

ChatGPT молодец, а мы — не очень. Могли и раньше догадаться у него спросить.

Что не стоит упускать из внимания: любую работу (автоматизированную или ручную) нужно проверять. Чат, как и обычный человек, не всегда внимателен. Например, иногда терял позицию фокуса в тестах или объединял два сценария в один. Но этот парень обучаем — важно не переделывать за ним, а просить все переписать с исправлениями. Тогда В ЭТОМ ЧАТЕ он ошибаться больше не будет.


ссылка на оригинал статьи https://habr.com/ru/articles/766726/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *