Анализ граничных значений
Эта статья нуждается в дополнительных цитатах для проверки . ( февраль 2024 г. ) |
Анализ граничных значений — это метод тестирования программного обеспечения , в котором тесты предназначены для включения представителей граничных значений в диапазон. Идея исходит от границы . [1] Учитывая, что существует набор тестовых векторов для тестирования системы, на этом наборе можно определить топологию. Те входные данные, которые принадлежат к одному и тому же классу эквивалентности , определенному теорией разделения эквивалентности, будут составлять основу . Учитывая, что базисные наборы являются соседями , между ними будет существовать граница. Тестовые векторы по обе стороны границы называются граничными значениями. На практике это потребует, чтобы тестовые векторы можно было упорядочить и чтобы отдельные параметры следовали некоторому порядку (либо частичному порядку , либо полному порядку ).
Формальное определение
[ редактировать ]Формально граничные значения можно определить следующим образом:
- Пусть набор тестовых векторов равен X 1 ,..., X n .
- Предположим, что над ними определено отношение порядка, как ≤ .
- Пусть C1 , . C2 — два эквивалентных класса
- Предположим, что тестовый вектор X 1 ∈ C 1 и X 2 ∈ C 2 .
- Если или затем занятия находятся в одной окрестности и значения являются граничными значениями.
значения на минимальном и максимальном краях раздела эквивалентности Проще говоря, проверяются . Значения могут быть входными или выходными диапазонами программного компонента, а также внутренней реализацией. Поскольку эти границы являются обычными местами ошибок, приводящих к сбоям в программном обеспечении, они часто используются в тестовых примерах .
Приложение
[ редактировать ]Ожидаемые входные и выходные значения программного компонента следует извлечь из спецификации компонента. Затем значения группируются в наборы с идентифицируемыми границами. Каждый набор или раздел содержит значения, которые, как ожидается, будут обработаны компонентом одинаковым образом. Разделение диапазонов тестовых данных объясняется в методике проектирования тестовых примеров разделения эквивалентности . При разработке тестовых примеров важно учитывать как допустимые, так и недопустимые разделы.
Демонстрацию можно провести с помощью функции, написанной на Java .
class Safe {
static int add(int a, int b)
{
int c = a + b ;
if (a >= 0 && b >= 0 && c < 0)
{
System.err.println("Overflow!");
}
if (a < 0 && b < 0 && c >= 0)
{
System.err.println("Underflow!");
}
return c;
}
}
На основе кода входные векторы [ a,b ] разбиваются . Блоки, которые нам нужно охватить, — это оператор переполнения. и оператор Underflow, и ни один из этих 2. Это приводит к появлению 3 эквивалентных классов из самой проверки кода.
мы отмечаем, что существует фиксированный размер целого числа , следовательно: -
- MIN_VALUE ≤ x + y ≤ MAX_VALUE
Заметим, что входные параметры a и b являются целыми числами, следовательно, полный порядок в них существует . Когда мы вычисляем равенства:
- х + у = МАКС_ЗНАЧ
- МИН_ЗНАЧ = х + у
мы получаем обратно значения, находящиеся на границе включительно, то есть эти пары ( a,b ) являются допустимыми комбинациями, и для них не произойдет ни опустошения, ни переполнения.
С другой стороны:-
- х + у = МАКС_ЗНАЧ + 1
дает пары ( a,b ), которые являются недопустимыми комбинациями, Для них произойдет переполнение. Таким же образом:-
- х + у = МИН_ЗНАЧ - 1
дает пары ( a,b ), которые являются недопустимыми комбинациями, Для них произойдет перелив.
Граничные значения (нарисованные только для случая переполнения) показаны оранжевой линией на правом рисунке.
Другой пример: если входными значениями были месяцы года, выраженные целыми числами, входной параметр «месяц» мог бы иметь следующие разделы:
... -2 -1 0 1 .............. 12 13 14 15 ..... --------------|-------------------|------------------- invalid partition 1 valid partition invalid partition 2
Граница между двумя разделами — это место, где меняется поведение приложения, а не действительное число. Граничное значение — это минимальное (или максимальное) значение, находящееся на границе. Число 0 — максимальное число в первом разделе, число 1 — минимальное значение во втором разделе, оба являются граничными значениями. Тестовые случаи должны создаваться для генерации входных и выходных данных, которые будут находиться по обе стороны от каждой границы, что приводит к появлению двух случаев на каждую границу. Тестовые случаи на каждой стороне границы должны быть с наименьшим приращением, возможным для тестируемого компонента, для целого числа это 1, но если входные данные были десятичными с 2 знаками, тогда это было бы 0,01. В приведенном выше примере есть граничные значения 0,1 и 12,13, и каждое из них необходимо проверить.
Анализ граничных значений не требует недопустимых разделов. Возьмем пример: обогреватель включается, если температура составляет 10 градусов или ниже. Есть два раздела (температура≤10, температура>10) и два граничных значения, которые необходимо проверить (температура=10, температура=11).
Если граничное значение попадает в недопустимый раздел, тестовый пример предназначен для обеспечения того, чтобы программный компонент обрабатывал это значение контролируемым образом. Анализ граничных значений может использоваться на протяжении всего цикла тестирования и одинаково применим на всех этапах тестирования.
Ссылки
[ редактировать ]- ^ Крейг, Рик Дэвид; Яскил, Стефан П. (2002). Систематическое тестирование программного обеспечения . Артех Хаус . стр. 155–156. ISBN 9781580537926 . Проверено 25 февраля 2024 г.