Что такое тестовый скрипт? Как его написать на примере.

⚡ Умное резюме

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

  • ???? Основное определение: В сценарии описывается каждая выполняемая транзакция, точные входные данные и ожидаемый результат каждого шага.
  • 🇧🇷 Три метода сборки: Запись и воспроизведение, написание скриптов на основе ключевых слов или данных, а также написание кода непосредственно на языке программирования.
  • 🧱 Свобода языка: Язык сценария не обязательно должен совпадать с языком приложения, поэтому Java продукт можно протестировать с помощью JavaСкрипт или Python.
  • 📋 Шаблонная дисциплина: Стандартный шаблон фиксирует поля ID, предварительные условия, тестовые данные, шаги, ожидаемый результат и статус.
  • ️ Сценарий против кейса: Тестовый пример представляет собой пошаговую процедуру, выполняемую вручную, тогда как тестовый скрипт выполняется автоматически инструментом.
  • ✅ Правила качества: Каждый скрипт должен быть понятным, каждый шаг должен состоять из одного действия, а пути выполнения следует проектировать с учетом реальной ситуации пользователя.

Что такое тестовый сценарий?

Что такое тестовый сценарий в тестировании программного обеспечения?

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

Поскольку скрипт является исполняемым, его можно систематически воспроизводить на множестве устройств и в разных сборках. Используемый скрипт всегда записывает как фактические входные данные, так и ожидаемый результат.

Как написать тестовый сценарий

Тестовый сценарий
Тестовый сценарий

Существует три различных способа создания тестового сценария:

Запись и воспроизведение

При этом методе тестировщику не нужно писать никакого кода, а лишь записывать действия пользователя. Код всё равно потребуется позже для исправления ошибок или для тонкой настройки поведения автоматизации.

Этот метод проще, чем написание полного тестового сценария с нуля, поскольку у вас уже есть полный код. Чаще всего он используется в упрощенном языке программирования, таком как VBScript.

Скриптинг на основе ключевых слов или данных

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

Здесь задача разработчиков — реализовать код тестового сценария для ключевых слов и обновлять этот код при необходимости. Таким образом, в этом методе тестировщику не нужно беспокоиться о системе. Однако они будут в значительной степени полагаться на ресурсы разработки для любой новой функциональности, которую вы хотите протестировать автоматически.

Написание кода на языке программирования

Если вы выберете этот метод, у вас, как правило, по-прежнему будут доступны функции записи и воспроизведения для создания первого черновика сценария.

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

Однако это не означает, что вам нужно писать тестовые сценарии на Java, чему может быть трудно научиться. Вместо этого вы можете писать тестовые сценарии на более простом языке, например JavaСценарий или Ruby (или любой более простой язык, который вы хотите использовать).

Пример тестового сценария

Например, чтобы проверить функцию входа на веб-сайт, ваш тестовый скрипт может сделать следующее:

  • Укажите, как инструмент автоматизации может найти поля «Имя пользователя» и «Пароль» на экране входа в систему. Скажем, по идентификаторам их CSS-элементов.
  • Загрузите домашнюю страницу веб-сайта, затем нажмите ссылку «Войти». Убедитесь, что появившийся экран входа в систему и поля «Имя пользователя» и «Пароль» видны.
  • Введите имя пользователя «Charles» и пароль «123456», затем найдите кнопку «Подтвердить» и нажмите на нее.
  • Им необходимо указать, как пользователь может найти заголовок экрана приветствия, который появляется после входа в систему, скажем, по идентификатору его элемента CSS.
  • Убедитесь, что заголовок экрана приветствия виден.
  • Прочитайте заголовок экрана приветствия.
  • Утверждается, что заголовок равен «Добро пожаловать, Чарльз».
  • Если заголовок соответствует ожиданиям, зафиксируйте тест как пройденный. В противном случае зафиксируйте его как не пройденный.

Пример тестового скрипта в Selenium с Java

Приведённый выше список описывает тест авторизации простым языком. Вот тот же тест, написанный в виде исполняемого скрипта, с использованием... Selenium WebDriver и JUnitКаждый пункт списка соответствует одной или двум строкам кода.

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.junit.Assert;
import org.junit.Test;

public class LoginTestScript {

    @Test
    public void validLoginShowsWelcomeMessage() {
        // Step 1: start the browser and open the site
        WebDriver driver = new ChromeDriver();
        driver.get("https://demo.guru99.com/test/login.html");

        // Step 2: locate the fields by their element ids
        driver.findElement(By.id("email")).sendKeys("Charles");
        driver.findElement(By.id("passwd")).sendKeys("123456");

        // Step 3: submit the form
        driver.findElement(By.id("SubmitLogin")).click();

        // Step 4: read the welcome title and assert the expected result
        String actual = driver.findElement(By.id("welcome")).getText();
        Assert.assertEquals("Welcome Charles", actual);

        driver.quit();
    }
}

Три детали отличают настоящий сценарий от записанного:

  • Указатели явно указаны. Элементы находятся по идентификатору, а не по положению на экране, поэтому скрипт сохраняется при изменении макета.
  • Утверждение является проверкой. Без assertEquals скрипт просто щелкает мышью; именно проверка определяет, пройдена она или нет.
  • Уборка всегда идёт своим чередом. Метод driver.quit() освобождает браузер, в противном случае неудачный запуск приводит к завершению работы процессов.

Та же структура применима к любому языку. Python с Selenium Вызовы преобразуются в driver.find_element(By.ID, “email”) и assert actual == “Welcome Charles”.

Советы по созданию тестового сценария

