Що таке тестовий скрипт? Як написати його за допомогою прикладу

⚡ Розумний підсумок

Тестовий скрипт у тестуванні програмного забезпечення — це рядковий набір виконуваних інструкцій, які керують застосунком і перевіряють кожен крок. Цей посібник охоплює три методи збірки, шаблон багаторазового використання та робочий... Selenium приклад.

  • ???? Основне визначення: У скрипті зазначено кожну транзакцію, яку потрібно виконати, точні дані для введення та очікуваний результат кожного кроку.
  • 🎛️ Три методи збірки: Запис та відтворення, написання сценаріїв на основі ключових слів або даних, а також написання коду безпосередньо мовою програмування.
  • 🧱 Свобода мови: Мова сценаріїв не обов'язково має збігатися з мовою програми, тому Java продукт можна протестувати за допомогою JavaСценарій або Python.
  • 📋 Шаблон дисципліни: Стандартний шаблон фіксує поля ідентифікатора, попередніх умов, тестових даних, кроків, очікуваного результату та стану.
  • 🇧🇷 Скрипт проти кейсу: Тестовий випадок – це покрокова процедура, що виконується вручну, тоді як тестовий скрипт виконується автоматично інструментом.
  • Правила якості: Зберігайте кожен сценарій чітким, обмежуйте кожен крок однією дією та проєктуйте шляхи з точки зору реального користувача.

Що таке тестовий сценарій

Що таке тестовий сценарій у тестуванні програмного забезпечення?

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

Оскільки один і той самий скрипт є виконуваним, його можна систематично відтворювати на багатьох пристроях та збірках. Використовуваний скрипт завжди записує як фактичні введені дані, так і очікуваний результат.

Як написати тестовий сценарій

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

Існує три різні способи створення тестового сценарію:

Запис та відтворення

У цьому методі тестувальнику взагалі не потрібно писати жодного коду, лише записувати дії користувача. Кодування все одно потрібне пізніше, щоб виправити будь-які помилки або точно налаштувати поведінку автоматизації.

Цей метод легший, ніж написання повного тестового сценарію з нуля, оскільки у вас уже є повний код. Здебільшого він використовується у спрощеній мові програмування, такій як VBScript.

Скрипти на основі ключових слів або даних

У цьому методі існує чітке поділ між тестувальниками та розробниками. У сценаріях, керованих даними, тестувальник визначає тест за допомогою ключових слів, не знаючи основного коду.

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

Написання коду мовою програмування

Якщо ви оберете цей метод, у вас зазвичай все ще будуть доступні функції запису та відтворення для створення першого варіанту сценарію.

Однак, рано чи пізно, тестувальнику потрібно вийти за рамки запису та відтворення та навчитися писати прості скрипти вручну. Важливо розуміти, що ви можете вибрати свій Мова програмування навіть якщо ваша заявка написана в Java.

Однак це не означає, що вам потрібно писати тестові сценарії Java, чому може бути важко навчитися. Натомість ви можете написати тестові сценарії більш простою мовою, наприклад JavaScript або Ruby (або будь-яку іншу простішу мову, яку ви бажаєте використовувати).

Приклад тестового сценарію

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

  • Укажіть, як інструмент автоматизації може знайти поля «Ім’я користувача» та «Пароль» на екрані входу. Скажімо, за ідентифікаторами елементів CSS.
  • Завантажте домашню сторінку веб-сайту, а потім натисніть посилання «ввійти». Переконайтеся, що екран входу, який з’являється, і поля «Ім’я користувача» та «Пароль» є видимими.
  • Введіть ім’я користувача «Charles» та пароль «123456», потім знайдіть кнопку «Підтвердити» та натисніть її.
  • Їм потрібно вказати, як користувач може знайти заголовок екрана привітання, який з’являється після входу, скажімо, за ідентифікатором елемента CSS.
  • Переконайтеся, що заголовок екрана привітання видно.
  • Прочитайте заголовок екрана привітання.
  • Стверджуйте, що текст заголовка дорівнює «Ласкаво просимо, Чарльзе».
  • Якщо назва відповідає очікуванням, запишіть тест як пройдений. В іншому випадку запишіть як не пройдений.

Зразок тестового сценарію в Selenium з Java

У наведеному вище списку описано тест входу в систему простою англійською мовою. Ось той самий тест, написаний як виконуваний скрипт, використовуючи Selenium Вебдрайвер та 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”) та стверджують actual == “Welcome Charles”.

Поради щодо створення тестового сценарію

Ось кілька важливих порад щодо створення тестового сценарію:

Тримайте це чітким

Ваш тестовий скрипт має бути достатньо зрозумілим, щоб його можна було запускати без сторонньої допомоги. Якщо тестувальнику доводиться постійно запитувати у власника проєкту деталі щодо програми, він марнує час і ресурси.

Щоб уникнути цього, переконайтеся, що кожен крок у тестовому сценарії є чітким, лаконічним та послідовним. Це допомагає забезпечити безперебійний процес тестування.

