fbpx

Аналіз граничних значень – зазвичай скорочено BVA – це звичайна методика тестування “чорної скриньки “. Підхід тестує програмні дефекти, перевіряючи вхідні значення на межі допустимих діапазонів.

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

 

Table of Contents

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

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

Аналіз граничних значень – це тип функціонального тестування. Цей тип тестування спрямований на перевірку відповідності кожної функції програмного забезпечення вимогам і специфікаціям. У випадку граничного тестування ця функціональність включає в себе те, як програмне забезпечення працює з різними вхідними даними.

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. Покладання на класи еквівалентності

Проведення ретельної БВВ вимагає глибоких практичних знань класів еквівалентності. Точне встановлення цих класів вимагає досвіду та певної базової інформації про програму.

 

Проблеми аналізу граничних значень

у тестуванні програмного забезпечення

challenges-load-testing

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

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

 

#1. Окреслення меж

Визначення меж у простих системах не становить особливих труднощів для компетентних тестувальників. Однак бувають і більш складні ситуації, такі як:

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

 

#2. Неоднозначні вимоги

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

 

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

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

 

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

#4. Помилки

Граничний аналіз має на меті скоротити кількість тестових випадків, необхідних для перевірки достовірних і недостовірних вхідних даних. Однак дефекти, які знаходяться за межами діапазону тестування, можуть легко залишитися непоміченими. Крім того, помилки “off-by-one” є поширеними помилками кодування, які можуть виникати на границях або поблизу них. Тестувальники повинні усвідомлювати ці сценарії і передбачати їх для тестування.

 

#5. Вибух тестового кейсу

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

 

#6. Обмеження інструменту аналізу

Інструменти автоматизації тестування програмного забезпечення можуть допомогти командам виконати адекватний аналіз граничних значень. Однак навіть у найкращих випадках ці інструменти вимагають певного ручного втручання як для тестування, так і для створення тестів. Ця ситуація може погіршитися для складних збірок з декількома змінними взаємодіями.

 

Різні типи граничних значень

тестування в тестуванні програмного забезпечення

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

У книзі ” Тестування програмного забезпечення: Ремісничий підхід” автори Пол Йоргенсен (Paul C. Jorgensen) та Байрон ДеВріс (Byron DeVries) описують чотири різні типи тестування граничних значень, а саме:

 

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: Пояснення підходу до автоматизації на основі макетів 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

Virtual Expert

ZAPTEST

ZAPTEST Logo