- •Розділ 1 структурне тестування програмного забезпечення
- •Тема 1.1 Класифікація принципів тестування програмного забезпечення
- •1. Структурні критерії (клас і)
- •2. Функціональні критерії (клас II)
- •3. Стохастичні критерії (клас III)
- •4. Мутаційний критерій (клас IV)
- •Тема 1.2 Переваги та недоліки принципів тестування
- •Тема 1.3 Кроки способу тестування базового шляху
- •Тема 1.4 Спосіб тестування потоків даних
- •Тема 1.5 Тестування вкладених циклів
- •Розділ 2 функціональне тестування програмного забезпечення
- •Тема 2.1 Спосіб тестування діаграм причин-наслідків
- •Тема 2.2 Тестування елементів
- •Тема 2.3 Переваги та недоліки низхідного та висхідного тестування
- •Тема 2.4 Стресове тестування та тестування виробності
- •Тема 2.5 Переваги та недоліки різних методів відлагодження
3. Стохастичні критерії (клас III)
Стохастичне тестування застосовується при тестуванні складних програмних комплексів - коли набір детермінованих тестів (X,Y) має величезну потужність. У випадках, коли подібний набір неможливо розробити й виконати на фазі тестування, можна застосувати наступну методику.
- Розробити програми - імітатори випадкових послідовностей вхідних сигналів {x}.
- Обчислити незалежним способом значення {y} для відповідних вхідних сигналів {x} і одержати тестовий набір (X,Y).
- Протестувати додаток на тестовому наборі (X,Y), використовуючи два способи контролю результатів:
1) Детермінований контроль - перевірка відповідності обчисленого значення значенню y, отриманому в результаті прогону тесту на наборі {x} - випадкової послідовності вхідних сигналів, згенерованою імітатором.
2) Стохастичний контроль - перевірка відповідності безлічі значень {yв}, отриманої в результаті прогону тестів на наборі вхідних значень {x}, заздалегідь відомому розподілу результатів F(Y). У цьому випадку безліч Y невідома (її обчислення неможливо), але відомий закон розподілу даної безлічі.
Критерії стохастичного тестування:
1) Статистичні методи закінчення тестування - стохастичні методи прийняття рішень про збіг гіпотез про розподіл випадкових величин. До них належать широко відомі: метод Стьюдента ( St ), метод Хі-квадрат ( ) і т.п.
2) Метод оцінки швидкості виявлення помилок - заснований на моделі швидкості виявлення помилок , відповідно до якої тестування припиняється, якщо оцінений інтервал часу між поточною помилкою й наступної занадто великий для фази тестування додатка.
4. Мутаційний критерій (клас IV)
Вважається, що професійні програмісти пишуть відразу майже правильні програми, що відрізняються від правильних дрібними помилками або описками типу - перестановка місцями максимальних значень індексів в описі масивів, помилки в знаках арифметичних операцій, заниження або завищення границі циклу на 1 і т.п. Пропонується підхід, що дозволяє на основі дрібних помилок оцінити загальне число помилок, що залишилися в програмі.
Підхід базується на наступних поняттях:
- Мутації - дрібні помилки в програмі.
- Мутанти - програми, що відрізняються одна від одної мутаціями .
Метод мутаційного тестування - у розроблювальну програму P вносять мутації, тобто штучно створюють програми-мутанти P1, P2... Потім програма P і її мутанти тестуються на тому самому наборі тестів (X,Y).
Якщо на наборі (X,Y) підтверджується правильність програми P і, крім того, виявляються всі внесені в програми-мутанти помилки, то набір тестів (X,Y) відповідає мутаційному критерію, а программа, що тестується, оголошується правильною.
Якщо деякі мутанти не виявили всіх мутацій, то треба розширювати набір тестів (X,Y) і продовжувати тестування.
Контрольні питання:
Дайте поняття структурних критеріїв тестування. В яких випадках вони застосовуються?
Дайте поняття функціональних критеріїв тестування. Які області тестування вони охоплюють?
Дайте визначення стохастичних критеріїв тестування. Які способи контролю використовуються при застосуванні цих критеріїв?
Дайте поняття мутаційних критеріїв та особливостей їх застосування.