Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Метод комбинаторного покрытия условий.





Критерий комбинаторного покрытия условий удовлетворяет также и критериям покрытия решений, покрытия условий и покрытия решений/условий.

Этот метод требует создания такого числа тестов, чтобы все возможные комбинации результатов условия в каждом решении выполнялись по крайней мере один раз. По этому критерию в рассматриваемом примере должны быть покрыты тестами следующие восемь комбинаций:

1. A>1, B=0.

2. A>1, B¹0.

3. A£1, B=0.

4. А£1, B¹0.

5. A=2, X>1.

6. A=2, X£1.

7. А¹2, X>1.

8. А¹2, X£1.

Для того чтобы протестировать эти комбинации, необязательно использовать все 8 тестов. Фактически они могут быть покрыты четырьмя тестами:

· A=2, B=0, X=4 {покрывает 1, 5};

· A=2, B=1, X=1 {покрывает 2, 6};

· A=0,5, B=0, X=2 {покрывает 3, 7};

· A=1, B=0, X=1 {покрывает 4, 8}.

Таблица 7.4. Результаты тестирования методом комбинаторного покрытия

условий

Тест Ожидаемый результат Фактический результат Результат тестирования
A=2, B=0, X=4 X=3 X=3 неуспешно
A=2, B=1, X=1 X=2 X=1,5 успешно
A=0,5 B=0, X=2 X=3 X=4 успешно
A=1, B=0, X=1 X=1 X=1 неуспешно

Порядок выполнения работы:

1. Спроектировать тесты по принципу «белого ящика» для программы, Выбрать несколько алгоритмов для тестирования и обозначить буквами или цифрами ветви этих алгоритмов.

2. Выписать пути алгоритма, которые должны быть проверены тестами для выбранного метода тестирования.

3. Записать тесты, которые позволят пройти по путям алгоритма.

4. Протестировать разработанную Вами программу. Результаты оформить в виде таблиц (см. таблицы 7.1-7.4).

5. Проверить все виды тестов и сделать выводы об их эффективности.

Контрольні питання
1. Етап реалізації і тестування програмного продукту.
2. Видів тестування.
3. Критерії вибору тестів.
4. Властивості тестів.
5. Критерії надійності програм.
6. Оцінка надійності програм.

ПРИКЛАД

1. Метод покриття операторів. Цей метод вимагає написання такої кількості тестів, щоб при виконанні їх усіх кожен оператор був виконаний хоча б один раз.

Розглянемо для прикладу блок-схему

Очевидно, що тест x=1, y=1 покриє всі оператори, так як обчислення піде по траєкторії, поміченій червоним пунктиром.

 

 

2. Метод покриття рішень (шляхів). Під рішеннями тут маються на увазі висловлювання на операторах умовного переходу, вибору, циклу, взяті цілком. Ці висловлювання часто складені з простіших - елементарних висловлювань, які ми будемо називати умовами. Так, в прикладі “ x>y or x>0 ” – рішення, а його частини “ x>y ” и “ x>0 ” – умови. Метод покриття рішень вимагає такої кількості тестів, щоб при виконанні їх усіх по кожній траєкторії, що з'єднує сусідні елементи блок-схеми обчислення пройшло хоча б один раз. Це означає, що кожне рішення повинно приймати як істинні, так і помилкові значення. Саме це забезпечує використання всіх шляхів, що виходять з точок розгалуження. Що стосується операторів вибору, до них це також відноситься. Для того, щоб зберегти спільність міркувань, треба тільки переробити їх (подумки) в еквівалентний ланцюжок умовних операторів. Для нашого прикладу до тесту x=1, y=1 треба додати ще один. Наприклад, x = -3, y = -2.

 

Для нього обчислення піде по зеленій траєкторії і всі шляхи будуть покриті.

Очевидно, що метод покриття рішень гарантує покриття операторів.3. Метод покриття умов. У нашому прикладі є рішення (x > y) or (x > 0), що складається з двох умов “ x > y ” і “ x > 0 ”. Для першого тесту в п.2 це рішення істинне, для другого тесту – не істина. Для першого тесту воно істинне тому, що істинна його друга частина. Для другого тесту воно помилково, тому, що обидва судження хибні. Виходить, що для обох тестів умова x > y не істинна. Таке тестування явно неповноцінне.

Метод покриття умов полягає в такому підборі тестів, коли кожна умова (елементарне судження в умовних операторах) приймає як істинне так і хибне значення.

У нашому прикладі є три умови: “ x > y ”, “ x > 0 ” и “ x > 2*y ”. Тести: x = 1, y = 1 и x = 0, y = -1 покривають всі ці умови.

Але, як бачимо, цей метод не гарантує покриття рішень.

 

4. Метод покриття рішень / умов. Це такий набір тестів, який покриває і умови і рішення одночасно. У нашому прикладі такими тестами будуть: x=1, y=0 і

x = -3, y = -2. Схема, як вже було

Очевидно, що метод покриття рішень / умов гарантує покриття і операторів, і рішень і умов. Проте і він має недоліки.

 

 

5. Метод комбінаторного покриття умов. Недоліком методу рішень / умов є те, що деякі умови у всіх тестуваннях можуть взагалі не обчислюватися. Наприклад, для(x>y)||(x>0) компілятор мови C створить таку програму, що не стане обчислювати (x>0), якщо виявить, що (x>y). Якщо програміст хоче перевірити всі умови в рішеннях, він повинен потурбуватися про подібні труднощі. Треба просто виписати всі умови всіх рішень і створити тести, які реалізують всі можливі комбінації істинності умов в кожному рішенні.

Подивимося тепер, які умови і як будуть обчислюватися за допомогою тестів п.4. При x=1, y=0 будуть обчислені тільки:

(x > y) ” = true, “ (x>2*y) ” = false.

При x = -3, y = -2 будуть обчислені:

(x > y) ” = false, “ (x>0) ” = false, “ (x>2*y) ” = true.

Таким чином обчислення “ (x>0) ” з результатом true не буде ні разу. Цю неприємність можна усунути, якщо додати ще один тест. Наприклад, x = 1, y=2.

В даному випадку більше тестів не потрібно, але ми це бачимо, "зазирнувши" в логічну структуру висловлювання (x>y)||(x>0). Якщо ж цього не робити, то треба просто подбати про всі комбінації істинності для (x>y) і для (x>0). Інакше - заповнити таблицю

Тест (x>y) (x>0)
x=1, y=0 true True
x = -3, y = -2 False False
x=1, y=2 False True
x=0, y= -1 True False

до кінця, додавши, наприклад, в порожню клітину тест x=0, y= -1.

 

Безумовно, метод комбінаторного покриття умов гарантує покриття і операторів, і рішень і умов.

 

 







Что делать, если нет взаимности? А теперь спустимся с небес на землю. Приземлились? Продолжаем разговор...

ЧТО ПРОИСХОДИТ, КОГДА МЫ ССОРИМСЯ Не понимая различий, существующих между мужчинами и женщинами, очень легко довести дело до ссоры...

Что способствует осуществлению желаний? Стопроцентная, непоколебимая уверенность в своем...

Конфликты в семейной жизни. Как это изменить? Редкий брак и взаимоотношения существуют без конфликтов и напряженности. Через это проходят все...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.