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

⚡ Розумний підсумок

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

  • 🔘 Основна ідея: Розділіть кожну вхідну область на класи еквівалентності та перевірте одне репрезентативне значення для кожного класу, а не всі можливі вхідні дані.
  • ☑️ Прикордонний фокус: Значення на межі класу та одразу за його межами виявляють дефекти, що відрізняються на одиницю, набагато частіше, ніж значення середнього діапазону.
  • Парні техніки: Аналіз класів еквівалентності визначає групуping; аналіз граничних значень визначає, який член кожної групи запускати.
  • 🧪 Приклад роботи: Модуль квитків, який розподіляє змагання за віком та статтю, зменшує чотири вікові категорії до короткого набору тестів високої цінності.
  • 📈 Залежність від знань: Оцінка правильності виводу потребує бізнес-правил, тому цей метод підходить для невеликих, добре зрозумілих фрагментів логіки.

Тестування предметної області в тестуванні програмного забезпечення з класами еквівалентності та граничними значеннями

Що таке тестування домену?

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

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

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

Простіша практика тестування домену

Під час тестування домену ми ділимо домен на субдомени (класи еквівалентності), а потім тестуємо, використовуючи значення з кожного субдомену. Наприклад, якщо веб-сайт (домен) було надано для тестування, ми розділимо веб-сайт на невеликі частини (субдомен) для зручності тестування.

Домен може включати тестування будь-якої однієї вхідної змінної або комбінації вхідних змінних.

Практики часто вивчають найпростіші випадки тестування предметної області під двома іншими назвами: «граничне тестування» та «аналіз класів еквівалентності».

Граничне тестування - Аналіз межових значень (BVA) базується на тестуванні на межах між розділами. Ми будемо тестувати як дійсні, так і недійсні вхідні значення в розділі/класах.

Перевірка класу еквівалентності – Ідея цієї техніки полягає в тому, щоб розділити (тобто розділити) набір умов тестування на групи або набори, які можна вважати однаковими (тобто система повинна обробляти їх еквівалентно), отже, «розбиття еквівалентності».

Ця спрощена форма застосовується для тестування домену –

  • Тільки для тестів вхідних змінних
  • Тільки під час тестування на системний рівень
  • Тільки при тестуванні по одному
  • Тільки при дуже поверхневому тестуванні

Це можна спростити так:

Змінна Дійсний клас еквівалентності класу Недійсний клас еквівалентності класу Межі та особливі випадки примітки
X 0-100 0
100
<0 -1
> 100 101

Пояснення:

  • Якщо поле приймає діапазони від 0 до 100, воно не повинно приймати значення -1 та 101, оскільки вони є недійсними записами та виходять за межі.
  • Поле повинно приймати значення, такі як 0, 100 та будь-яке число між ними.

Створення таких таблиць (на практиці)

  • Щоб з часом побудувати аналіз класів еквівалентності, занесіть інформацію в електронну таблицю. Почніть зі складання списку змінних. Додавайте інформацію про них у міру її отримання.
  • Зрештою, таблиця має містити всі змінні. Це означає всі вхідні змінні, всі вихідні змінні та будь-які проміжні змінні, які ви можете спостерігати.
  • На практиці більшість таких таблиць є неповними. У найкращих з них перераховані всі змінні та додано деталі щодо критично важливих.

Стратегія тестування домену

Під час тестування домену потрібно враховувати наступне:

  • Який домен ми тестуємо?
  • Як згрупувати значення в класи?
  • Які значення класів перевіряються?
  • Як визначити результат?

Який домен ми тестуємо?

Будь-яка область, яку ми тестуємо, має певну вхідну функціональність та вихідну функціональність. Будуть введені деякі вхідні змінні, а відповідний вихідний результат має бути перевірений. Діаграма нижче показує цей зв'язок між вхідними даними та виходом.

Стратегія тестування домену, яка показує вхідні змінні, що надходять у домен, та створюють вихідні дані

Приклад тестування домену

Розглянемо сценарій тестування одного входу:

C = a+b, де a і b — вхідні змінні, а C — вихідна змінна.

У наведеному вище прикладі немає потреби в класифікації, а також не потрібна будь-яка комбінація змінних.

Розглянемо наведений нижче сценарій кількох входів і відповідного виходу:

