function WhatIsGreater(a, b) {
let result;
if (a > b) {
result = 'a is greater than b';
}
if (b > a) {
result = 'a is less than b';
} else {
result = 'friendship :)';
}
return result;
}
a) Достатньо 1-го тесту
b) Для повного покриття потрібно 2 тести
c) Неможливо визначити необхідну кількість тестів через брак інформації
d) Потрібно 3 тести
Розгорнути правильну відповідь з поясненням
To answer this question you need to know the basics of flowcharts. Flowcharts use special shapes to represent different types of actions or steps in a process.
Завдяки блок-схемі ми зможемо наглядно побачити роботу нашого коду та проаналізувати скільки тестів потрібно для досягнення 100% покриття рішень (Decision/Branch coverage). Основна мета Decision/Branch coverage - охопити всі гілки хоча б один раз (true і false). Тобто потрібно знайти та покрити мінімальну кількість шляхів.
Зображення нашого коду у вигляді блок-схеми:
Таким чином, ми маємо 3 гілки, кількість тест кейсів для яких - 3:
- Перший - перевіряє що, якщо WhatIsGreater(2, 1), тоді в результаті виконання if (a > b) ми отримаємо 'a is greater than b'.
- Другий - дозволяє впевнитись що, якщо WhatIsGreater(1, 2), то программа пройде if (b > a), та в результаті буде 'a is less than b'.
- Третій тест кейс - перевіряє, що в інших випадках результат 'friendship :)'. Тобто, якщо параметри будуть однакові WhatIsGreater(2, 2), то отримаємо 'friendship :)'
Для досягнення 100% покриття рішень нам потрібно 3 тест кейси.