Классы эквивалентности

При разработке тестовых примеров может возникнуть такая ситуация, в которой различные входные значения приводят к одним и тем же реакциям системы. Если при этом такие входные значения имеют что-то общее, то возможно объединение таких значений в классы эквивалентности, т.е. выполнение эквивалентного разбиения множества допустимых входных значений.

Разбиение на классы эквивалентности - в первую очередь, способ уменьшения необходимого числа тестовых примеров. Обычно, если в тест-требованиях специально не оговорено иное, при тестировании достаточно выполнить только один тестовый пример для каждого класса эквивалентности. Разбиение на классы эквивалентности особенно полезно, когда на вход системы может быть подано большое количество различных значений; тестирование каждого возможного значения привело бы к слишком большому объему тестирования.

Рассмотренные выше граничные условия могут служить примером классов эквивалентности:

1. Значение из середины интервала.

2. Граничные значения.

3. Недопустимые значения за границами интервала.

Таким образом, тестирование граничных условий и робастности является частным случаем тестирования с использованием классов эквивалентности – вместо того, чтобы тестировать все недопустимые значения, выбираются только соседние с граничными.

При определении классов эквивалентности следует руководствоваться следующими правилами:

· Всегда будет, по меньшей мере, два класса: корректный и некорректный

· Если входное условие определяет диапазон значений, то, как правило бывает три класса: меньше чем диапазон, внутри диапазона и больше чем диапазон. (Значения на концах диапазона могут трактоваться как граничные значения.)

· Если элементы диапазона обрабатываются по-разному, то каждому варианту обработки будут соответствовать разные требования.

Другим примером разбиения на классы эквивалентности может служить тестирование открытия файла по его имени. В результате тестирования необходимо определить, все ли варианты имен обрабатываются системой согласно следующим тест-требованиям:

1. Проверить, что в случае присутствия в имени файла символов, не являющимися буквами латинского алфавита и цифрами, система выводит сообщение об ошибке.

2. Проверить, что в том случае, когда длина имени файла превышает 11 символов, система выдает сообщение об ошибке

3. Проверить, что система не различает регистр символов имени при открытии файла.

4. Проверить, что при открытии файлов с именами, не противоречащими требованиям 1-3, система открывает файл.

Входными значениями тестового примера являются различные имена файлов, выходными – реакция системы (ошибка или успешное открытие).

Можно выделить следующие классы эквивалентности:

По длине имени:

1. Длина имени меньше 11 символов

2. Длина имени равна 11 символам

3. Длина имени больше 11 символов

По символам:

4. Имя, состоящее из цифр и букв смешанного регистра

5. Имя, состоящее из цифр и букв нижнего регистра

6. Имя, состоящее из цифр и букв верхнего регистра

7. Имя, состоящее только из цифр

8. Имя, состоящее только из букв

9. Имя, включающее знаки препинания (не буквенно-цифровые символы)

10. Имя, включающее управляющие символы (не буквенно-цифровые символы)

Эти классы эквивалентности иллюстрируют, что проверки на границах интервалов применимы не только для тестирования арифметических операций и операций сравнения. Практически для любых данных, даже текстовых, можно определить «минимальные» и «максимальные» допустимые значения.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  




Подборка статей по вашей теме: