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

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

Чем он отличается или отличается от тестирования граничных значений?


person neuromancer    schedule 15.12.2009    source источник


Ответы (6)


Тестирование класса эквивалентности
Тестирование EC - это когда у вас есть несколько элементов теста (например, значений), которые вы хотите протестировать, но из-за затрат (время / деньги) у вас нет времени на их тестирование. все. Поэтому вы группируете тестовый элемент в класс, где предполагается, что все элементы в каждом классе ведут себя точно так же. Теоретически вам нужно протестировать только один из каждого элемента, чтобы убедиться, что система работает.
Пример 1
Дети младше 2 лет ездят на автобусе бесплатно. Молодые люди платят 10 долларов, взрослые - 15 долларов, пожилые люди - 5 долларов.
Классы:
Цена: 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 - отличные инструменты, и вы должны их использовать, но они не идеальны, и не стоит ожидать, что с их помощью вы обнаружите все дефекты. Используйте свое ноу-хау о системе, свой интеллект и интуицию, чтобы пробовать больше предметов, и ищите другие способы, по которым это может потерпеть неудачу. И ищите скрытые границы!

person Jonas Söderström    schedule 23.12.2009

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

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

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

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

person Vincent Ramdhanie    schedule 15.12.2009

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

For example for equivalent testing of a function that takes values between 1 and 12
(say months of a year) the partitions would be:

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

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

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

    person sateesh    schedule 23.12.2009
    comment
    Намного лучше - просто и ясно! Спасибо:) - person Timur Fayzrakhmanov; 16.02.2017

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

    person Rajasankar    schedule 29.12.2009

    Анализ граничных значений преодолевает недостаток разделения классов эквивалентности. Если длина фиксации задана, например, для. Мобильный номер (10 цифр.)

    Нижняя граница в этом случае - цифра - 1 (т. Е. 10 - 1 = 9). Верхняя граница в этом случае - цифра +1 (т. Е. 10 + 1 = 11).

    Теперь мы можем выполнить тест для 9 и 11

    person Abhishek SIngh    schedule 13.10.2014

    Типы динамического тестирования -

    1. Тестирование на основе спецификаций

      А. Разделение по эквивалентности

        A1. Boundary value analysis
      
        A2. Decision Tables
      
        A3. Use case Testing
      
        A4. State Transition testing
      
    2. Структурное тестирование

      A. Тестовое покрытие

      Б. Охват кода

      C. Покрытие заявления

      D. Охват решения

    3. Тестирование на основе опыта

      A. Тестирование ошибок

      Б. Исследовательское тестирование

    Разделение по эквивалентности - это метод, при котором тестировщик разделяет условия тестирования на группы и наборы. Система должна обрабатывать их эквивалентно, поэтому они называются классами эквивалентности. Чтобы проверить одно условие из каждого раздела, можно предположить, что все условия будут работать в этом разделе.

    EX >> Проверить сложение однозначных значений. то есть значения от 0 до 9.

    1. Значения меньше -9, т. Е. -10, -11,…. (Неверный раздел)

    2. Значения меньше 0, т. Е. -1, -2,…. до -9 (действительный раздел)

    3. Значения от 0 до 9, т. Е. 0,1…. до 9 (Действительный раздел)

    4. Значения больше 9, т. Е. 10,11 (неверный раздел)

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

    Тестирование граничных значений - основано на тестировании на границах между разделами.

    EX >> Рассмотрим ниже комбинацию.

    1. Сложение -9 и -10,

    2. Сложение -10 и -11

    3. Сложение 0 и -1

    4. Сложение 0 и 1

    5. Сложение 9 и 10

    6. Сложение 11 и 10

    person Devmati Wadikar    schedule 10.12.2016