ChatGPT для тестировщика — как создавать тесты и документацию?

Суть

«Чат-бот ChatGPT привлек внимание QA-комьюнити. Рассмотрим, способна ли эта платформа упростить задачи тестировщиков; в первую очередь интересует автоматизация веб-тестирования и интерфейса.

OpenAI заявляет, что ChatGPT умеет писать код на разных языках программирования. Реализуем на JS (самом популярном ЯП в QA) самые частые юз-кейсы тестирования UI и API.

Забегая наперед: можно утверждать, что ChatGPT действительно умеет генерировать вполне рабочий код; хотя иногда этот код не идеален, нужны правки (небольшие).

Итак, рассмотрим, как настроить ChatGPT, как генерировать в нем JavaScript-код для Cypress, и оценим работоспособность кода.

Возможности ChatGPT

Продвинутый чат-бот с функциями искусственного интеллекта, обученный на огромном массиве данных. Модель изначально создавалась для чат-ботов и подобных диалоговых систем. Как и другие модели нейронной генерации текста, эта модель обучена на огромном массиве «нативных» текстов (то есть написанных людьми), поэтому выдает ответы, адаптированные под человеческое восприятие.

chatgpt внешний вид

Работает ли в России

Да, но есть нюансы. О них здесь или здесь; список бесплатных VPN; + способы регистраии здесь.

Cypress

JS-фреймворк автоматизации тестирования веб-приложений. В нем удобно писать и выполнять автотесты; есть функции командной строки (CLI), перезагрузки страниц в реальном времени, и параллельного запуска тестов. Подходит для тестирования современных приложений со сложными пользовательскими взаимодействиями и асинхронными операциями. Позволяет писать тесты, имитирующие то как пользователь работает с приложением, и дает детальный репорт по результатам тестов. Применяется в связке с другими современными инструментами QA, платформами непрерывной интеграции, а также другими тестовыми фреймворками, в рамках общей стратегии тестирования. Используется как тестировщиками, так и разработчиками.

Регистрация в ChatGPT

  1. Ищем ChatGPT в Гугле.
  1. Нашли, открываем официальный сайт https://openai.com/blog/chatgpt/
chatgpt регистрация
  1. Нажимаем “Try CHATGPT” (фиолетовая стрелка). Далее видим опции входа и регистрации:
chatgpt welcome screen

4. Регистрируемся (Signup, удобнее через имеющийся аккаунт в Gmail):

chatgpt создание аккаунта

5. Система предложит ввести номер мобильного и принять на смартфон код для завершения регистрации в ChatGPT. После этого появится приветствие с объяснениями и ограничениями ChatGPT, и внизу окно чата, где и будем вводить свои вопросы. Теперь можем приступать.

Пишем тесты в ChatGPT

Итак, пробуем, на что способен ChatGPT по тестам интерфейса и API. Будем задавать вопросы (на английском), которые искусственный интеллект преобразует в код.

Тестирование UI в ChatGPT

Вопрос 1.

“Напиши JavaScript-код для Cypress: открыть URL-адрес http://qaautomationlabs.com/