Вот несколько важных советов по созданию тестового сценария:

Держите это ясно

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

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

Пусть она будет простой

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

Подумайте об этом

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

Когда использовать подход тестового сценария?

Вот причины использования тестового сценария.

  • Тестовый сценарий — это наиболее надежный способ убедиться, что ни один шаг не пропущен и что результаты соответствуют согласованному плану тестирования.
  • Заранее подготовленный скрипт значительно снижает вероятность ошибок во время выполнения.
  • Когда тестировщики свободно изучают продукт, они легко могут упустить из виду некоторые функции.
  • Тестировщик также может предположить, что функция дала ожидаемый результат, даже если это не так.
  • Это особенно полезно, когда производительность пользователя важна и специфична.

Что такое шаблон тестового сценария?

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

Рабочий шаблон содержит следующие поля:

Поиск Цель
Идентификатор скрипта Уникальный идентификатор, используемый для tracсвязь между работоспособностью и дефектами
Название Одна строка, указывающая, что именно проверяет скрипт.
Модуль или функция Область применения, подлежащая тестированию
Предпосылками Укажите, что система должна быть запущена до выполнения первого шага.
Данные испытаний Точные входные данные, включая учетные данные и граничные значения.
Шаги Пронумерованные действия, одно действие на шаг
Ожидаемый результат Наблюдаемый результат каждого шага
Фактический результат Заполняется во время выполнения.
Статус Пройдено, не пройдено, заблокировано или не запущено
Автор и дата История владения и версий

Разница между тестовым набором и тестовым сценарием

Вот основные различия между тестовым примером и тестовым скриптом:

Тестовый кейс Тестовый сценарий
Прецедент — это пошаговая процедура, используемая для тестирования приложения. Тестовый сценарий — это набор инструкций для автоматического тестирования приложения.
Тестовые случаи используются для среды ручного тестирования. Тестовый сценарий используется в среде автоматизированного тестирования.
Это делается вручную. Это делается в соответствии со сценарием.
Шаблон тестового примера включает идентификатор теста, данные теста, процедуру тестирования, фактические и ожидаемые результаты и т. д. В тестовом сценарии мы можем использовать различные команды для разработки сценария.

Преимущества и недостатки тестовых сценариев

Создание скриптов — это инвестиция. Понимание того, куда она окупается, подскажет, какие тесты следует автоматизировать в первую очередь.

Преимущества

  • Повторяемый: В каждой сборке выполняются одни и те же шаги, что и делает регрессионное тестирование практичным.
  • Быстродействие в больших масштабах: Набор тестов, на выполнение которого у тестировщика уходит день, на этот раз может быть выполнен за считанные минуты и даже за ночь.
  • Последовательный: Сценарий никогда не заскучает, не пропустит ни одного шага и не допустит ошибки в интерпретации результата.
  • Кросс-платформенный: Один и тот же скрипт можно воспроизвести в разных браузерах, на разных устройствах и в разных операционных системах.
  • Готовность к CI: Скрипты интегрируются в конвейер сборки, поэтому каждый коммит проверяется автоматически.

Недостатки

  • Высокие затраты на внедрение: Написание и отладка скрипта занимает гораздо больше времени, чем однократный запуск теста вручную.
  • Расходы на техническое обслуживание: Изменение идентификатора элемента или перепроектирование страницы приводит к сбоям в работе скриптов, которые затем необходимо исправить.
  • Требования к навыкам: Помимо записи и воспроизведения, команде необходимы навыки программирования.
  • Не замечать неожиданного: Скрипт проверяет только то, что ему было поручено проверить, поэтому визуальные дефекты и проблемы с удобством использования остаются незамеченными.
  • Ложная уверенность: Набор простых скриптов зеленого цвета может скрывать реальные пробелы в охвате данных.

Практическое правило: продумайте стабильные, повторяющиеся, высокорискованные сценарии, а исследовательскую работу и вопросы юзабилити храните в ручном режиме.

Тестовый сценарий: основные выводы

  • Тестовые сценарии — построчное описание, содержащее информацию о системных транзакциях, которые необходимо выполнить для проверки тестируемого приложения или системы.
  • Тестовый пример — это пошаговая процедура, которая используется для тестирования приложения, тогда как тестовый сценарий представляет собой набор инструкций для автоматического тестирования приложения.
  • Существует три способа создания тестовых сценариев: 1) запись/воспроизведение, 2) написание сценариев на основе ключевых слов/данных, 3) написание текста. Code Использование языка программирования.
  • Ваш тестовый сценарий должен быть понятным, и вы должны создать тестовый сценарий, который должен содержать только одно конкретное действие, которое должны выполнить тестировщики.
  • Тестовый сценарий — это наиболее надежный способ убедиться, что ни один шаг не пропущен и что результаты соответствуют согласованному плану тестирования.
  • Шаблон тестового сценария — это повторно используемый форматированный документ, содержащий заранее выбранную информацию, важную для создания пригодного для использования тестового сценария.

Часто задаваемые вопросы (FAQ)

Тестовый пример — это пошаговая процедура, написанная вручную для тестировщика. Тестовый сценарий — это исполняемый код, который инструмент запускает автоматически. После автоматизации один тестовый пример часто превращается в один тестовый сценарий.

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

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

Да. Инструменты искусственного интеллекта могут преобразовывать написанные тестовые примеры в исполняемые скрипты и предлагать самовосстанавливающиеся локаторы при изменении элемента. RevПросматривайте каждое сгенерированное утверждение, потому что скрипт, который никогда не дает сбоев, ничего не проверяет.

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

Подведем итог этой публикации следующим образом: