paint-brush
Использование ChatGPT для тестирования программного обеспеченияк@ratikeshmisra
4,466 чтения
4,466 чтения

Использование ChatGPT для тестирования программного обеспечения

к Ratikesh4m2023/09/16
Read on Terminal Reader
Read this story w/o Javascript

Слишком долго; Читать

За последние два года развитие искусственного интеллекта, особенно LLM (больших языковых моделей), позволило более эффективно решать традиционные проблемы. Одним из таких результатов, которые могут оказать LLM, является помощь в автоматизации тестирования программного обеспечения. Для многих команд разработчиков ПО автоматизация никогда не была первоочередной частью цикла SDLC, и командам приходится с трудом автоматизировать тестовые сценарии.
featured image - Использование ChatGPT для тестирования программного обеспечения
Ratikesh HackerNoon profile picture
0-item
1-item

За последние два года развитие искусственного интеллекта, особенно LLM (больших языковых моделей), позволило более эффективно решать традиционные проблемы, и одним из таких результатов, которые могут оказать LLM, является помощь в автоматизации тестирования нашего программного обеспечения. Для многих команд разработчиков ПО автоматизация никогда не была первоочередной частью цикла SDLC, и команды изо всех сил пытаются автоматизировать тестовые сценарии, что создает « долг автоматизации тестирования ». Из-за этого пробела в автоматизации тестирования команды качества тратят много времени на ручную проверку и написание тестовых примеров, что в результате замедляет скорость разработки командой инженеров.


Изменение времени ручного тестирования в зависимости от сложности кода


Единственный выход, который существует, чтобы избежать такой рутины, — это автоматизировать тестовые случаи с большей скоростью, но часто мы не можем этого сделать, потому что:


  • Отсутствие опыта автоматизации среди команд ручного контроля качества для написания масштабируемого кода.
  • Стоимость запуска автоматизации ( с точки зрения пропускной способности, необходимой для инженерного управления и контроля качества ) слишком высока из-за огромного количества невыполненных тестовых примеров, которые необходимо автоматизировать.
  • Низкое качество документации для тестовых случаев и отсутствие надлежащего обслуживания пакета регрессии и работоспособности.
  • Поскольку большинство продуктовых компаний сосредоточены на разработке функций, а, следовательно, стабильности и качества, они отодвигаются на второй план.
  • Человеческая оценка тестовых примеров предпочтительнее машинной.


Хотя все проблемы, упомянутые выше, требуют отдельной статьи о том, как команды разработчиков должны их решать, в этом разделе мы поговорим о том, как инженеры по обеспечению качества могут использовать ChatGPT или LLM в качестве второго пилота в BDD (тестирование на основе поведения).

Использование GPT3.5 для BDD и его автоматизация


Что такое БДД?


Разработка на основе поведения (BDD) — это гибкая методология разработки программного обеспечения, в которой приложение документируется и разрабатывается с учетом поведения, которое пользователь ожидает испытать при взаимодействии с ним. В контексте этого обсуждения давайте применим тестирование на основе BDD к веб-сайту YC и рассмотрим страницу входа в хакерские новости YC в качестве отправной точки.


Страница входа в новости YC Hacker


Для вышеупомянутой страницы ожидаемое поведение:

« Когда пользователь пытается войти в систему и вводит действительные учетные данные на https://news.ycombinator.com/login?goto=news и нажимает кнопку входа в систему, он должен перенаправить пользователя на веб-сайт хакерских новостей ».


В соответствии с рекомендациями BDD вышеуказанное поведение может быть записано как синтаксис/шаги Gherkin, что может быть возможным тестовым примером, а с использованием огурца в качестве основы тот же Gherkin можно автоматизировать, и это поведение больше не потребует вмешательства человека . Однако из-за проблемы, которую мы обсуждали в разделе выше, команда QA обычно страдает от ее автоматизации, но мы можем использовать возможности LLM , написав несколько подсказок и создав рабочий процесс для наших команд QA, чтобы систематизировать шаги Gherkin и их автоматизировать. с более высокой скоростью на каркасе огурца.



Рабочий процесс создания синтаксиса Gherkin

Рабочий процесс создания синтаксиса Gherkin


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


ChatGPT выводит соответствующий синтаксис Gherkin для представленного поведения.



Рабочий процесс создания кода, совместимого с огурцами, из синтаксиса Gherkin

Генерация кода, совместимого с Cucumber, с помощью шагов Gherkin с использованием GPT


Шаг 1. Предложение о разработке


Ниже приведено приглашение, которое вы можете написать в консоли ChatGPT, чтобы точно настроить его и выполнить соответствующую автоматизацию, используя HTML-код и предоставленные шаги Gherkin. В качестве окончательного результата мы попросили сгенерировать код в форме определения шага, необходимый для огурца, который можно скопировать в том виде, в каком он есть, с помощью QA.



Предложить тонкую настройку GPT для создания автоматизации на основе огурца.


Шаг 2. Внедрение соответствующего HTML-кода, который необходимо использовать в качестве основы для автоматизации.

Как показано ниже, после тонкой настройки ChatGPT запрашивает соответствующие шаги HTML и Gherkin, которые он может использовать для создания определений шагов для огурца.


HTML-канал, который необходимо использовать для автоматизации


Шаг 3: Создание определения шага


В результате GPT поймет структуру DOM из предоставленного HTML и запросит у вас соответствующий синтаксис Gherkin. Для приведенного выше случая мы уже сгенерировали Gherkin, который можем передать как есть:


 Feature: User Login Redirect Scenario: User logs in with valid credentials Given the user is on the login page of "https://news.ycombinator.com/login?goto=news" When the user enters valid credentials and presses the login button Then the user should be redirected to the "hacker news" website


Окончательный результат


Наконец, в соответствии с рабочим процессом и упомянутым приглашением он генерирует файл определения шага для вышеупомянутых шагов и сценария Gherkin, который может быть скопирован QA в их структуру огурца после незначительной проверки качества, чтобы ускорить автоматизацию поведения, которое они предполагали. тестировать.


Создано определение шага огурца

Эпоха вторых пилотов

С появлением искусственного интеллекта и появлением вторых пилотов люди увидят рост своей производительности. Они смогут еще больше расширить границы своих инноваций, передав элементарные и рутинные задачи ИИ. Тем не менее, я по-прежнему считаю, что мы должны рассматривать их просто как помощников в любой работе, которую мы выполняем, и при этом разумность их использования будет принадлежать людям, поскольку команды по технологиям, маркетингу, продажам и работе с клиентами пытаются использовать возможности LLM в своих рабочих процессах. то же самое могут сделать инженеры по контролю качества, чтобы они могли еще больше повысить свою производительность и сделать свою работу по обеспечению качества и стабильности программного обеспечения захватывающей!