Тестирование класса эквивалентности по сравнению с тестированием граничного значения

Я понимаю, как тестирование эквивалентности работает.

Как это - то же или отличающийся от тестирования граничного значения?

27
задан TylerH 10 March 2017 в 17:26
поделиться

4 ответа

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

Например, если входное условие находится в диапазоне от 20 до 70, тогда у вас есть три классы входных данных

  1. менее 20
  2. от 20 до 70
  3. более 70

тогда для анализа граничных значений выберите входные данные = 19, 20, 21, 69, 70, 71. Этот тип анализа выбирает вверх ошибки на границах.

19
ответ дан 28 November 2019 в 04:10
поделиться

Тестирование класса эквивалентности
EC-тестирование - это когда у вас есть несколько элементов теста (например, значений), которые вы хотите протестировать, но из-за стоимости (время / деньги) у вас нет времени их все проверить. Поэтому вы группируете тестовый элемент в класс, где предполагается, что все элементы в каждом классе ведут себя точно так же. Теоретически вам нужно протестировать только один из каждого элемента, чтобы убедиться, что система работает.
Пример 1
Дети младше 2 лет ездят на автобусе бесплатно. Молодые люди платят 10 долларов, Классы:
Цена: 0 -> Возраст: 0–1
Цена: 10 -> Возраст: 2-14
Цена: 15 -> Возраст: 15-64
Цена: 5 -> Возраст: 65-бесконечность

Пример 2 (более одного параметра)
Мобильные телефоны K80, J64 и J54 работают под управлением Java 5. K90 и J99 работают под управлением Java 6. Но есть два возможных браузера FireFox и Opera , Модели J работают с FF, а модели K работают с O.
Классы:
Браузер: FF, Java: 5 -> Телефоны: J64, J54
Браузер: FF, Java: 6 -> Телефоны: J99
Браузер: O, Java: 5 -> Телефоны: K80
Браузер: O, Java: 6 -> Телефоны: K90

Опасности тестирования класса эквивалентности
Существует опасность использования тестирования EC, которая редко упоминается в книгах по тестированию, но ее очень важно помнить.
Просто поскольку предполагается, что два элемента / значения находятся в одном классе и ведут себя одинаково, это не означает, что они ДЕЙСТВИТЕЛЬНО ведут себя одинаково.
Это означает, что только потому, что вы тестируете одно значение в классе, ВСЕ значения в классе ведут себя те же самые. Мой реальный пример - сотовые телефоны, у всех которых была определенная платформа Java. Предполагалось, что все они будут работать одинаково, но на самом деле это не так. Поэтому тестирование только одного значения в классе - это хорошо, но недостаточно. EC Testing - хороший инструмент, но он не является надежным, поэтому будьте осторожны с ним. Если тестовые примеры дешевы и быстры (например, автоматизация), попробуйте больше или почему бы не протестировать их все!

Тестирование граничных значений
Тестирование BV - это когда вы решаете проверить значения на границе каждого идентифицированного вами класса. Теория состоит в том, что большинство дефектов находится на грани класса. Пример
Классы:
Цена: 0 -> Возраст: 0–1 (Граничные значения 0, 1)
Цена: 10 -> Возраст: 2-14 (Граничные значения 2, 14)
Цена: 15 -> Возраст: 15-64 (Граничные значения 15, 64)
Цена: 5 -> Возраст: 65-бесконечность (Граничные значения 65)

Критика тестирования граничных значений
1) Я и другие специалисты по тестированию, у которых я проходил курсы, не убеждены, что большинство дефектов скрыто вокруг ребра каждого класса. И я никогда не видел исследований, подтверждающих это. 2) Тот факт, что вам нужно использовать BV Testing, доказывает, что EC Testing ошибочен, поскольку вы тестируете более одного значения каждого класса. 3) Легко использовать при использовании таких значений, как целые числа. Но каково граничное значение класса моделей телефонов или версий браузеров?

Тестирование скрытых граничных значений
Граничные значения класса часто основываются на спецификации того, как должна работать система. Это все хорошо, но большинство систем содержат границы, которые не объясняются ни в одной спецификации, и вам придется искать их самостоятельно. Например, «Сколько символов я могу ввести в тестовое поле, прежде чем система выйдет из строя и сломается», «Насколько большим может стать файл данных, если он не станет настолько медленным для чтения, что он станет раздражающим».
Примеры из реальной жизни
- Вставка миллиона символов в текстовую область в FireFox 3.5 при win 7 приводит к сбою
- ReCaptcha имеет ограничение в 16003 символа, обрабатывает ли ваша система 413 символов, которые она передает ей, если кто-то помещает 16004+ символов в поле. Или это сломается

Резюме
EC Testing и BV Testing - отличные инструменты, и вы должны использовать их, но они не идеальны, и не ожидайте, что с их помощью обнаружите все дефекты. Используйте свое ноу-хау о системе, свой интеллект и интуицию, чтобы пробовать больше предметов, и ищите другие способы, которые могут привести к неудаче. И ищите скрытые границы!

67
ответ дан 28 November 2019 в 04:10
поделиться

Тест на эквивалентность необходимо дополнить тестом на граничное значение.

Например, для эквивалентного тестирования функции, которая принимает значения от 1 до 12
. (скажем, месяцев в году) перегородки будут:

  • значения меньше 1 (0,-1,-2), недействительные значения раздела
  • между 1-12, действительные значения раздела
  • больше 12,недействительный раздел
  • Для проверки эквивалентности достаточно выбрать одно значение в качестве тестового ввода от каждого из этих классов разделов. Это будет означать, что тесты со значением -2,6, а 15 будет считаться достаточным для проверки поведения функции. Но эти значения не перехватывают Off-by-one ошибку, которая может встречаться достаточно часто.

    При тестировании граничных значений тестовые входы были бы : -1,0,1,11,12,13 (на границах), что перехватывало бы по одной ошибке.

    Я вижу оба этих метода тестирования как дополнение друг к другу.

    .
    11
    ответ дан 28 November 2019 в 04:10
    поделиться

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

    1
    ответ дан 28 November 2019 в 04:10
    поделиться
    Другие вопросы по тегам:

    Похожие вопросы: