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

Что такое тестовый сценарий в тестировании программного обеспечения?
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 Использование языка программирования.
- Ваш тестовый сценарий должен быть понятным, и вы должны создать тестовый сценарий, который должен содержать только одно конкретное действие, которое должны выполнить тестировщики.
- Тестовый сценарий — это наиболее надежный способ убедиться, что ни один шаг не пропущен и что результаты соответствуют согласованному плану тестирования.
- Шаблон тестового сценария — это повторно используемый форматированный документ, содержащий заранее выбранную информацию, важную для создания пригодного для использования тестового сценария.