(На английском: “Write Cypress/ Javascript code for opening the URL of the site http://qaautomationlabs.com“)

Система понимает такой запрос, обрабатывает его, и выдает ответ — пишет для нас готовый код:

chatgpt для тестировщика

Этот код выглядит нормально и запускается без проблем:

describe('My test', () => {
  it('Visits the website', () => {
    cy.visit('http://qaautomationlabs.com');
  });
});

Страницу открывает:

cypress выполнение теста

Вопрос 2.

Предыдущее задание, плюс напечатать в консоли название страницы.

( На английском: “Write Cypress Javascript code for opening the URL of the site http://qaautomationlabs.com and print the title” ) : 

chatgpt запрос для тестировщика

Этот код тоже выполнился без проблем, и в консоли видим название-тайтл страницы:

describe("My Test Suite", function () {
  it("My Test Case", function () {
    cy.visit("http://qaautomationlabs.com/"); // open the URL
    cy.title().then(function (title) {
      console.log(title); // print the title
    });
  });
});
cypress выполняем тест из chatgpt

Вопрос 3.

«Напиши Cypress JS код для открытия адреса http://qaautomationlabs.com/ и кликнуть по ссылке Блоги»

(На английском: “Write Cypress/ Javascript code for opening the URL of the site http://qaautomationlabs.com/ and Click on the Link “Blogs” )

chatgpt в тестировании

Однако, на этот раз код оказался чуть некорректным:

Пришлось исправить код вручную, добавив {force: true } :

describe("Navigate to QAAutomationLabs website and click on Blogs link", () => {
  it("Visits the website and clicks on the Blogs link", () => {
    cy.visit("http://qaautomationlabs.com");
    cy.get('a').contains('Blogs').click({ force: true });
  });
});

И тогда код выполнился, страница открылась:

cypress выполняем тест из chatgpt

Вопрос 4.

Сценарий входа (login).

Вопрос сформулируем так:

«Напиши JavaScript код для Cypress, открыть URL-адрес  https://www.saucedemo.com и залогиниться с юзернеймом standard_user и паролем secret_sauce и нажать кнопку Login

(На английском: “ Write Cypress/ Javascript code to Open the URL https://www.saucedemo.com/ login with Username standard_user Password secret_sauce and click on the login button “).

ChatGPT выдает ответ:

qa и chatgpt

Код нормальный:

const username = "standard_user";
const password = "secret_sauce";

describe("Login to Saucedemo", () => {
  it("should log in with valid credentials", () => {
    cy.visit("https://www.saucedemo.com/");
    cy.get("#user-name").type(username);
    cy.get("#password").type(password);
    cy.get("#login-button").click();
  });
});
выполнение теста, сгенерированного в chatgpt

Тестирование API в ChatGPT

ChatGPT умеет генерировать такие тесты.

Вопрос 1. 

“Напиши код API на Javascript Cypress для GET-запроса по ссылке https://reqres.in/api/users?page=2 и проверь статус-код 200”

(На английском: “Generate Cypress API code for GET request for link https://reqres.in/api/users?page=2 and verify status code 200“)

Получаем код:

chatgpt для тестирования api

Код оказался 100% рабочий, получен ответ 200.

describe("Send GET request and verify status code", () => {
  it("should send a GET request and verify the status code", () => {
    cy.request("GET", "https://reqres.in/api/users?page=2").then((response) => {
      expect(response.status).to.eq(200);
    });
  });
});
cypress тестирование api с помощью chatgpt

Вопрос 2. 

“Напиши код Cypress API POST-запроса по ссылке https://reqres.in/api/users?page=2 с параметрами name”: “morpheus”, job”: “leader” в теле запроса, и проверь статус-код 201“

( “Generate Cypress API code for POST request for link https://reqres.in/api/users?page=2 by passing name”: “morpheus”, job”: “leader” in the body and verify status code 201“ )

chatgpt для тестирования - создаем запрос

Код нормальный, есть ответ 201.

cypress тест с помощью chatgpt
const data = {
   name: 'morpheus',
   job: 'leader',
 };
 
 describe('Send POST request and verify status code', () => {
   it('should send a POST request and verify the status code', () => {
     cy.request('POST', 'https://reqres.in/api/users?page=2', data).then((response) => {
       expect(response.status).to.eq(201);
     });
   });
 });

Вопрос 3.

“Напиши код API Cypress DELETE-запроса по ссылке https://reqres.in/api/users?page=2, и проверить статус 204.“

( “Generate Cypress API code for DELETE request for Url https://reqres.in/api/users?page=2 and verify status code 204“)

chatgpt создаем запрос

С кодом все ок, ответ 204.

describe("Send DELETE request and verify status code", () => {
  it("should send a DELETE request and verify the status code", () => {
    cy.request({
      method: "DELETE",
      url: "https://reqres.in/api/users?page=2",
    }).then((response) => {
      expect(response.status).to.eq(204);
    });
  });
});
выполнение теста в cypress

Генерация .feature-файла Cucumber в ChatGPT

ChatGPT умеет такое.

Вопрос 1.

“Напиши мне feature-файл Cucumber, открывающий URL https://qaautomationlabs.com, далее нажать кнопку “Read more” и проверить наличие на странице текста “Running End-to-End Cypress Test cases In Google Cloud Build Pipeline”:

(“Generate the Cucumber feature file to Open the URL https://qaautomationlabs.com and click on the “Read more” button and verify the text Running End-to-End Cypress Test cases In Google Cloud Build Pipeline”):

Feature: Navigate to qaautomationlabs.com, click a button, and verify text
  As a user
  I want to visit qaautomationlabs.com, click a button on the page, and verify that certain text is displayed
  So that I can see the content that the button reveals and confirm that the expected text is present

  Scenario: Click the button and verify text
    Given I am on the qaautomationlabs.com homepage
    When I click the "Read more" button
    Then I should see the content that the button reveals
    And I should see the text "Running End-to-End Cypress Test cases In Google Cloud Build Pipeline"

Неплохо.

Вопрос 2.

“Напиши feature-файл Cucumber: открыть URL https://www.saucedemo.com, логин с юзернеймом standard_user и паролем secret_sauce, нажать кнопку LOGIN.”

(Generate the Cucumber feature file to Open the url https://www.saucedemo.com/ login with Username standard_user Password secret_sauce and click on LOGIN button):

cypress генерация feature-файла cucumber
Feature: Navigate to qaautomationlabs.com and click a button
  As a user
  I want to visit qaautomationlabs.com and click a button on the page
  So that I can see the content that the button reveals

  Scenario: Click the button
    Given I am on the qaautomationlabs.com homepage
    When I click the "Read more" button
    Then I should see the content that the button reveals

Все ок.

Вопрос 3.

“Напиши таблицу данных Cucumber для сайта https://www.saucedemo.com

(«Generate cucumber Data table for https://www.saucedemo.com/ «):

chatgpt генерация таблицы данных
Feature: Login feature
  As a user, I want to be able to log in to the website so that I can access my account.

  Scenario Outline: Successful login
    Given I am on the login page
    When I enter my email address "<email>" and password "<password>"
    And I click the login button
    Then I should be logged in

  Examples:
    | email                | password |
    | standard_user | secret_sauce |
    | locked_out_user | secret_sauce |
    | problem_user | secret_sauce |
    | performance_glitch_user | secret_sauce |

И с этой задачей ChatGPT тоже справился.

Что имеем

ChatGPT хорошо работает для простых рутинных задач тестировщика. Уже понятно, что платформа может стать стандартом low-code-тестирования во многих областях QA. Хотя иногда и случаются небольшие ошибки, которые нужно исправлять вручную.

В целом, код написанный ChatGPT очень близок к написанному человеком, и вполне рабочий.»

Источник

***

Ну, и в завершение спросим у бота:

— Может ли ChatGPT заменить тестировщиков?

Ответ:
«- Нет, ChatGPT не сможет заменить тестировщиков. Хотя искусственный интеллект уже умеет отвечать на вопросы и генерировать тексты, ему не хватает умений тестировать ПО и находить баги систематически и внимательно. Люди-тестировщики играют критически важную роль в обеспечении качества ПО, используя свою креативность, опыт, и интуицию для поиска багов, которые ИИ найти не способен.»

***

Наш канал по автоматизированному тестированию

Какой была ваша первая зарплата в QA и как вы искали первую работу?

Мега обсуждение в нашем телеграм-канале о поиске первой работы. Обмен опытом и мнения.

2 КОММЕНТАРИИ

Подписаться
Уведомить о
guest

2 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Куашкин
Куашкин
1 год назад

Вот только забыли написать, что с российским номером не получится зарегистрироваться

Егор
Егор
1 год назад
Ответить на  Куашкин

Можно купить временный номер за 20 рублей

Мы в Telegram

Наш официальный канал
Полезные материалы и тесты
Готовимся к собеседованию
Project- и Product-менеджмент

? Популярное

? Telegram-обсуждения

Наши подписчики обсуждают, как искали первую работу в QA. Некоторые ищут ее прямо сейчас.
Наши подписчики рассказывают о том, как не бояться задавать тупые вопросы и чувствовать себя уверенно в новой команде.
Обсуждаем, куда лучше податься - в менеджмент или по технической ветке?
Говорим о конфликтных ситуациях в команде и о том, как их избежать
$1100*
медианная зарплата в QA в июне 2023

*по результатам опроса QA-инженеров в нашем телеграм-канале

Собеседование

19%*
IT-специалистов переехало или приняло решение о переезде из России по состоянию на конец марта 2022

*по результатам опроса в нашем телеграм-канале

live

Обсуждают сейчас