Метод аналізу граничних умов
Під граничними умовами розуміють ситуації, що виникають безпосередньо на границі певної вхідної або вихідної умови, вище або нижче її. Метод аналізу граничних умов відрізняється від методу класів еквівалентності наступним: - вибір будь-якого представника класу еквівалентності здійснюється таким чином, щоб перевірити тестом кожну границю цього класу; - при побудові тестів розглядаються не тільки вхідні умови, але й вихідні (тобто певні специфіковані обмеження на значення вхідних даних). Загальні правила методу аналізу граничних умов: 1) побудувати тести для границь множини допустимих значень вхідних даних і тести з недопустимими значеннями, що відповідають незначному виходу за межі цієї множини. Наприклад, для множини [-1.0; 1.0] будуються тести -1.0; 1.0; -1.001; 1.001; Зауважимо, що на практиці з метою локалізації несправностей створюють також тести, що відповідають допустимим значенням, тобто є внутрішніми для множини та ті, що незначно відхиляються від граничних значень: -1.0; 1.0; -1.001; 1.001;0.999;- 0.999 Якщо множина допустимих значень вхідних даних дискретна, то будуються тести для мінімального й максимального значення вхідних умов і тести для значень, більших або менших цих величин. Наприклад, якщо вхідний файл може містити від 1 до 255 записів, то вибираються тести для порожнього файлу та файлу, що містить 1, 254, 255 і 256 записів. 2) використовувати перше правило для кожної вихідної умови; 3) якщо вхідні й вихідні дані програми являють собою впорядковану множину (послідовний файл, лінійний список та ін.), то при тестуванні зосередити увагу на першому й останньому елементі множини; 4) повторити процедуру для всіх знайдених граничних умов. Аналіз граничних умов - один з найбільш корисних методів проектування тестів. Але він часто виявляється неефективним через те, що граничні умови іноді ледь вловимі, а їхнє виявлення досить важко. Розглянемо ряд прикладів застосування функціонального тестування: Приклади. Функціональне тестування Приклад 1 Специфікація: Програма призначена для додавання двох цілих чисел. Кожен з доданків – не більш, ніж двозначне ціле число. Програма запитує у користувача два числа, після чого виводить результат. Виділимо класи еквівалентності (Таблиця 1.) Таблиця 1. Класи еквівалентності
БІЛИЙ ЯЩИК - СТРУКТУРНЕ ТЕСТУВАННЯ
Структурне тестування, або тестування «білого ящика», - це методика аналізу вихідного коду програми. Існує три різновиди структурного тестування: тестування на основі потоку керування програми, на основі потоку даних та мутаційне тестування. При використанні першого типу тестується логіка програми, що представлена у вигляді графа керування: вершинами є оператори, а гілками - переходи між ними. При тестування на основі потоку даних увага приділяється взаємозв'язкам між змінними. Виділяються вершини, у яких змінна ініціалізується та в яких використовується, і вивчаються переходи й взаємозв'язки між такими вершинами. Мутаційне тестування полягає у внесенні несправностей у вихідний код програми та порівняння роботи вихідної програми та програми мутанта. Оскільки здійснити вичерпне структурне тестування вкрай важко, необхідно вибрати такі критерії його повноти, які допускали б їхню просту перевірку й полегшували б цілеспрямований підбір тестів.
Тестування потоків керування програми
Для тестування на основі потоку керування існує ряд критеріїв: покриття операторів, покриття рішень, шляхів, циклів, умов і т.д. Найпростішим є критерій покриття операторів. Критерій покриття операторів (C0): Кожен оператор програми повинен буди виконаний (покритий) хоча б один раз.
Цей критерій є найбільш слабким з використовуваних у структурному тестуванні, тому що проходження всіх операторів не гарантує перевірку правильності послідовності попарних переходів між ними. Критерій покриття рішень(C1):
|