Щиро вітаю всіх причетних зі святом. День захисників і захисниць — це свято віри, відваги та самопожертви.Це день тих, хто став щитом для рідної землі, хто боронить нашу свободу, гідність і майбутнє.
Щиро вдячний кожному і кожній з вас за мужність, витримку та незламний дух. Низький уклін тим, хто сьогодні на передовій, і вічна пам’ять тим, хто віддав життя за незалежність України.
Бажаю нашим захисникам і захисницям міцного здоров’я, надійного тилу, перемоги та мирного неба.
Condition Testing (тестування умов) — це структурний метод тестування програмного забезпечення, при якому тестуються логічні умови в коді з метою виявлення помилок у логіці.
Цей тип тестування належить до тестування білої скриньки (white-box testing), тобто, коли тестувальник має доступ до коду програми і перевіряє внутрішню логіку виконання.
Мета Condition Testing
Основні цілі:
Перевірити логіку умовних виразів
Кожна частина складної умови повинна бути перевірена на істинність (true) та хибність (false).
Забезпечити правильність роботи кожної окремої умови
Збільшити покриття коду
Щоб усі логічні умови були перевірені, і в результаті — знайдено більше потенційних помилок.
Забезпечити надійність програми
Особливо важливо для критичних систем (медицина, авіація, банківські системи).
Що таке умова (Condition)?
Умова — це логічний вираз, який може бути істинним або хибним. Наприклад:
if (x > 0 && y < 10)
У цьому виразі є дві атомарні умови:
x > 0
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 Case
age > 65
is_member
Результат
1
True
False
Discount
2
False
True
Discount
3
False
False
No Discount
4
True
True
Discount
Тут кожна умова приймає значення true і false принаймні один раз.
Чому Condition Testing важливе?
Знаходить логічні помилки, які не видно при поверхневому тестуванні.
Гарантує, що кожен логічний елемент працює як треба
Допомагає при розробці складних алгоритмів — особливо там, де є багато if/else, циклів, вкладених умов.