Попарне тестування (pairwise testing) – це метод тестування програмного забезпечення, який використовується для зменшення кількості тестових сценаріїв з мінімальним втручанням у якість. Уявіть, що у нас є декілька взаємодіючих функцій або параметрів, і ми хочемо перевірити їхню взаємодію. Відповідно, попарне тестування полягає в перевірці всіх можливих комбінацій значень двох параметрів одночасно.
Застосовуючи попарне тестування, ми спрощуємо процес тестування та зменшуємо кількість тестових сценаріїв, що забезпечує швидке тестування без значного впливу на якість. Далі ми розглянемо приклад попарного тестування.
При виборі методу тестування важливо розуміти, чому саме попарне тестування так популярне та чому інші методи, як-от потрійне або більш складні комбінації, не застосовуються так широко.
Одна з основних переваг попарного тестування полягає в його ефективності. Згідно з дослідженнями, більшість помилок в програмному забезпеченні зазвичай знаходяться в межах взаємодії двох компонентів. Тобто, попарне тестування дозволяє виявити значну кількість помилок, використовуючи меншу кількість тестових випадків, порівняно з більш складними комбінаціями.
Попарне тестування значно економить час та ресурси, оскільки кількість тестових випадків зменшується порівняно з потрійним або більш складними комбінаціями. Чим більше параметрів включається у тестування, тим більше тестових випадків потрібно створити та виконати. Внаслідок цього, збільшення кількості комбінацій призводить до збільшення часу та витрат на тестування.
Застосування попарного тестування забезпечує оптимальне співвідношення вартості та якості. Це означає, що використання попарного тестування дозволяє досягти високого рівня якості програмного забезпечення з меншими витратами порівняно з іншими методами.
При попарному тестуванні створення та аналіз тестових сценаріїв є менш складним, ніж при використанні потрійного чи більш складних комбінацій. Тестувальники можуть швидше розробити та оцінити тестові випадки, спрощуючи процес тестування. Більш того, це дозволяє зосередитися на взаємодії між компонентами, де імовірність знаходження помилок найвища.
Потрійне та більш складні комбінації можуть бути застосовані в окремих випадках, коли вимоги до якості програмного забезпечення є дуже високими, або коли досвід показує, що значна кількість помилок знаходиться в межах взаємодії трьох та більше компонентів. Однак, в загальному випадку, попарне тестування вважається найефективнішим методом тестування, який забезпечує оптимальне співвідношення вартості та якості програмного забезпечення.
Давайте на прикладах розберемо, як ми можемо використовувати попарне тестування.
Припустимо, що ми маємо веб-додаток для замовлення їжі, який пропонує різні опції для користувача. Ці опції включають:
Всього ми маємо 12 можливих комбінацій, що можуть виникнути при взаємодії цих параметрів. Проте, застосування попарного тестування дозволяє зменшити кількість тестових випадків без втрати якості перевірки.
Спочатку створимо таблицю попарних комбінацій:
1. Українська кухня — Кур'єр — Готівкою
2. Українська кухня — Самовивіз — Картою
3. Італійська кухня — Кур'єр — Картою
4. Італійська кухня — Самовивіз — Готівкою
5. Японська кухня — Кур'єр — Готівкою
6. Японська кухня — Самовивіз — Картою
Застосування попарного тестування дозволяє зменшити кількість тестових випадків з 12 до 6, але при цьому досить ефективно перевіряє взаємодію параметрів. Це дозволяє заощадити час та ресурси на проведення тестування, а також спрощує аналіз отриманих результатів.
Розглянемо приклад мобільного додатку для відеозв'язку, який має наступні налаштування:
Враховуючи ці параметри, ми маємо 18 можливих комбінацій. Однак застосування попарного тестування дозволяє зменшити кількість тестових випадків, не втрачаючи якості перевірки.
Створимо таблицю попарних комбінацій:
1. 720p — Високий ступінь стиснення — Звук увімкнено
2. 720p — Середній ступінь стиснення — Звук вимкнено
3. 720p — Низький ступінь стиснення — Звук увімкнено
4. 1080p — Високий ступінь стиснення — Звук вимкнено
5. 1080p — Середній ступінь стиснення — Звук увімкнено
6. 1080p — Низький ступінь стиснення — Звук увімкнено
7. 4K — Високий ступінь стиснення — Звук увімкнено
8. 4K — Середній ступінь стиснення — Звук увімкнено
9. 4K — Низький ступінь стиснення — Звук вимкнено
Застосування попарного тестування зменшило кількість тестових випадків з 18 до 9, одночасно забезпечуючи ефективну перевірку взаємодії параметрів. Це дозволяє заощадити час та ресурси на проведення тестування, а також спрощує аналіз отриманих результатів.
При застосуванні попарного тестування важливо вибрати правильний алгоритм тестування, що буде генерувати тестові сценарії. Існує декілька алгоритмів, які можуть бути використані, такі як ортогональні масиви, та графові алгоритми.
Ортогональні масиви генерують тестові сценарії, які оптимально покривають простір параметрів, гарантуючи високу якість тестування з мінімальною кількістю тестів. Ін-тайференс є евристичним підходом, який генерує тестові сценарії на основі набору вхідних даних. Графові алгоритми, зокрема алгоритм А*, використовуються для розв'язання задачі генерації тестових сценаріїв на основі графових моделей.
Попарне тестування, хоч і ефективне в більшості ситуацій, має деякі недоліки. По-перше, цей метод не підходить для тестування взаємодії більш ніж двох параметрів. Це може призвести до того, що деякі помилки не будуть виявлені.
По-друге, попарне тестування може бути неефективним для тестування систем з великою кількістю параметрів. У таких випадках може знадобитися використання інших методів, таких як тестування з покриттям тверджень або мутаційне тестування.
Існує багато інструментів, які допоможуть вам застосовувати попарне тестуванання у вашому проекті. Деякі з них включають:
Попарне тестування є ефективним методом тестування програмного забезпечення, який дозволяє зменшити кількість тестових сценаріїв без втрати якості. Цей метод підходить для тестування взаємодії двох параметрів і може бути використаний у різних областях, від веб-додатків до систем реального часу.
Проте, попарне тестування має деякі недоліки, які варто враховувати. Воно не підходить для тестування взаємодії більш ніж двох параметрів.
Навчитись всім методам та нюансам тестування ви зможете на наших курсах QA.