Розглянемо виставку ігор для дітей. Розглянуто шість конкурсів, а квитки потрібно видавати відповідно до віку та статі учасників. Квиткова система – один із модулів, який потрібно перевірити для повної функціональності виставки ігор.

За сценарієм ми отримали шість сценаріїв за віком та конкурсами:

  • Хлопчику віком >5 та <=10 років слід брати участь у розповіді історій.
  • Дівчинка віком від 5 до 10 років повинна взяти участь у конкурсі малюнків.
  • Хлопчики віком >10 та <=15 років повинні взяти участь у вікторині.
  • Дівчата віком >10 та <=15 років повинні брати участь у написанні есе.
  • Вік <=5, у конкурсі римованих дітей повинні брати участь як хлопчики, так і дівчатка.
  • Вік старше 15 років, як хлопці, так і дівчата повинні брати участь у поетичному конкурсі.

Тут вхідними даними будуть Вік та Стать, і, отже, буде видано квиток на змагання. У цьому випадку відбувається розподіл вхідних даних або просто групування.ping цінностей, з'являється на картині.

Як згрупувати значення в класи?

Розділення деяких значень означає їх поділ на неперекриваючіping підмножини

Як ми обговорювали раніше, існує два типи розділення:

  • Розбиття еквівалентності – Еквівалентне розбиття – це метод тестування програмного забезпечення, який розділяє вхідні дані програмного блоку на розділи еквівалентних даних, з яких тестові справи можна вивести. В принципі, тестові випадки розроблені таким чином, щоб охоплювати кожен розділ принаймні один раз.
  • Аналіз межових значень – Аналіз граничних значень – це метод тестування програмного забезпечення, в якому тести розроблені таким чином, щоб включати представників граничних значень у певному діапазоні. Ідея походить від межі.

У наведеному вище прикладі ми розділяємо значення на підмножини. Ми розділяємо вік на наведені нижче класи:

  • 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

Як визначити, чи пройшла програма тест?

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

Визначення результатів прикладу: на екрані нижче показано результати оформлення квитків для кожної комбінації віку та статі.

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

Отже, якщо всі вищезазначені тестові випадки пройдено, домен видачі квитків у конкурсі вважається пройденим. Якщо ні, домен вважається не пройденим.

Структура тестування домену

Зазвичай тестувальники виконують наведені нижче кроки під час тестування домену. Їх можна налаштувати або пропустити відповідно до наших потреб у тестуванні.

  • Визначте потенційно цікаві змінні.
  • Визначте змінну (змінні), яку ви можете проаналізувати зараз, і впорядкуйте їх (від найменшого до найбільшого і навпаки).
  • Створіть і визначте граничні значення та значення класу еквівалентності, як зазначено вище.
  • Визначте вторинні виміри та проаналізуйте кожен з них класичним способом. (У наведеному вище прикладі гендер є вторинним виміром.)
  • Визначте та перевірте змінні, які зберігають результати (вихідні змінні).
  • Оцініть, як програма використовує значення цієї змінної.
  • Визначте додаткові потенційно пов'язані змінні для комбінованого тестування, де тестування таблиці рішень допомагає.
  • Уявіть собі ризики, які не обов'язково мають очевидний вимір.
  • Визначте та перерахуйте непроаналізовані змінні. Збирайте інформацію для подальшого аналізу.
  • Узагальніть свій аналіз за допомогою таблиці ризику/еквівалентності.

Поширені запитання

Обидві позначки зустрічаються на практиці. Класи, похідні від специфікації, роблять її Чорна скринька техніка; класи, похідні від коду, роблять його білою скринькою. Сам аналіз ідентичний.

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

Розбиття еквівалентності – це один крок у тестуванні домену, який також упорядковує змінні, додає аналіз меж, обробляє вторинні виміри та вихідні змінні, і завершується таблицею ризиків.

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

Помічники ШІ читають вимогу та пропонують кандидати на класи еквівалентності, значення ребер та пропущені недійсні випадки. Тестер все одно підтверджує справжні межі, оскільки неправильно виведений діапазон дає впевнений, але марний тестовий набір.

Копілот GitHub пише параметризовані методи тестування, як тільки класи та ребра з'являються в командному рядку або коді. Невказані бізнес-ліміти має надати тестер.

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

Тестування лише дійсних класів та пропускping негативне тестування, використовуючи інклюзивну межу, де правило є виключним, та повністю ігноруючи вихідні змінні.

Підсумуйте цей пост за допомогою: