Condition Testing

Condition Testing (тестування умов) — це структурний метод тестування програмного забезпечення, при якому тестуються логічні умови в коді з метою виявлення помилок у логіці.

Цей тип тестування належить до тестування білої скриньки (white-box testing), тобто, коли тестувальник має доступ до коду програми і перевіряє внутрішню логіку виконання.

Мета Condition Testing

Основні цілі:

  1. Перевірити логіку умовних виразів
    • Кожна частина складної умови повинна бути перевірена на істинність (true) та хибність (false).
  2. Забезпечити правильність роботи кожної окремої умови
  3. Збільшити покриття коду
    • Щоб усі логічні умови були перевірені, і в результаті — знайдено більше потенційних помилок.
  4. Забезпечити надійність програми
    • Особливо важливо для критичних систем (медицина, авіація, банківські системи).

Що таке умова (Condition)?

Умова — це логічний вираз, який може бути істинним або хибним. Наприклад:

if (x > 0 && y < 10)

У цьому виразі є дві атомарні умови:

  1. x > 0
  2. y < 10

Вони об’єднані за допомогою логічного оператора && (AND).

Чому недостатньо просто перевірити весь if?

Можна протестувати, чи виконується if, але не перевірити, як поводить себе кожна умова окремо. Наприклад:

  • Якщо x > 0 завжди істинне у всіх тестах, ми не знаємо, як поводиться програма, коли x <= 0.
  • Якщо y < 10 завжди хибне — ми не перевіряємо гілку, де воно стає істинним.

Тестування лише результату if не гарантує правильності логіки усіх умов у виразі.

Що саме тестується в Condition Testing?

  • Кожна атомарна умова (елемент логічного виразу)
  • Перевіряється, чи вона може бути як true, так і false
  • Перевіряється, чи вона впливає на результат усього виразу

Види тестування умов

Види покриттяОпис
Condition CoverageКожна атомарна умова в логічному виразі перевіряється на true і false
Decision (Branch) CoverageПеревірка, що кожна гілка рішення (if, else, switch) виконується хоча б раз
Condition/Decision CoverageКомбіноване покриття — кожна умова і кожне рішення
MC/DC (Modified Condition/Decision Coverage)Перевірка, що кожна умова впливає на результат рішення незалежно

Приклад:

def check_discount(age, is_member):
    if age > 65 or is_member:
        return "Discount"
    else:
        return "No Discount"

Тут маємо 2 умови поєднані логічним оператором or:

  • age > 65
  • is_member

Щоб провести condition testing, потрібно створити такі тести:

Test Caseage > 65is_memberРезультат
1TrueFalseDiscount
2FalseTrueDiscount
3FalseFalseNo Discount
4TrueTrueDiscount

Тут кожна умова приймає значення true і false принаймні один раз.

Чому Condition Testing важливе?

  1. Знаходить логічні помилки, які не видно при поверхневому тестуванні.
  2. Гарантує, що кожен логічний елемент працює як треба
  3. Допомагає при розробці складних алгоритмів — особливо там, де є багато if/else, циклів, вкладених умов.

Підсумок

ПараметрОпис
Що це?Тестування атомарних умов у логічних виразах
МетаПеревірити, чи кожна умова працює як треба
Основна діяКожна умова тестується на true і false
ПеревагаЗнаходить логічні помилки на ранній стадії

Leave a Reply

Your email address will not be published. Required fields are marked *