Loop Testing — це тип тестування програмного забезпечення, що належить до категорії білого ящика (white-box testing). Основна мета loop testing — перевірити правильність циклічних конструкцій (loops) у програмному коді.
Що саме тестується?
Тестуються цикли різного типу:
- for
- while
- do-while
- рекурсивні виклики (у деяких випадках)
Основні типи циклів, що тестуються
1. Прості цикли (Simple Loops). Цикл з однією умовою, наприклад:
for i in range(5):
print(i)
2. Вкладені циклик (Nested loops). Один цикл всередині іншого.
for i in range(3):
for j in range(2):
print(i, j)
3. Залежні цикли
4. Cкладні цикли
Основна мета loop testing:
- Перевірити:
- Вхід у цикл (чи виконується хоча б раз)
- Вихід з циклу (чи коректно завершується)
- Повторення (чи виконується потрібну кількість разів)
- Виявити:
- Нескінченні цикли
- Пропущені умови
- Неправильні межі ітерацій
Типові тести:
- Zero Iteration (нуль разів) — цикл не виконується зовсім
- One Iteration (один раз)
- Typical Iteration (звичайна кількість разів)
- Max Iteration (максимально допустима кількість)
- Beyond Max (понад межу) — для виявлення помилок переповнення
Приклад (Python):
def count_positive(nums):
count = 0
for num in nums:
if num > 0:
count += 1
return count
Loop Testing тут перевірить:
- Порожній список ([])
- Список з 1 елементом ([5])
- Список з позитивними й негативними значеннями ([-1, 2, 3])
- Інші граничні випадки (дуже великий список, змішані значення, межа між негативним і позитивним (-1, 0, 1), усі значення негативні тощо)
Loop Testing — це важлива техніка для виявлення логічних помилок у циклах, особливо коли програма має багато ітерацій або вкладені цикли. Застосовується переважно розробниками чи тестувальниками, що мають доступ до коду.