Тестування білого ящика показує, якою мірою тести охоплюють логіку роботи програми. Вичерпне тестування білого ящика передбачає, що виконується кожен шлях у програмі; але суворе тестування є недосяжною метою для програми з циклами.

Рис. Невелика програма для перевірки
Якщо ви відмовляєтеся від тестування шляху, може здатися, що варто було б виконати кожен оператор у програмі хоча б один раз. Однак, на жаль, це слабкий критерій для хорошого тестування бекбоксу. Припустимо, що на рисунку вище показано невелику програму, яку потрібно протестувати. Нижче наведено еквівалентну програму, написану на процедурній мові PL/1:

Ви можете виконати кожен оператор, створивши один тест, який пройде шлях туз. In other words, if you set A = 2, B = 0, and X = 3 at point aкожен оператор буде виконано один раз (насправді X може приймати будь-яке ціле значення >1).
На жаль, цей критерій гірший, ніж ви можете собі уявити. Наприклад, нехай першим рішенням буде абоне “і”, не “і”. і. If that is the case, this error will not be found. Let the second decision in the program be X> 0; if so, this error will not be found. In addition, there is a path in which X does not change (path abd). If there is an error, then it will not be detected. Thus, the statement coverage criterion is a poor one that it is usually not used.
Користуючись послугами компанії з тестування ігор ви отримуєте можливість грати у відеоігри безкоштовно! Все, що вам потрібно - це контролювати їхню якість, знаходячи в них дефекти та баги.
Покриття рішень є сильнішим критерієм логічного покриття. На основі цього критерію слід написати достатню кількість тестових кейсів, щоб кожне рішення приймало значення true та false хоча б один раз. Іншими словами, кожна зміна напрямку гілки повинна бути виконана хоча б один раз. Прикладами операторів розгалуження або операторів переходу є do-while, if-else або switch case (або оператори COBOL PERFORM UNTIL). Множинний шлях перейти до можуть бути кваліфіковані у деяких мовах програмування, наприклад, таких як Fortran.
Покриття рішень зазвичай відповідає критерію покриття операторів. Оскільки кожен оператор знаходиться на деякому шляху, який виходить або з оператора переходу, або з точки входу в програму, виконання кожного оператора є обов’язковим за умови, що виконується кожен напрямок розгалуження. Проте є три винятки. Перший - програма не має рішень. Другий - програми або підпрограми мають декілька точок входу; цей оператор може бути виконаний тільки в тому випадку, якщо програма виконується у відповідній точці входу. Третій - оператори знаходяться всередині блоків ON; виконання кожного напрямку розгалуження не обов’язково спричиняє виконання всіх блоків ON.










0 коментарів