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

Лекція 3.

Тема: Критерії вибору тестів

Мета: ознайомити студентів з поняттям ідеального критерію та шляхами наближення до нього в реальних ситуаціях. Розглянути відомі на сьогодні методи формування критеріїв тестових наборів з перевагами та недоліками. Навести відповідні приклади.

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

  2. В чому полягає сенс формального обґрунтування істинності формул?

  3. До чого зводиться даний метод в найпростішому випадку?

  4. Чи має метод значиму перевагу?

  5. В чому полягає інтерпретаційний підхід?

  6. В чому незручність використання методу?

  7. Що таке налагодження ПЗ?

  8. Що таке процес трансляції програми?

  9. Дайте визначення статичного тестування.

  10. Дайте визначення динамічного тестування.

  11. Хто такий або що таке оракул?

  12. Які методи протоколювання проміжних обчислень ви можете назвати?

  13. Що таке Контрольна точка?

  14. Що таке режим «останову»?

  15. Дайте визначення траси.

  16. Дайте визначення дампу.

  17. Перерахуйте та коротко охарактеризуйте фази тестування.

  18. В чому полягає основна проблема тестування?

  19. Дайте визначення Керуючого графу програми.

  20. Дайте визначення Шляху.

  21. Дайте визначення Гілки – шляху.

ПЛАН

1 Вимоги до ідеального критерію тестування

2 Структурні критерії (клас I).

3 Функціональні критерії (клас II)

4 Стохастичні критерії (клас III)

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

1 Вимоги до ідеального критерію тестування

Вимоги до ідеального критерію можна сформулювати наступним чином:

  • Критерій повинен бути достатнім, тобто показувати, коли деяка кінцева безліч тестів достатня для тестування даної програми.

  • Критерій повинен бути повним, тобто у випадку помилки повинен існувати тест із безлічі тестів, що задовольняють критерію, що розкриває помилку.

  • Критерій повинен бути надійним, тобто будь-які дві безлічі тестів, що задовольняють йому, одночасно повинні розкривати або не розкривати помилки програми.

  • Критерій повинен легко перевірятися.

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

Тому ми прагнемо до ідеального загального критерію через реальні складові.

Класи критеріїв

  • Структурні критерії використають інформацію про структуру програми (критерії так званого "білого ящика")

  • Функціональні критерії формулюються в описі вимог до програмного виробу ( критерії так називаного "чорного ящика" )

  • Критерії стохастичного тестування формулюються в термінах перевірки наявності заданих властивостей у теститованого додатка, засобами перевірки деякої статистичної гіпотези.

  • Мутаційні критерії орієнтовані на перевірку властивостей програмного виробу на основі підходу Монте-Карло.

2 Структурні критерії (клас I).

Структурні критерії використовують модель програми у вигляді "білого ящика", що припускає знання вихідного тексту програми або специфікації програми у вигляді потокового графа керування. Структурна інформація зрозуміла й доступна розроблювачам підсистем і модулів додатка, тому даний клас критеріїв часто використається на етапах модульного й інтеграційного тестування (Unit testing, Integration testing).

Структурні критерії базуються на основних елементах КГП, операторах, гілках і шляхах.

Умова критерію тестування команд (критерій С0) - набір тестів у сукупності повинен забезпечити проходження кожної команди не менш одного разу. Це слабкий критерій, він, як правило, використається в великих програмних системах, де інші критерії застосувати неможливо.

Умова критерію тестування гілок (критерій С1) - набір тестів у сукупності повинен забезпечити проходження кожної гілки не менш одного разу. Це досить сильний і при цьому економічний критерій, оскільки безліч гілок у тестованому додатку зазвичай не така вже і велика. Даний критерій часто використається в системах автоматизації тестування.

Умова критерію тестування шляхів (критерій С2) - набір тестів у сукупності повинен забезпечити проходження кожного шляху не менш 1 разу. Якщо програма містить цикл (особливо з неявно заданим числом ітерацій), то число ітерацій обмежується константою (часто - 2, або числом класів вихідних шляхів).

В прикладі 3.1 наведений зразок простої програми. Розглянемо умови її тестування у відповідно

void Method (int x)

{

if (x>17)

x = 17-x;

if (x==-13)

x = 0;

}

3.1. Приклад простої програми, для тестування за структурними критеріями

Тестовий набір з одного тесту, задовольняє критерію команд (C0):

(X, Y)={(xвх=30, xвих=0)} покривають всі оператори траси 1-2-3-4-5-6

Тестовий набір із двох тестів, задовольняє критерію гілок (C1):

(X, Y)={(30,0), (17, 17)} додає 1 тест до безлічі тестів для С0 і трасу 1-2-4-6. Траса 1-2-3-4-5-6 проходить через всі гілки досяжні в операторах if за умови true, а траса 1-2-4-6 через всі галузі, досяжні в операторах if за умови false.

Тестовий набір із чотирьох тестів, задовольняє критерію шляхів (C2):

(X,Y)={(30,0), (17,17), (-13,0), (21,-4)}

Набір умов для двох операторів if c мітками 2 й 4 наведений у таблиця 3.1

Таблиця 3.1 Умови операторів if

(30,0)

(17,17)

(-13,0)

(21,-4)

2 if (x>17)

>

>

4 if (x==-13)

=

Критерій шляхів С2 перевіряє програму більш ретельно, ніж критерії - C1, однак навіть якщо він задовільний, немає підстав затверджувати, що програма реалізована у відповідності зі специфікацією.

Структурні критерії не перевіряють відповідність специфікації, якщо вона не відбита в структурі програми. Тому при успішному тестуванні програми за критерієм C2 ми можемо не помітити помилку, пов'язану з невиконанням деяких умов специфікації вимог.

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