Недоліком вичерпного тестування є те, що при великій кількості входів час на перебір стає занадто великим. [4]
Для програміста на Пролог е дисципліна вичерпного тестування роботи кожної процедури має дуже важливе значення. Ніяка процедура, за винятком, звичайно, вбудованих предикатів, дії яких змінюють базу даних Прологу, не повинна викликати побічних ефектів, що діють на інші процедури. Ми повинні бути абсолютно впевнені в тому, що при тестуванні деякої процедури, яку при цьому ми розглядаємо як незалежний компонент, її взаємодія з іншими компонентами - частинами великої програми - не призведе до помилок. [5]
При тестуванні іншої продукції, наприклад автомобіля, ми не будемо застосовувати ні вичерпного тестування. яке повинно, мабуть, виражатися в повній обкатці автомобіля по всіх дорогах країни, ні випадкового тестування. [6]
Нарешті, останній принцип, який необхідно відзначити, полягає в тому, що для перевірки кожної функціональної несправності ми використовували вичерпне тестування. Це означає, що при тестуванні кожної конкретної ситуації був використаний повний перебір відповідних умов. [7]
Рівні абстракції мінімізували число внутрішніх станів системи, завдяки чому стало можливим неформально перевірити правильність кожного рівня після його проектування і провести вичерпне тестування остаточного результату. [8]
У роботах по теорії програмування робиться акцент на те, що отримати коректну програму легше і доцільніше через стадію проектування, ніж через вичерпне тестування. При цьому стверджується, що тестування може використовуватися для показу існування помилок, а не їх відсутності. [9]
Тому вичерпне тестування для всіх вхідних даних будь-якої розумної програми нездійсненно. [10]
Ці міркування приводять до другого фундаментальному принципу тестування: тестування - проблема в значній мірі економічна. Оскільки вичерпне тестування неможливо, ми повинні обмежитися чимось меншим. Кожен тест повинен давати максимальну віддачу в порівнянні з нашими витратами. Ця віддача вимірюється ймовірністю того, що тест виявить не виявлення перш помилку. Витрати вимірюються часом і вартістю підготовки, виконання та перевірки результатів тесту. Вважаючи, що витрати обмежені бюджетом і графіком, можна стверджувати, що мистецтво тестування, по суті, являє собою мистецтво відбору тестів з максимальною віддачею. Більш того, кожен тест повинен бути представником деякого класу вхідних значень, так щоб його правильне виконання створювало у нас деяку переконаність в тому, що для певного класу вхідних даних програма буде виконуватися правильно. Це зазвичай вимагає деякого знання алгоритму і структури програми, і ми, таким чином, зміщується до правого кінця спектра. [11]
Раніше розглянуті проблеми значною мірою ускладнюються, коли ведеться розробка так званих великих програм, що характеризуються складною структурою і великою кількістю команд. У таких програмах є значна кількість можливих шляхів проходження даних, тому їх вичерпне тестування практично неможливо. [12]
Набір випробувальних тестів повністю визначається функціональними завданнями і складністю КП. Ці тести повинні забезпечувати перевірку і демонстрацію замовнику або користувачеві якості вирішення функціональних завдань, сформульованих в технічному завданні і конкретизованих в документації. Оскільки вичерпне тестування для складних КП неможливо, велике значення мають уточнення областей варіювання тестових даних і виділення областей їх зміни, найбільш важливих для подальшого використання програм. [13]
Сторінки: 1