Автоматичне тестування ПЗ (визначення, процес створення)

Зміст
Автор: Jexo. Опубліковано на Unsplash

Визначення автоматичного тестування

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

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

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

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

  • Ручне тестування всіх робочих процесів, усіх позитивних та негативних сценаріїв потребує велику кількість часу та грошей.

  • Автоматизація тестування в тестуванні програмного забезпечення не вимагає втручання людини.

  • Автоматизація тестування збільшує швидкість проходження тестів.

  • Автоматизація допомагає збільшити охоплення тестуванням.

  • Ручне тестування може стати нудним і, отже є більш схильним до помилок.

Тестові випадки, які потрібно автоматизувати, можна вибрати за наступним критерієм для підвищення рентабельності інвестицій автоматизації:

  • Високий ризик – Критичні тестові випадки для бізнесу

  • Тестові випадки, які багаторазово виконуються

  • Тестові випадки, які дуже стомлюють або які важко виконувати вручну

  • Тестові випадки, які забирають багато часу

В свою чергу не підходить для автоматизації наступні випадки:

  • Тестові випадки, створені заново і не виконані вручну принаймні один раз

  • Тестові випадки, вимоги до яких часто змінюються

  • Тестові випадки, які виконуються на нерегулярній основі.

Процес створення автоматизації тестування

У процесі створення автоматизації тестування зазвичай виконуються наступні кроки:

  1. Вибір тестового інструменту

  2. Визначення області автоматизації

  3. Планування, проєктування та розробка

  4. Виконання тестів

  5. Технічне обслуговування (підтримка)

Кроки створення автоматизації на часовій шкалі

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

Вибір тестового інструменту

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

Загалом всі інструменти з автоматизації тестування можна розділити на кілька груп:

1.    Тестові фреймворки.

2.    Драйвери для тестування.

3.    Комплексні рішення.

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

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

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

На разі існує тенденція на використання автоматизованого тестування, яке використовує як мову програмування JS/TS, найпопулярніші фреймворки для цієї мови:

  1. Selenium

  2. webdriverIO

  3. Cypress

  4. Playwright

Про кожен з цих фреймворків поговоримо якось згодом.

Визначення області автоматизації

Сфера автоматизації – це область програми яку буде протестована, процес тестування якої буде автоматизовано.

Наступні пункти допомагають визначити обсяг автоматизації:

  • Функції, важливі для бізнесу

  • Сценарії з великою кількістю даних

  • Загальні функції в програмах

  • Технічна можливість

  • Ступінь повторного використання бізнес-компонентів

  • Складність тестових випадків

  • Можливість використання тих самих тестів для кросбраузерного тестування

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

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

Планування, проєктування та розробка

Автор: Alvaro Reyes. Опубліковано на Unsplash

На цьому етапі тестувальниця або тестувальник створює стратегію та план автоматизації, який містить такі деталі:

  • Вибрані засоби автоматизації

  • Конструкція каркаса та його особливості

  • Внутрішні та поза межі предметів автоматизації

  • Підготовка автоматизованого стенду

  • Розклад і графік створення сценаріїв і виконання

  • Результати автоматизованого тестування

Тобто, по суті, на етапах планування та проєктування закладаються основи до майбутнього коду автоматизованого тестування який буде написаний пізніше. До прикладу, важливо обрати підхід до написання тестових випадків, чи специфікації будуть описані більш звичною мовою для людей з використанням Cucumber, чи вони будуть написані суто кодом, який в більшості буде зрозумілий тільки тестувальникам та розробникам. Чи буде використовуватися Page Object Model чи ні. Ці і багато питань вирішуються перед безпосередньою розробкою тестового середовища, і ці етапи є найбільш дорожчими якщо буде знайдена помилка, оскільки зміни у вже готовому коді будуть коштувати дорожче і матимуть довшу тривалість ніж якщо з самого початку все буде створено так як треба.

Виконання тестів та підтримка

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

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

Наприклад це можуть бути серверні рішення такі як Github Actions або ж Jenkins. В більшості випадків запуск тестів відбувається локально без будь яких допоміжних засобів.

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

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

 Висновок

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

Планування важливіше за створення автоматичних тестів.

P.S. Автоматичне тестування - найпростіший вхід в ІТ (мануальне тестування відходить на другий план)

Поділись своїми ідеями в новій публікації.
Ми чекаємо саме на твій довгочит!
Олександр Леонов
Олександр Леонов@kiriago

2.3KПрочитань
0Автори
14Читачі
На Друкарні з 15 квітня

Більше від автора

  • Тестова документація

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

    Теми цього довгочиту:

    Qa
  • Тестування ПЗ (види тестування)

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

    Теми цього довгочиту:

    It

Вам також сподобається

  • Програмування

    Чи цікавитеся ви програмуванням? Як ви вивчали його? Програмування — це не лише навичка, яка може допомогти вам знайти роботу в сучасному цифровому світі. Це також потужний інструмент для розвитку мислення, творчості та розв’язання складних завдань.

    Теми цього довгочиту:

    Програмування

Коментарі (2)

Напишіть як тестувати функції, які виконують БД select, update ітд

І ще, у вас текс обривається

використанням фреймворку більше под

Для запуску тестів фреймворк

Вам також сподобається

  • Програмування

    Чи цікавитеся ви програмуванням? Як ви вивчали його? Програмування — це не лише навичка, яка може допомогти вам знайти роботу в сучасному цифровому світі. Це також потужний інструмент для розвитку мислення, творчості та розв’язання складних завдань.

    Теми цього довгочиту:

    Програмування