Get your 6-month No-Cost Opt-Out offer for Unlimited Software Automation?

Анализ граничных значений – обычно сокращенно BVA – является распространенным методом тестирования “черного ящика “. Этот подход проверяет наличие дефектов в программном обеспечении, проверяя входные значения на границах допустимых диапазонов.

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

 

Содержание

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

Статическое тестирование в тестировании программного обеспечения - что это такое, типы, процесс, подходы, инструменты и многое другое!

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

BVA – это метод тестирования программного обеспечения, который проверяет, как программное обеспечение будет реагировать на входные данные на границах входных данных или около них. По сути, каждый вход имеет допустимые диапазоны. Например, у вас может быть поле для ввода пароля, которое принимает пароли от 8 до 12 символов. Граничное тестирование проверяет пароли с длиной символов 7, 8, 12 и 13.

Мысль заключается в том, что на границах пределов, т.е. 7, 8, 12 и 13, вероятность ошибки выше, чем на числах внутри границ, таких как 9, 10 и 11. Хотя в примере с полем, принимающим от 8 до 12 символов, преимущества могут показаться незначительными, они становятся более очевидными, когда вам нужно написать тестовые примеры для полей, принимающих от 1 до 20 символов или числа от 1 до 1000 и т. д.

Поэтому, чтобы сэкономить время и сократить количество тестовых случаев в рамках функционального тестирования, анализ граничных значений рассматривает ценности:

  • При минимальном значении
  • Непосредственно ниже минимального значения
  • При максимальном значении
  • Непосредственно над максимальным значением

 

Преимущества анализа граничных значений при тестировании

QA-тестирование - что это такое, типы, процессы, подходы, инструменты и многое другое!

Граничное тестирование имеет ряд неоспоримых преимуществ для команд QA.

#1. Повышение качества программного обеспечения

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

#2. Увеличение охвата тестами

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

#3. Раннее обнаружение дефектов

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

#4. Эффективность

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

 

Недостатки анализа граничных значений при тестировании

Различные методологии разработки программного обеспечения и контроля качества

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

#1. Узкая сфера применения

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

#2. Слишком упрощенно

Граничный анализ – это упрощение. Хотя это и позволяет сократить количество тестовых случаев, такой подход менее подходит для очень сложных доменов с множеством границ, взаимодействий или зависимостей. Действительно, он может не справиться со сложными сценариями, поэтому для адекватного покрытия вам придется искать другие методы.

#3. Допущения

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

#4. Опора на точные спецификации и требования

Эффективность BVA зависит от качества и точности спецификаций и документации по требованиям. Любые непроверенные ошибки в этих документах могут просочиться в тестирование граничных значений и привести к тому, что специфические ошибки останутся непроверенными и необнаруженными до критических поздних стадий разработки.

#5. Опора на классы эквивалентности

Выполнение тщательного BVA требует глубокого знания классов эквивалентности. Точная установка этих классов требует опыта и некоторой справочной информации о приложении.

 

Проблемы анализа граничных значений

в тестировании программного обеспечения

challenges-load-testing

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

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

 

#1. Очерчивание границ

Определение границ в простых системах не представляет особых трудностей для компетентных тестировщиков. Однако бывают и более сложные ситуации, например:

  • Сложные входные области с разнообразными входными переменными или сложными взаимосвязями
  • Недокументированные границы, которые не были четко обозначены в документах спецификации
  • Динамические границы, которые меняются в зависимости от действий пользователя или других условий

 

#2. Неоднозначные требования

Плохо написанные или нечеткие документы с требованиями могут препятствовать определению граничных значений. Ясность, полнота и стремление к составлению исчерпывающих спецификаций требуют времени, но в конечном итоге они окупаются.

 

#3. Экспертиза

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

 

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

#4. Ошибки

Граничный анализ позволяет сократить количество тестовых примеров, необходимых для проверки достоверных и недостоверных входных данных. Однако дефекты, которые находятся за пределами диапазона тестирования, могут остаться незамеченными. Более того, ошибки “off-by-one” – это распространенные ошибки кодирования, которые могут возникать на границах или вблизи них. Тестировщики должны знать о таких сценариях и предусмотреть их.

 

#5. Взрыв тестового случая

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

 

#6. Ограничения инструментов анализа

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

 

Различные типы граничных значений

тестирование при тестировании программного обеспечения

контрольный список процессов тестирования программного обеспечения

В книге ” Тестирование программного обеспечения: A Craftsman’s Approach” авторы Пол К. Йоргенсен и Байрон ДеВрис описывают четыре различных типа тестирования граничных значений, к которым относятся:

 

1. Тестирование нормального граничного значения (NBVT)

  • Проверяет допустимые входные значения на краях входной области
  • Исследует минимальные и максимальные значения наряду с входами, расположенными выше и ниже границы
  • Это классический тип анализа граничных значений

 

2. Робастное тестирование граничных значений (RBVT)

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

 

3. Тестирование граничных значений в худшем случае (WBVT)

  • Проверяет поведение программного обеспечения, используя экстремальные допустимые и недопустимые значения
  • Исследует значения на границе входных областей и значения за этими границами
  • Стремится понять поведение программного обеспечения в более экстремальных условиях

 

4. Надежное тестирование граничных значений в худшем случае (RWBVT)

  • Используется сочетание RBVT и WBVT для наиболее тщательного тестирования граничных значений
  • Проверяет действительные и недействительные входные значения как на типичных, так и на экстремальных границах
  • Предоставляет наилучшие возможности для поиска дефектов, связанных с границами

 

Эти подходы различаются по полноте охвата, при этом RWBVT является самым тщательным. Однако тестировщики должны признать, что для открытия этого дополнительного уровня обнаружения дефектов требуются дополнительные затраты времени и сил.

 

Эквивалентное разбиение и граничное значение

анализ: сходства и различия

прояснение некоторых непонятных моментов в автоматизации тестирования программного обеспечения

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

 

1. Сходства

Эквивалентное разбиение и анализ граничных значений – отличная пара. Вот некоторые общие черты обеих техник.

  • Оба они относятся к методам тестирования “черного ящика”, то есть фокусируются на входных и выходных данных, которые можно протестировать без предварительного знания исходного кода приложения.
  • Они оба являются частью тщательного подхода к тестированию входных данных.
  • Они оба помогают тестировщикам найти баланс между полным покрытием тестами без написания чрезмерного количества тестовых случаев.

 

2. Различия

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

Эквивалентное разбиение

  • Разделяет входные данные на классы эквивалентности, которые должны приводить к схожим результатам работы системы
  • Используется одно репрезентативное значение из каждого класса, и система тестируется с этим значением
  • Она занимается определением допустимых и недопустимых классов эквивалентности

 

Анализ граничных значений

  • Проверяет значения на границах или краях классов эквивалентности
  • Проверьте несколько значений, включая минимальное, максимальное и значения по обе стороны от границы
  • Ищет ошибки, которые находятся на границе границ

 

Примеры эквивалентного разбиения и анализа граничных значений

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

Пример эквивалентного разбиения:

Допустим, у вас есть поле ввода для регистрации автомобилей. Как правило, американские регистрационные знаки содержат от 6 до 7 символов. Для простоты мы не будем рассматривать специальные номерные знаки.

Действительные данные = пластины 6 или 7 символов

Недопустимые данные = таблички с символами >6 или >7.

 

Пример анализа граничных значений:

Используя тот же пример с номерным знаком, что и выше, анализ границ позволит проверить

Действительные данные = Таблички с 6 или 7 символами

Неверные данные = Таблички с 5 или 8 символами, а в некоторых случаях – с 4 и 9 символами

 

Пример анализа граничных значений

Преимущества альфа-тестирования и rpa

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

 

Пример тестирования граничных значений №1

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

У нас есть поле, в котором пользователь может ввести свой возраст.

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

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

  • Минимальный возраст = 18 лет
  • Максимальный возраст = 120 лет

 

Пример граничных тестовых случаев:

