В последние годы машинное обучение для тестирования программного обеспечения становится все более популярным. ChatGPT — это большая языковая модель, обученная OpenAI, которую можно использовать для тестирования кода JavaScript. В этой статье мы рассмотрим, как настроить ChatGPT для тестирования JavaScript и создать тестовые примеры с использованием естественного языка. Мы также рассмотрим передовые методы тестирования и лучшие практики.

Чтобы начать работу с ChatGPT для тестирования JavaScript, нам нужно установить необходимые зависимости. Первый шаг — установить клиент OpenAI API, выполнив в терминале следующую команду:

npm install openai

Далее мы создадим новый каталог проекта и инициализируем новый проект Node.js, выполнив следующие команды:

mkdir chatgpt-js-testing
cd chatgpt-js-testing
npm init -y

Теперь давайте установим необходимые фреймворки для тестирования:

npm install mocha chai

Наконец, давайте создадим файл test.js и импортируем необходимые библиотеки:

const openai = require('openai');
const assert = require('chai').assert;

Теперь, когда мы настроили ChatGPT и нашу среду тестирования, мы можем создавать тестовые случаи, используя естественный язык. Вот пример подсказки тестового примера, написанной на естественном языке:

Write test case for a function using mocha and chai:

Test Case:
Verify that the sum of two numbers is correct
Given two numbers
When the numbers are added together using the fuction
Then the result should be the sum of the two numbers

Test function:
function sum(n1, n2) {
  return n1 + n2;
}

Чтобы сгенерировать тестовый сценарий для этого тестового случая, мы можем использовать функцию openai.completions.create() из API OpenAI:

const openaiApiKey = 'YOUR_API_KEY_HERE';
const prompt = 'OUR_PROMPT';
const completions = await openai.completions.create({
  engine: 'davinci-codex',
  prompt,
  maxTokens: 2048,
  n: 1,
  stop: ['\n'],
  temperature: 0.5,
  apiKey: openaiApiKey,
});

const testScript = completions.choices[0].text;
console.log(testScript);

Это создаст тестовый скрипт на JavaScript, который может быть выполнен нашей тестовой средой. Вот пример того, как может выглядеть сгенерированный тестовый сценарий:

describe("sum function", () => {
  it("should return the sum of two numbers", () => {
    const n1 = 5;
    const n2 = 10;

    const expectedSum = n1 + n2;

    const actualSum = sum(n1, n2);

    assert.equal(actualSum, expectedSum);
  });
});

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

Write end-to-end test case using mocha and chai:

Test Case:
Verify that a user can log in to the web application
Given a user on the login page
When the user enters their credentials and clicks the login button
Then the user should be redirected to the dashboard page
And the user should be logged in

Чтобы сгенерировать тестовый сценарий для этого тестового примера, мы можем использовать тот же подход, что и раньше. Сгенерированный тестовый сценарий может выглядеть примерно так:

const chai = require("chai");
const assert = chai.assert;
const webdriver = require("selenium-webdriver");
const chrome = require("selenium-webdriver/chrome");
const chromedriver = require("chromedriver");

describe("login functionality", () => {
  let driver;

  before(() => {
    // set up Chrome browser
    const options = new chrome.Options();
    options.addArguments("start-maximized");
    driver = new webdriver.Builder()
      .forBrowser("chrome")
      .setChromeOptions(options)
      .build();
  });

  after(() => {
    // quit browser after all tests have completed
    driver.quit();
  });

  it("should allow a user to log in", async () => {
    // navigate to login page
    await driver.get("http://localhost:3000/login");

    // enter username and password
    const usernameInput = await driver.findElement(webdriver.By.id("username"));
    const passwordInput = await driver.findElement(webdriver.By.id("password"));
    const loginButton = await driver.findElement(webdriver.By.id("login-button"));

    await usernameInput.sendKeys("testuser");
    await passwordInput.sendKeys("password123");

    // click login button
    await loginButton.click();

    // wait for dashboard page to load
    await driver.wait(webdriver.until.titleIs("Dashboard"), 5000);

    // verify that user is logged in
    const pageTitle = await driver.getTitle();
    const welcomeMessage = await driver.findElement(webdriver.By.id("welcome-message")).getText();

    assert.equal(pageTitle, "Dashboard");
    assert.equal(welcomeMessage, "Welcome, testuser!");
  });
});

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

Использование ChatGPT для тестирования JavaScript может кардинально изменить процесс тестирования программного обеспечения. Используя возможности обработки естественного языка, вы можете создавать эффективные и действенные тестовые сценарии, охватывающие критические пути и пограничные случаи. Это может сэкономить ваше время и усилия, обеспечивая при этом качество вашего программного обеспечения. Так почему бы не попробовать и не увидеть результаты своими глазами? С ChatGPT вы можете вывести тестирование JavaScript на новый уровень.

Дополнительные материалы на PlainEnglish.io.

Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter, LinkedIn, YouTube и Discord .

Заинтересованы в масштабировании запуска вашего программного обеспечения? Ознакомьтесь с разделом Схема.