Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
12
Добавлен:
30.05.2020
Размер:
133.63 Кб
Скачать

5 Мутаційний критерій (клас IV).

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

Підхід базується на наступних поняттях:

Мутації - дрібні помилки в програмі.

Мутанти - програми, що відрізняються друг від друга мутаціями .

Метод мутаційного тестування - у розроблювальну програму P вносять мутації, тобто штучно створюють програми-мутанти P1, P2... Потім програма P і її мутанти тестуються на тому самому наборі тестів (X, Y).

Якщо на наборі (X, Y) підтверджується правильність програми P й, крім того, виявляються всі внесені в програми-мутанти помилки, то набір тестів (X, Y) відповідає мутаційному критерію, а тестована програма оголошується правильною.

Якщо деякі мутанти не виявили всіх мутацій, то треба розширювати набір тестів (X, Y) і продовжувати тестування.

Приклад застосування мутаційного критерію

Тестована програма P наведена вприкладі 3.2. Для неї створюється дві програми-мутанта P1 й P2.

В P1 змінене початкове значення змінної z з 1 на 2 ( приклад 3.3).

В P2 змінене початкове значення змінної i з 1 на 0 і граничне значення індексу циклу з n на n-1 (приклад 3.4).

При запуску тестів (X, Y) = {(x=2, n=3, y=8),(x=999, n=1, y=999), (x=0, n=100, y=0)} виявляються всі помилки в програмах-мутантах і помилка в основній програмі, де в умові циклу замість n стоїьб n-1:

// Метод обчислює ненегативну ступінь n числа x

double PowerNonNeg(double x, int n)

{

double z=1;

int i;

if (n>0)

{

for (i=1;n-1>=i;i++)

{

z = z*x;

}

}

else printf("Помилка ! Ступінь числа n має бути більше 0.\n");

return z;

}

3.2. Основна програма P

Змінене початкове значення змінної z у мутанті Р1 ( z = 2 ):

// Метод обчислює ненегативну ступінь n числа x

double PowerMutant1(double x, int n)

{

double z=2;

int i;

if (n>0)

{

for (i=1;n>=i;i++)

{

z = z*x;

}

}

else printf("Помилка ! Ступінь числа n має бути більше 0.\n");

return z;

}

3.3. Програма мутант P1.

Змінене початкове значення змінної i і границі циклу в мутанті P2 ( i = 0; n - 1 ):

// Метод обчислює ненегативну ступінь n числа x

double PowerMutant2(double x, int n)

{

double z=1;

int i;

if (n>0)

{

for (i=0;n-1>=i;i++)

{

z = z*x;

}

}

else printf("Помилка ! Ступінь числа n має бути більше 0.\n");

return z;

}

3.4. Програма-мутант P2.

Контрольні питання

  1. Які вимоги можна сформулювати до ідеального критерію?

  2. Дайте характеристику достатності критерію.

  3. Дайте характеристику повноти критерію.

  4. Дайте характеристику надійності критерію.

  5. Які класи критеріїв можна виділити?

  6. Охарактеризуйте Структурні критерії.

  7. Охарактеризуйте Функціональні критерії.

  8. Охарактеризуйте Критерії стохастичного тестування.

  9. Охарактеризуйте Мутаційні критерії.

  10. Що таке «білий ящик» в теорії тестування?

  11. Що таке структурний критерій тестування команд?

  12. Що таке структурний критерій тестування гілок?

  13. Що таке структурний критерій тестування шляхів?

  14. Що таке «чорний ящик» в теорії тестування?

  15. Охарактеризуйте функціональний критерій Тестування пунктів специфікації

  16. Охарактеризуйте функціональний критерій Тестування класів вхідних даних

  17. Охарактеризуйте функціональний критерій Тестування правил

  18. Тестування класів вихідних даних

  19. Охарактеризуйте функціональний критерій Тестування функцій

  20. Охарактеризуйте функціональний критерій Комбіновані критерії для програм і специфікацій

  21. Дайте визначення стохастичних критеріїв.

  22. Що таке Детермінований контроль тестування?

  23. Що таке Стохастичний контроль тестування?

  24. Які існують критерії стохастичного тестування?

  25. Опишіть метод мутаційних критеріїв.

  26. Що таке мутація?

  27. Що таке програма-мутант?

10

Соседние файлы в папке Тестування