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

Що таке тестування шляху в тестуванні програмного забезпечення?
Тестування шляху — це метод структурного тестування, який передбачає використання вихідного коду програми для пошуку кожного можливого шляху до виконуваного файлу. Це допомагає визначити всі помилки, що лежать у фрагменті коду. Цей метод призначений для виконання всього або вибраного шляху через комп’ютерну програму.
Будь-яка нетривіальна програма містить багато можливих шляхів виконання. Тестування кожного з них є складним і трудомістким, і більшість із них перетинаються. Тестування базових шляхів зменшує цю надмірність, визначаючи найменший набір шляхів, який все ще виконує кожен оператор і кожну гілку принаймні один раз.
Тестування базового шляху в програмній інженерії
Тестування базового шляху в інженерії програмного забезпечення є a білий Box Тестування метод, у якому тестові випадки визначаються на основі потоків або логічних шляхів, які можна пройти через програму. Метою тестування базового шляху є визначення кількості незалежних шляхів, тому необхідну кількість тестових випадків можна визначити явно, щоб максимізувати покриття тесту.
In розробка програмного забезпеченняТестування базового шляху передбачає виконання всіх можливих блоків у програмі та досягнення максимального покриття шляху з найменшою кількістю тестових випадків. Це гібридний метод тестування гілок і методів тестування шляху.
Простий приклад робить ідею конкретною.
Наведений вище графік потоку містить умовні оператори, тому керування може досягти виходу кількома маршрутами. Для його покриття потрібні три незалежні шляхи:
- Шлях 1: 1,2,3,5,6, 7
- Шлях 2: 1,2,4,5,6, 7
- Шлях 3: 1, 6, 7
Як намалювати графік потоку керування
Кожен крок тестування базового шляху залежить від графа потоку керування, тому варто точно визначити, як він будується.
- Вузол: послідовність операторів, які завжди виконуються разом, зображена у вигляді кола. Серія операторів без розгалуження згортається в один вузол.
- Край: передача керування від одного вузла до наступного, зображена стрілкою. Ребра — це єдиний спосіб переміщення керування.
- Вузол-предикат: вузол, що містить умову, з якого виходять два або більше ребер. Ці фактори впливають на підрахунок складності.
- Регіон: область, обмежена ребрами та вузлами. Кількість областей плюс один також дорівнює цикломатичній складності.
Розглянемо короткий модуль з двома рішеннями:
if (a > b) { // node 1, predicate max = a; // node 2 } else { max = b; // node 3 } if (max > limit) { // node 4, predicate alert(); // node 5 } return max; // node 6
Граф має 6 вузлів і 6 ребер, що дає V(G) = 6 – 6 + 2 = 2 за формулою ребер. Кількість предикатів дає ту саму відповідь швидше: 2 рішення плюс 1 дорівнює 3 незалежним шляхам через дві гілки, взраховані разом. Використовуйте будь-яку форму, яку ви можете надійно обчислити, та перевірте з іншою.
Два правила, які запобігають більшості помилок. По-перше, складна умова, така як якщо (x > 0 && y > 0) вважається двома вузлами-предикатами, а не одним, оскільки коротке замикання створює друге рішення. По-друге, цикл додає один вузол-предикат незалежно від того, скільки разів він виконується.
Кроки для тестування базового шляху
Основні етапи тестування базового шляху включають:
- Намалюйте контрольний графік (щоб визначити різні шляхи програми)
- Обчислювати Цикломатична складність (метрики для визначення кількості незалежних шляхів)
- Знайдіть базовий набір шляхів
- Генерувати тестові справи здійснювати кожен шлях
Переваги та обмеження тестування базового шляху
Переваги тестування базового шляху
- Це допомагає зменшити кількість зайвих тестів
- Він акцентує увагу на логіці програми
- Він замінює довільний вибір тестових випадків аналітичною основою
- Тестові випадки, які виконують базовий набір, виконають кожен оператор у програмі принаймні один раз
Обмеження тестування базового шляху
- Він не може знайти відсутній код. Вимога, яка ніколи не була реалізована, не має шляху, тому для неї не буде згенеровано жодного тесту. Тестування базового шляху має бути поєднане з тестуванням на основі вимог.
- Кількість шляхів швидко зростає. Вкладені цикли та складені умови швидко збільшують складність, і модуль з V(G) вище 20 стає непрактичним для такого покриття.
- Висвітлення — це не коректність. Виконання шляху доводить, що код працює, а не те, що він видає правильну відповідь. Кожен тест все ще потребує змістовного твердження.
- Шляхи, що залежать від даних. Деякі шляхи досяжні лише за допомогою певних комбінацій вхідних даних, які може бути важко або неможливо побудувати.

