Что такое тестирование предметной области в тестировании программного обеспечения? (с примером)

Что такое тестирование домена?

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

Кокаин проходит Функциональное тестирование метод, при котором выходные данные системы тестируются с минимальным количеством входных данных, чтобы гарантировать, что система не принимает недопустимые и выходящие за пределы диапазона входные значения. Это один из самых важных Белый Box Тестирование методы. Он также проверяет, что система не должна принимать входные данные, условия и индексы за пределами указанного или допустимого диапазона.

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

Упрощенная практика тестирования предметной области

При тестировании предметной области мы делим домен на поддомены (классы эквивалентности), а затем тестируем, используя значения из каждого поддомена. Например, если на тестирование передан сайт (домен), для удобства тестирования мы разделим сайт на небольшие части (поддомен).

Домен может включать тестирование любой входной переменной или комбинации входных переменных.

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

Граничное тестирование – Анализ граничных значений (BVA) основан на тестировании на границах между разделами. Мы будем проверять как действительные, так и недопустимые входные значения в разделе/классах.

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

Эта упрощенная форма применяется для тестирования домена.

  1. Только для проверки входных переменных
  2. Только при тестировании на уровне системы
  3. Только при проверке по одному
  4. Только при очень поверхностном тестировании

Это можно упростить, как показано ниже:

Технология Действительный класс Класс эквивалентности Неверный класс эквивалентности класса Границы и особые случаи Заметки
X 0-100 0
100
<0 -1
> 100 101

Объяснение:

  1. Если поле принимает диапазоны от 0 до 100, оно не должно принимать значения -1 и 101, поскольку они являются недопустимыми записями и выходят за пределы.
  2. Поле должно принимать такие значения, как 0,100 и любое число между ними.

Построение такой таблицы (на практике)

  1. Чтобы построить анализ классов эквивалентности с течением времени, поместите информацию в электронную таблицу. Начните с перечисления переменных. Добавляйте информацию о них по мере ее получения.
  2. В конечном итоге таблица должна содержать все переменные. Это означает все входные переменные, все выходные переменные и любые промежуточные переменные, которые вы можете наблюдать.
  3. На практике большинство таблиц, которые я видел, являются неполными. В лучших из них перечислены все переменные и добавлена ​​подробная информация о критических переменных.

Стратегия тестирования домена

При тестировании домена вам необходимо учитывать следующие вещи:

  1. Какой домен мы тестируем?
  2. Как сгруппировать значения по классам?
  3. Какие значения классов подлежат проверке?
  4. Как определить результат?

Какой домен мы тестируем?

Любой домен, который мы тестируем, имеет некоторые входные и выходные функции. Необходимо будет ввести некоторые входные переменные, и необходимо проверить соответствующие выходные данные.

Стратегия тестирования домена

Пример тестирования домена

  1. Рассмотрим сценарий тестирования с одним входом:

C = a+b, где a и b — входные переменные, а C — выходная переменная.

Здесь, в приведенном выше примере, нет необходимости в классификации или комбинации переменных.

  1. Рассмотрим приведенные ниже несколько входных данных и соответствующий выходной сценарий:

Рассмотрим выставку игр для детей, запланировано 6 конкурсов, билеты нужно раздавать по возрасту и полу. Продажа билетов — один из модулей, в котором будет протестирована вся функциональность выставки Игр.

По сценарию у нас получилось шесть сценариев в зависимости от возраста и соревнований:

  1. Возраст старше 5 и <10 лет. Мальчик должен участвовать в рассказывании историй.
  2. Возраст >5 и <10 лет, девочка должна участвовать в конкурсе рисунков.
  3. Возраст >10 и <15 лет. Мальчик должен принять участие в викторине.
  4. Возраст >10 и <15 лет, в написании эссе должна участвовать девочка.
  5. Возраст <5 лет, в конкурсе рифм должны участвовать как мальчики, так и девочки.
  6. Возраст > 15 лет, в конкурсе поэзии должны участвовать как мальчики, так и девочки.

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

Как сгруппировать значения по классам?

Разделение некоторых значений означает разделение их на непересекающиеся подмножества.

Как мы уже говорили ранее, существует два типа секционирования:

  1. Эквивалентное разбиение – Разделение эквивалентности – это тестирование программного обеспечения метод, который делит входные данные программного модуля на части эквивалентных данных, из которых могут быть получены тестовые примеры. В принципе, тестовые примеры предназначены для охвата каждого раздела хотя бы один раз.
  2. Анализ граничных значений – Анализ граничных значений – это тестирование программного обеспечения метод, при котором тесты предназначены для включения представителей граничных значений в диапазон. Идея исходит от граница.

В приведенном выше примере мы разделяем значения на подмножество или подмножество. Мы разделили возраст на следующие классы:

  1. Класс 1: Дети возрастной группы от 5 до 10 лет
  2. Класс 2: Дети возрастной группы до 5 лет
  3. Класс 3: Дети возрастной группы от 10 до 15 лет.
  4. Класс 4: Дети возрастной группы старше 15 лет.

Какие значения классов подлежат проверке?

Значения, выбранные для тестирования, должны быть граничными значениями:

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

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

Например, для сценария №1:

  1. Класс 1: Дети возрастной группы от 5 до 10 лет (возраст >5 и <= 10)

Граничные значения:

  1. Значения должны быть равны или меньше 10. Следовательно, возраст 10 лет должен быть включен в этот класс.
  2. Значения должны быть больше 5. Следовательно, возраст 5 лет не следует включать в этот класс.
  3. Значения должны быть равны или меньше 10. Следовательно, возраст 11 лет не следует включать в этот класс.
  4. Значения должны быть больше 5. Следовательно, в этот класс следует включить возраст 6 лет.

Значения раздела эквивалентности:

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

(Возраст >5 и <=10)

Поскольку значения от 6 до 10 являются допустимыми, необходимо выбрать одно из значений 6,7,8,9 и 10. Следовательно, выбранный возраст «8» является допустимым входным возрастом для возрастной группы от (возраст > 5 до <= 10). Этот тип раздела называется разделом эквивалентности.

Сценарий Граничные значения, которые необходимо принять Значения разделения эквивалентности
Мальчик – возраст > 5 и <= 10 Введите возраст = 6
Введите возраст = 5
Введите возраст = 11
Введите возраст = 10
Введите возраст = 8
Девочка – возраст > 5 и <= 10 Введите возраст = 6
Введите возраст = 5
Введите возраст = 11
Введите возраст = 10
Введите возраст = 8
Мальчик – возраст > 10 и <= 15 Введите возраст = 11
Введите возраст = 10
Введите возраст = 15
Введите возраст = 16
Введите возраст = 13
Девочка – возраст > 10 и <= 15 Введите возраст = 11
Введите возраст = 10
Введите возраст = 15
Введите возраст = 16
Введите возраст = 13
Возраст<=5 Введите возраст = 4
Введите возраст = 5
Введите возраст = 3
Возраст> 15 Введите возраст = 15
Введите возраст = 16
Введите возраст = 25

Как определить, прошла ли программа тест или не прошла его?

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

Определение результатов примера:

Определение результатов

Следовательно, если все вышеперечисленные тестовые случаи пройдены, область выдачи билетов в конкурсе считается пройденной. В противном случае домен выйдет из строя.

Структура тестирования предметной области

Обычно тестировщики выполняют следующие шаги при тестировании предметной области. Их можно настроить/пропустить в соответствии с нашими потребностями в тестировании.

  • Определите потенциально интересные переменные.
  • Определите переменные, которые вы можете проанализировать сейчас, и упорядочите их (от наименьшей к наибольшей и наоборот).
  • Создайте и определите граничные значения и значения класса эквивалентности, как указано выше.
  • Определите второстепенные измерения и проанализируйте каждое классическим способом. (В приведенном выше примере пол является второстепенным параметром).
  • Определите и протестируйте переменные, содержащие результаты (выходные переменные).
  • Оцените, как программа использует значение этой переменной.
  • Определите дополнительные потенциально связанные переменные для комбинированного тестирования.
  • Представьте себе риски, которые не обязательно соответствуют очевидному измерению.
  • Определите и перечислите неанализируемые переменные. Соберите информацию для последующего анализа.
  • Обобщите свой анализ с помощью таблицы рисков/эквивалентности.

Резюме

Тестирование предметной области, как описано выше, требует знаний о том, как предоставить правильные входные данные для достижения желаемого результата. Таким образом, его можно использовать только для небольших фрагментов кода.