Класи еквівалентності виділяються шляхом вибору кожної вхідної умови (зазвичай це пропозиція або фраза з специфікації) та розбиттям його на дві або більше групи. Для цього використовується таблиця наступного вигляду:
Вхідна умова | Правильні класи еквівалентності | Неправильні класи еквівалентності |
Правильні класи включають правильні дані, неправильні класи - неправильні дані.
Виділення класів еквівалентності є евристичним процесом, однак при цьому існує ряд правил:
• Якщо вхідні умови описують область значень (наприклад «ціле дане може приймати значення від 1 до 999»), то виділяють один правильний клас 1£X£999 і два неправильних X <1 і X> 999.
• Якщо вхідна умова описує число значень (наприклад, «в автомобілі можуть їхати від одного до шести чоловік»), то визначається один правильний клас еквівалентності і два неправильних (жодного і більше шести осіб).
• Якщо вхідна умова описує безліч вхідних значень і є підстави вважати, що кожне значення програміст трактує особливо (наприклад, «відомі способи пересування на автобусі, вантажівці, таксі, мотоциклі або пішки»), то визначається правильний клас еквівалентності для кожного значення і один неправильний клас (наприклад «на причепі»).
|
|
• Якщо вхідна умова описує ситуацію "повинно бути" (наприклад, «першим символом ідентифікатора повинна бути буква»), то визначається один правильний клас еквівалентності (перший символ - буква) і один неправильний (перший символ - не буква).
• Якщо є будь-яка підстава вважати, що різні елементи класу еквівалентності трактуються програмою неоднаково, то даний клас розбивається на менші класи еквівалентності.