Нехай вона буде простою

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

Обміркуйте це.

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

Коли використовувати підхід тестового сценарію?

Ось причини використання тестового сценарію.

  • Тестовий сценарій – це найнадійніший спосіб підтвердити, що жоден крок не пропущено, і що результати відповідають узгодженому плану тестування.
  • Підготовлений сценарій залишає набагато менше місця для помилок під час виконання.
  • Коли тестувальники вільно досліджують продукт, вони можуть легко пропустити деякі функції.
  • Тестер також може припустити, що функція дала очікуваний результат, хоча цього не сталося.
  • Це особливо корисно, коли продуктивність користувача є важливою та специфічною.

Що таке шаблон тестового сценарію?

Шаблон тестового сценарію — це попередньо відформатований документ, який можна використовувати повторно, і містить поля, які має заповнити кожен сценарій у вашому проєкті. Його стандартизація визначає, наскільки детальними будуть ваші тести, і гарантує, що жодному рецензенту не доведеться здогадуватися, що означає той чи інший крок.

Працюючий шаблон містить такі поля:

Поле Мета
Ідентифікатор скрипта Унікальний ідентифікатор, що використовується для tracзручність та зв'язування дефектів
назва Один рядок, що вказує, що перевіряє скрипт
Модуль або функція Галузь тестованої програми
Передумови Стан, у якому система має бути активована перед виконанням першого кроку
Дані тесту Точні вхідні дані, включаючи облікові дані та граничні значення
заходи Нумеровані дії, одна дія на крок
Очікуваний результат Спостережуваний результат кожного кроку
Фактичний результат Заповнюється під час виконання
Статус Прохід, невдача, блокування або небіг
Автор і дата Власність та історія версій

Різниця між тестовим прикладом і тестовим сценарієм

Ось основні відмінності між тестовим випадком та тестовим скриптом:

Тестовий випадок Тестовий сценарій
Тестовий випадок це покрокова процедура, яка використовується для тестування програми. Тестовий сценарій — це набір інструкцій для автоматичного тестування програми.
Тестові приклади використовуються для середовища ручного тестування. Test Script використовується в середовищі автоматизованого тестування.
Це робиться вручну. Це робиться відповідно до формату сценарію.
Шаблон тестового випадку містить ідентифікатор тесту, дані тесту, процедуру тестування, фактичні та очікувані результати тощо. У тестовому сценарії ми можемо використовувати різні команди для розробки сценарію.

Переваги та недоліки тестових скриптів

Написання скриптів – це інвестиція. Знання того, де вона окупається, підкаже вам, які тести автоматизувати в першу чергу.

Переваги

  • Повторювані: ті самі кроки виконуються однаково для кожної збірки, що робить регресійне тестування практичним.
  • Швидко та масштабно: Набір, для якого потрібен один тестер на день, може працювати за лічені хвилини, а може й всю ніч.
  • послідовний: Сценарій ніколи не набридає, не пропускає кроків і не неправильно читає результат.
  • кросплатформенний: один скрипт можна відтворювати в різних браузерах, пристроях та операційних системах.
  • Готовий до ЦІ: Скрипти підключаються до конвеєра збірки, тому кожен коміт перевіряється автоматично.

Недоліки

  • Висока вартість налаштування: Написання та налагодження скрипта займає набагато більше часу, ніж одноразовий запуск тесту вручну.
  • Обтяження на технічне обслуговування: змінений ідентифікатор елемента або перероблені скрипти розривів сторінок, які потім необхідно виправити.
  • Вимоги до навичок: Окрім запису та відтворення, команді потрібні навички програмування.
  • Сліпий до неочікуваного: Скрипт перевіряє лише те, що йому доручено перевірити, тому візуальні дефекти та дефекти зручності використання залишаються непоміченими.
  • Хибна впевненість: зелений набір поверхневих сценаріїв може приховати реальні прогалини в охопленні.

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

Тестовий сценарій: ключові висновки

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

Поширені запитання

Тестовий випадок – це покрокова процедура, написана вручну для тестувальника. Тестовий скрипт – це виконуваний код, який інструмент запускає автоматично. Один тестовий випадок часто перетворюється на один тестовий скрипт після його автоматизації.

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

Все, що запускається один раз, все, що змінюється кожного спринта, і все, що оцінюється візуально. Дослідницьке тестування, перевірка зручності використання та разові перевірки коштують дорожче для написання сценарію, ніж для виконання вручну.

Так. Інструменти штучного інтелекту можуть перетворювати письмові тестові випадки на виконувані скрипти та пропонувати самовідновлювальні локатори, коли елемент змінюється. Revпереглядати кожне згенероване твердження, тому що скрипт, який ніколи не дає збоїв, нічого не тестує.

Інструменти на основі штучного інтелекту виявляють змінені елементи та оновлюють локатори без втручання людини, що усуває найпоширенішу причину несправних скриптів. Команди все одно перевіряють зміни, перш ніж знову довіряти пакету.

Підсумуйте цей пост за допомогою: