Что такое тестирование домена?
Тестирование предметной области - это процесс тестирования программного обеспечения, в котором приложение тестируется путем предоставления минимального количества входных данных и оценки соответствующих выходных данных. Основная цель тестирования предметной области - проверить, принимает ли программное приложение входные данные в допустимом диапазоне и выдает ли требуемый результат.
Это метод функционального тестирования, при котором выходные данные системы тестируются с минимальным количеством входов, чтобы гарантировать, что система не принимает недопустимые входные значения, выходящие за пределы допустимого диапазона. Это один из самых важных методов тестирования «белого ящика». Он также проверяет, что система не должна принимать входные данные, условия и индексы за пределами указанного или допустимого диапазона.
Тестирование домена отличается для каждого конкретного домена, поэтому для тестирования программной системы вам необходимо обладать знаниями в конкретной области.
В этом руководстве вы узнаете:
- Упрощенная практика тестирования домена
- Стратегия тестирования домена
- Пример тестирования домена
- Структура тестирования домена
Упрощенная практика тестирования домена
При тестировании домена мы делим домен на поддомены (классы эквивалентности), а затем тестируем, используя значения из каждого поддомена. Например, если веб-сайт (домен) был предоставлен для тестирования, мы разделим веб-сайт на небольшие части (поддомены) для удобства тестирования.
Домен может включать тестирование любой одной входной переменной или комбинации входных переменных.
Практики часто изучают простейшие случаи тестирования предметной области менее двух других названий: «граничное тестирование» и «анализ класса эквивалентности».
Граничное тестирование - Граничный анализ (BVA) основан на тестировании на границах между разделами. Мы будем проверять как допустимые, так и недопустимые входные значения в разделе / классах.
Тестирование класса эквивалентности - идея, лежащая в основе этого метода, состоит в том, чтобы разделить (то есть разделить) набор условий теста на группы или множества, которые можно считать одинаковыми (т. Е. Система должна обрабатывать их эквивалентно), следовательно, «разделение эквивалентности».
Эта упрощенная форма применяется для тестирования домена -
- Только к тестам входных переменных
- Только при тестировании на системном уровне
- Только при тестировании по одному
- Только при очень поверхностном тестировании
Его можно упростить, как показано ниже:
Переменная | Действительный класс Класс эквивалентности | Недопустимый класс эквивалентности класса | Границы и особые случаи | Примечания |
---|---|---|---|---|
Икс | 0–100 | 0 | ||
100 | ||||
<0 | -1 | |||
> 100 | 101 |
Объяснение:
- Если поле принимает диапазоны от 0 до 100, поле не должно принимать -1 и 101, поскольку они являются недопустимыми записями и выходят за границы.
- Поле должно принимать такие значения, как 0,100 и любое число между ними.
Создание такой таблицы (на практике)
- Чтобы построить анализ класса эквивалентности с течением времени, поместите информацию в электронную таблицу. Начните с перечисления переменных. Добавляйте информацию о них по мере ее получения.
- В конечном итоге таблица должна содержать все переменные. Это означает все входные переменные, все выходные переменные и любые промежуточные переменные, которые вы можете наблюдать.
- На практике большинство таблиц, которые я видел, неполные. В лучших из них перечислены все переменные и добавлены детали для критических переменных.
Стратегия тестирования домена
При тестировании домена вам необходимо учитывать следующие моменты:
- Какой домен мы тестируем?
- Как сгруппировать значения по классам?
- Какие значения классов тестировать?
- Как определить результат?
Какой домен мы тестируем?
Любой домен, который мы тестируем, имеет некоторую функциональность ввода и функцию вывода. Необходимо будет ввести некоторые входные переменные и проверить соответствующие выходные данные.
Пример тестирования домена
- Рассмотрим сценарий тестирования с одним входом:
C = a + b, где a и b - входные переменные, а C - выходная переменная.
Здесь, в приведенном выше примере, нет необходимости в классификации или комбинации переменных.
- Рассмотрим приведенные ниже несколько входов и соответствующий выходной сценарий:
Рассмотрим детскую игровую выставку, в ней предусмотрено 6 конкурсов, и билеты должны быть выданы в соответствии с указанным возрастом и полом. Билет - это один из модулей, в котором нужно опробовать весь функционал выставки Games.
По сценарию мы получили шесть сценариев в зависимости от возраста и соревнований:
- Возраст> 5 и <10, мальчик должен участвовать в рассказе историй.
- В возрасте от 5 до 10 лет девочка должна участвовать в конкурсе рисунков.
- Возраст> 10 и <15, мальчик должен участвовать в викторине.
- Возраст от 10 до 15 лет, девочка должна участвовать в написании эссе.
- В возрасте до 5 лет в Конкурсе Рифм должны участвовать как мальчики, так и девочки.
- В возрасте старше 15 лет в конкурсе «Поэзия» должны участвовать как мальчики, так и девочки.
Здесь вводятся возраст и пол, и, следовательно, будет выдан билет на соревнование. Это случайное разделение входов или просто группировка значений.
Как сгруппировать значения по классам?
Разделение некоторых значений означает разделение их на неперекрывающиеся подмножества.
Как мы обсуждали ранее, существует два типа разбиения:
- Разделение по эквивалентности. Разделение по эквивалентности - это метод тестирования программного обеспечения , который разделяет входные данные программного модуля на разделы с эквивалентными данными, из которых могут быть получены тестовые примеры. В принципе, тестовые примеры предназначены для охвата каждого раздела хотя бы один раз.
- Анализ граничных значений. Анализ граничных значений - это метод тестирования программного обеспечения , при котором тесты предназначены для включения представителей граничных значений в диапазон. Идея исходит из границы .
В приведенном выше примере мы разделяем значения на подмножество или подмножество. Мы делим возраст на следующие классы:
- Класс 1: Дети от 5 до 10 лет.
- Класс 2: Дети до 5 лет.
- Класс 3: Дети от 10 до 15 лет.
- Класс 4: Дети старше 15 лет.
Какие значения классов тестировать?
Значения, выбранные для тестирования, должны быть граничными значениями:
- Границы являются представителями классов эквивалентности, из которых мы их выбираем. Они с большей вероятностью сообщат об ошибке, чем другие члены класса, поэтому они лучшие представители.
- Лучшим представителем класса эквивалентности является значение между диапазоном.
В приведенном выше примере у нас есть следующие классы для тестирования:
Например, для сценария №1:
- Класс 1: Дети с возрастной группой от 5 до 10 (Возраст> 5 и <= 10)
Граничные значения:
- Значения должны быть равны или меньше 10. Следовательно, возраст 10 должен быть включен в этот класс.
- Значения должны быть больше 5. Следовательно, возраст 5 не должен включаться в этот класс.
- Значения должны быть равны или меньше 10. Следовательно, возраст 11 лет не должен входить в этот класс.
- Значения должны быть больше 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 |
Как определить, прошла ли программа тест или нет?
Передача функциональности зависит не только от результатов описанных выше сценариев. Предоставленные входные данные и ожидаемые выходные данные дадут нам результаты, а это требует знания предметной области.
Определение результатов примера:
Следовательно, если все тестовые случаи из вышеперечисленных пройдены, домен выдачи билетов в конкурсе будет пройден. В противном случае домен потерпит неудачу.
Структура тестирования домена
Обычно тестировщики выполняют следующие шаги при тестировании домена. Их можно настроить / пропустить в соответствии с нашими требованиями к тестированию.
- Определите потенциально интересные переменные.
- Определите переменные, которые вы можете проанализировать сейчас, и отсортируйте их (от наименьшего к наибольшему и наоборот).
- Создайте и определите граничные значения и значения класса эквивалентности, как указано выше.
- Определите второстепенные измерения и проанализируйте каждое классическим способом. (В приведенном выше примере пол является второстепенным).
- Определите и протестируйте переменные, которые содержат результаты (выходные переменные).
- Оцените, как программа использует значение этой переменной.
- Определите дополнительные потенциально связанные переменные для комбинированного тестирования.
- Представьте себе риски, которые не обязательно соответствуют очевидному измерению.
- Определите и составьте список неанализируемых переменных. Соберите информацию для последующего анализа.
- Обобщите свой анализ таблицей риска / эквивалентности.
Резюме:
Тестирование предметной области, как описано выше, требует знания того, как правильно вводить данные для достижения желаемого результата. Таким образом, его можно использовать только для небольших фрагментов кода.