На головну

ТЕСТУВАННЯ ПРОГРАМИ ЯК ЧОРНОЇ ШУХЛЯДИ

  1. II. Порядок розробки індивідуальної програми реабілітації інваліда (дитини-інваліда)
  2. Антивірусні програми та поняття комп'ютерного вірусу.
  3. Асемблер. ЕТАПИ РОЗРОБКИ ПРОГРАМИ.
  4. Блок-схема програми
  5. Бонусні програми при наданні послуг туристам
  6. У представленому фрагменті програми
  7. Ваші телевізійні програми нічого не мають проти показу неприкритого насильства, але соромляться показувати оголену любов. Все ваше суспільство служить віддзеркаленням такого пріоритету.

Одним із способів вивчення поставленого питання є дослідження стратегії тестування, званої стратегією чорного ящика, тестуванням з керуванням за даними, або тестуванням з керуванням по входу-виходу. При використанні цієї стратегії програма розглядається як чорний ящик. Іншими словами, таке тестування має на меті з'ясування обставин, в яких поведінка програми не відповідає її специфікації. Тестові ж дані використовуються тільки відповідно до специфікації програми (т. Е. Без урахування знань про її внутрішню структуру),

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

Таким чином, вичерпний тест для завдання про трикутниках повинен включати равносторонние трикутники з довжинами сторін аж до максимального цілого числа. Его, безумовно, астрономічне число, але і воно не забезпечує повноту перевірки. Цілком ймовірно, що залишаться деякі помилки, наприклад програма може представити трикутник зі сторонами 3, 4, 5 нерівносторонні, а зі сторонами 2, А, 2 рівностороннім. Для того, щоб виявити подібні помилки, потрібно перебрати не тільки все розумні, але і все взагалі можливі вхідні набори. Отже, ми приходимо до висновку, що для вичерпну тестування завдання про трикутниках потрібно нескінченне число тестів.

Якщо таке випробування буде складно, то ще складніше створити вичерпний тест для великої програми Образно кажучи, число тестів можна оцінити «числом, більшим, ніж нескінченність». Припустимо, що робиться спроба тестування методом чорного ящика компілятора з Кобола. Для побудови вичерпного тесту потрібно використовувати всі безліч правильних програм на Коболе (фактично їх число нескінченно) І все безліч неправильних програм (т. Е дійсно нескінченне число), щоб переконатися в тому, що компілятор виявляє всі помилки. Тільки в цьому випадку синтаксично невірна програма не компілювати. Якщо ж програма має власну пам'ять (наприклад, операційна система, база даних або система резервування квитків), то справи ще гірше У таких програмах виконання команди (наприклад, завдання, запиту в базу даних, виконання резервування) залежить від того, які події їй передували, т. е від попередніх команд. Тут слід перебрати не тільки всі можливі команди, але і всі їх можливі послідовності.

З викладеного випливає, що побудова вичерпного вхідного тесту неможливо. Це підтверджується двома аргументами: по-перше, не можна створити тест, який гарантує відсутність помилок; по-друге, розробка таких тестів суперечить економічним вимогам. Оскільки вичерпне тестування виключається, нашою метою має стати максимізація результативності капіталовкладень в тестування (іншими словами, максимізація числа помилок, які виявляються одним тестом). Для цього ми можемо розглядати внутрішню структуру програми і робити деякі розумні, але, звичайно, не володіють повною гарантією достовірності припущення (наприклад, розумно припустити, що якщо програма визнала трикутник 2, 2, 2 рівностороннім, то таким же виявиться і трикутник зі сторонами 3, 3, 3) Це питання обговорюється в гл. 4 при вивченні стратегії побудови тестів




ОНЛАЙН ЯК ЗАСІБ ЗАБЕЗПЕЧЕННЯ ЗМІН | ТЕСТУВАННЯ ПРОГРАМИ ЯК БІЛОГО ЯЩИКА

Об'єкти і структури даних. Відмінності процедурного та об'єктно-орієнтованого коду. випадки застосування | ГІБРИДИ | ВИЗНАЧТЕ НОРМАЛЬНИЙ ШЛЯХ ВИКОНАННЯ | ДОСЛІДЖЕННЯ І АНАЛІЗ МЕЖ | ВИКОРИСТАННЯ неіснуючих КОДА | БУДОВА КЛАСУ | Структуризації З УРАХУВАННЯМ ЗМІН | ЕФЕКТИВНІСТЬ пРОГРАМ | оптимізуючий компілятор | ТРИ ЗАКОНУ TTD |

© um.co.ua - учбові матеріали та реферати