к. нашою метою є побудови безлічі тестів, що характеризується найвищою імовірністю виявлення більшості помилок в програмі, що тестується, то тест з цієї безлічі повинен:
1) зменшувати (більш ніж на одиницю) число інших тестів, які повинні бути розроблені для досягнення заздалегідь поставленої мети "задовільного" тестування;
2) покривати собою значну частину інших можливих тестів.
Іншими словами:
1) кожен тест повинен містити в собі перевірку найбільшого числа задаються зовнішньою специфікацією вхідних умови (обмежень на вхідні дані) для того, щоб мінімізувати загальне число необхідних тестів;
2) необхідно розбити область значень вхідних даних на кінцеве число підобластей (які будуть називатися класами еквівалентності), щоб можна було вважати кожний тест, що є представником деякого класу, еквівалентним будь-якому другому тесту цього класу (тобто що виявляє одні і ті ж помилки).
У загальному випадку використання терміна "клас еквівалентності" є тут не цілком точним, так виділені підобласті можуть перетинатися.
Проектування тестів по методу еквівалентного роздроблення проводиться в два етапи:
виділення по зовнішній специфікації класів еквівалентності;
побудова безлічі тестів.
На першому етапі відбувається вибір з специфікації кожної вхідної умови і роздроблення його на дві або більше групи, відповідні так званим "правильним" (ПКЕ) і "неправильним" класом еквівалентності (НКЕ), тобто областям допустимих для програми і неприпустимих значень вхідних даних. Цей процес залежить від вигляду вхідної умови. Якщо вхідна умова описує про кість область (наприклад, х <= 0.5) або кількістю (Наприклад, розмір масиву А рівний 50) допустимих значень вхідних даних, то визначаються один ПКЕ (х <= 0.5 або розмір А рівний 50) і два НКЕ (х <-0.5 ; Х> 0.5 або розмір А менше 50; розмір А більше 50). p> Якщо вхідна умова описує дискретну безліч допустимих значень вхідних даних (наприклад, В може дорівнює -1, 0 або 1), то визначаються ПКЕ для кожного значення з безлічі (в даному прикладі 3) і один НКЕ (В <> -1 & В <> 0 & В <> 1). p> Якщо вхідна умова описує ситуацію "помилково бути" (наприклад, N> 0), то визначаються один ПКЕ (N> 0) і один НКЕ (N <= 0). p> На другому етапі методу еквівалентного роздроблення виділені класи еквівалентності використовуються для побудови тестів:
кожному класу привласнюється свій номер;
проектуються тести для ПКЕ таким чином, що кожний тест покриває як можна більше ще покритих ПКЕ, доти, поки все ПКЕ НЕ будуть покриті;
проектуються тести для НКЕ таким чином, що кожен тест покриває один і тільки один НКЕ, до тих пір, поки всі НКЕ НЕ будуть покриті.
Порушення третьої умови призводить до того, що деякі тести з недопустимими значеннями вхідних даних перевіряють тільки одну помилку і приховують реакцію програми на інші помилки.
Метод еквівалентного розбиття значно краще випадкового підбору тестів, але має свої н...