Всего существует шесть тестовых примеров:

  • 17, 18 и 19, которые ниже минимального, минимального и выше минимального, соответственно
  • 119, 18 и 19, которые ниже максимального, максимального и выше максимального, соответственно

 

Пример тестирования граничных значений #2.

В следующем примере пограничного тестирования мы рассмотрим сайт с минимальной скидкой в 20% на заказы от 100 долларов.

В данном примере при покупке на сумму более 600 долларов предоставляется скидка 25 %. Тест на граничную стоимость будет работать с вложениями от $100 до $600.

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

Минимальная квалификационная скидка = $100

Максимальная квалификационная скидка = $600

 

Пример граничных тестовых случаев:

И снова мы генерируем в общей сложности шесть тестовых примеров, а именно:

  • $99,99, $100 и $100,01, что ниже минимального, минимального и выше минимального, соответственно
  • $599,99, $600 и $600,01, что ниже максимального, максимального и выше максимального, соответственно.

 

Является ли тестирование границ в тестировании программного обеспечения точным?

альфа-тестирование против бета-тестирования

В исследовательской статье ” Тестирование черного ящика с помощью методов разделения эквивалентности и анализа граничных значений” авторы рассматривают использование разделения эквивалентности и анализа граничных значений для тестирования академической информационной системы для университета Матарам в Индонезии.

Авторы использовали для тестирования популярный инструмент Selenium с открытым исходным кодом и выполнили в общей сложности 322 тестовых случая. Тестирование на эквивалентность и анализ граничных значений выявили около 80 неудачных случаев, что привело к соотношению валидных и невалидных тестовых оценок примерно 75:25. В целом, использование комбинации разбиения на эквивалентности и BVA при тестировании программного обеспечения привело к тщательному и полезному тестированию программного обеспечения.

 

Лучшие инструменты для тестирования граничных значений

ZAPTEST RPA + набор средств автоматизации тестирования

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

#3. TestCaseLab

TestCaseLab – это облачный инструмент управления тестированием, который может помочь в тестировании BVA. Программное обеспечение позволяет командам создавать и управлять тестовыми случаями с помощью интуитивно понятного и привлекательного пользовательского интерфейса. TestCaseLab – гибкий и многофункциональный инструмент, но у него есть свои ограничения, в том числе ограниченные возможности по созданию отчетов и настройке.

 

#2. Micro Focus UFT One

Micro Focus UFT One – это инструмент для тестирования программного обеспечения, ориентированный на функциональное и регрессионное тестирование. Он поддерживает различные платформы, устройства, тестирование API и предлагает широкие возможности интеграции. Он предлагает создание тестов без кода и с использованием ключевых слов и может помочь командам с легкостью создавать тестовые случаи анализа граничных значений. Есть некоторые ограничения, которые необходимо учитывать, например, крутая кривая обучения и недостаточная мощность по сравнению с такими инструментами, как ZAPTEST.

 

#1. ZAPTEST

Agile DevOps Test Automation: Объяснение подхода к автоматизации на основе макетов ZAPTEST

ZAPTEST – это комплексный инструмент для автоматизации тестирования программного обеспечения с расширенными возможностями RPA. Он создан для того, чтобы предоставить тестировщикам удобный и надежный набор средств автоматизации тестирования, которые помогут проверить программное обеспечение различными способами, в том числе с помощью BVA при тестировании ПО.

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

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

 

Советы по тестированию граничных значений

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

 

Заключительные мысли

Анализ граничных значений – полезный подход к функциональному тестированию. Если у вас есть входной домен, необходимо проверить, что он принимает корректные данные и отправляет сообщения об ошибках при получении некорректных данных. Тестирование с помощью граничного анализа позволяет эффективно проверять функциональность, создавая только тестовые случаи, необходимые для комплексного тестирования.

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

Download post as PDF

Alex Zap Chernyak

Alex Zap Chernyak

Founder and CEO of ZAPTEST, with 20 years of experience in Software Automation for Testing + RPA processes, and application development. Read Alex Zap Chernyak's full executive profile on Forbes.

Get PDF-file of this post