Граничные значения — это те места, в которых один класс эквивалентности переходит в другой.
Граничные значения — это значения на границе допустимого диапазона входных данных, которые могут привести к изменению поведения программы. Это могут быть значения, которые являются минимальными или максимальными для определенного типа данных, значения, близкие к ним, или значения, которые приводят к переполнению буфера или другим ошибкам. Использование граничных значений в тестировании помогает выявлять ошибки, связанные с обработкой граничных условий. Например, если программа обрабатывает числа в диапазоне от 1 до 100, то граничные значения будут 1 и 100. Тестирование с использованием этих значений позволит выявить ошибки, связанные с обработкой крайних значений.
Техника анализа граничных значений входных данных
Это техника проверки поведения продукта на крайних (граничных) значениях входных данных. Граничное тестирование также может включать тесты, проверяющие поведение системы на входных данных, выходящих за допустимый диапазон значений. При этом система должна определённым (заранее оговоренным) способом обрабатывать такие ситуации. Например, с помощью исключительной ситуации или сообщения об ошибке. Это только одна из техник тест-дизайна, помогающая в подготовке тестов.
Граничные значения очень важны и их обязательно следует применять при написании тестов, т.к. именно в этом месте чаще всего и обнаруживаются ошибки.
На каждой границе диапазона следует проверить по три значения:
- граничное значение;
- значение перед границей;
- значение после границы.
Цель этой техники — найти ошибки, связанные с граничными значениями.
Алгоритм использования техники граничных значений:
- выделить классы эквивалентности;
Как и в предыдущей технике, этот шаг является очень важным и от того, насколько правильным будет разбиение на классы эквивалентности, зависит эффективность тестов граничных значений.
- определить граничные значения этих классов;
- нужно понять, к какому классу будет относиться каждая граница;
- нужно провести тесты по проверке значения до границы, на границе и сразу после границы.
Количество тестов для проверки граничных значений будет равен количеству границ, умноженному на 3. Рекомендуется проверять значения вплотную к границе. К примеру, есть диапазон целых чисел, граница находится в числе 100. Таким образом, будем проводить тесты с числом 99 (до границы), 100 (сама граница), 101 (после границы).
Техника анализа граничных значений. Пример использования на существующем проекте:
Проект — Btrack.com
Протестировать поля ввода — Dev-Est/Qa-est
Условие — в поля ввода можно внести только целые числа от 0 до 10 000.
Определяемся с существующими границами — так как в условии все значения от 0 до 10 000 приведут к одному и тому же результату, то границы две: нижняя и верхняя.
Первое граничное значение — 0
Второе граничное значение — 10 000
Добавляем к ним, стоящие рядом значения ( опять же, если бы, числа были дробными, то пришлось бы, для начала, определится с количеством знаков после запятой. Например, если десятые, то значения были бы: -0,1 0 0,1 и 9999,9 10000 10000,1):
- -1, 0, 1
- 9 999, 10 000, 10 001
Второй: допустим, у нас есть поле для ввода возраста пользователя, которое может принимать значения от 0 до 120. Рассмотрим примеры граничных значений:
- Минимальное значение: 0. В этом случае мы проверяем, что при вводе 0 возраст корректно обрабатывается и не возникают ошибки.
- Максимальное значение: 120. Здесь мы проверяем, что при вводе 120 возраст также корректно обрабатывается.
- Значение, меньше минимального: -1. В этом случае мы проверяем, что при попытке ввести значение меньше минимального возникает ошибка.
- Значение, больше максимального: 121. Аналогично предыдущему пункту, мы проверяем, что при попытке ввести значение больше максимального возникает ошибка.
- Значение на границе минимального и недопустимого: 1. Здесь мы проверяем, что при вводе значения на границе допустимого и недопустимого возраст корректно обрабатывается.
- Значение на границе максимального и недопустимого: 119. Аналогично предыдущему пункту, мы проверяем корректность обработки значения на границе допустимого и недопустимого возраста.
Данная Техника анализа граничных значений хорошо и очень хорошо сочетается в работе:
— Техника анализа классов эквивалентности
А также не стоит забывать о:
Техника тестирования граничных значений применима только для текстовых полей? В каких случаях это технику можно применить при тестировании native мобильных приложений? Приведите, пожалуйста, парочку примеров. Благодарю.
Абсолютно применима даже там где это кажется не совсем подходящим. Граничные значения можно использовать не только для текстовых полей, но и для значений дроп даунов, и даже просто логической функциональности. Взять хотя бы версии мобильных приложений, границы разрешений и обьемов памяти.
У вас в примере крайнее значение 100001 — а должно быть 10001
Бывает ) спасибо
В какой ситуации классы эквивалентности и граничные значения могут существовать по отдельности?
а как можно эту технику оформить в тест кейсе?
допустим мне нужно написать что в поле «имя» можно ввести от 1 до 52 символов.
Если мы говорим именно о кол-ве символов — то так же как и в числовом поле — разницы нет.
Расскажете, на кой смысл указано «9 999», учитывая, что 10 000 входит в интервал и не является ГРАНИЦЕЙ?
Излишний тест если мы говорим о минимальном наборе. В таком случае позитивный по верхней будет только один. Но есть нюансы
Почему тогда не проверяется 1 002?
А то хитрые блин) 9 999 проверяете, а 1 002 не хотите.
Если не сможете объяснить, зачем проверять 1 002, то тогда и 9 999, будьте так добры, уберите из текста.
А то люди ведь это читают. За правду принимают)
Не уверен что ответ будет актуален надеюсь вы нашли ответ на просторах интернета! Если нет, то вот маленький пример.
Есть поля для ввода, принимает также от 0 до 10 000.
UserNum — это значение, которое ввел пользователь.
&& это оператор «И»
Программист написал проверку условия на фронет в JavaScript.
(UserNum > 0 && UserNum 0 && UserNum< 10000 || typeof(UserNum) === 'number')
теперь любое число введённое пользователем будет пропущено, но вы можете не знать об этом, нет доступа к коду или другие причины. И тут пограничные значения -1, и 10 001 покажут что система пропускает за пределы допустимых значений.
Спасибо за статью