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

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

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

  • 🔄 Основна ідея: Цей метод перевіряє поведінку системи, коли один і той самий вхідний сигнал породжує різні вихідні сигнали на основі попередніх подій (система зі скінченними станами).
  • 🧩 Чотири будівельні блоки: Кожна модель побудована зі станів, переходів, подій та дій.
  • 🗺️ Діаграма проти таблиці: Діаграми показують допустимі переходи; таблиці виявляють недійсні переходи.
  • 🏧 Практичні приклади: Блокування банкомата PIN-кодом та вхід для бронювання авіаквитків демонструють реальне покриття.
  • 🤖 Впровадження штучного інтелекту: Інструменти штучного інтелекту автоматично генерують моделі станів на основі вимог та позначають відсутні або недійсні переходи.

Тестування переходу штатів — Штати

Що таке тестування переходу між станами?

Тестування переходу стану – це метод тестування методом чорної скриньки, в якому зміни вхідних умов викликають зміни стану або вихідні зміни в тестованому застосунку (AUT). Він допомагає аналізувати поведінку застосунку за різних вхідних умов, а тестувальники можуть надавати позитивні та негативні вхідні значення під час запису поведінки системи.

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

Коли використовувати тестування переходу станів

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

Коли не варто покладатися на тестування переходу штату

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

Чотири частини діаграми переходів станів

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

1) Держави до яких може дійти програмне забезпечення.

Тестування переходу штатів — Штати

2) Перехід з однієї держави до іншої.

Тестування переходу штату — Перехід

3) Події що запускають перехід, наприклад, закриття файлу або зняття грошей.

Тестування переходу штатів — події

4) Дії які є результатом переходу, наприклад, повідомлення про помилку або отримання готівки.

Тестування переходу станів — Дії

Діаграма переходу станів проти таблиці переходу станів

Існує два основних способи представлення або проектування переходів станів: діаграма переходів станів та таблиця переходів станів.

Аспект Діаграма переходу станів Таблиця переходів станів
Також називається Діаграма / графік стану Державна таблиця
Подання Boxes для станів, стрілки для переходів Сітка станів (рядки) та подій (стовпці)
Найкраще підходить для ідентифікації Дійсні переходи Недійсні переходи
Кожна клітинка показує - Стан, досягнутий після події

Як здійснити перехід між станами (приклади)

Приклад 1: Блокування банкомата PIN-кодом

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

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

Діаграма переходу станів (приклад 1)

Діаграма переходу станів PIN-коду банкомата

На діаграмі, щоразу, коли користувач вводить правильний PIN-код, він переходить до стану «Доступ надано». Якщо вони вводять неправильний пароль, вони переходять до наступної спроби, а якщо вони роблять те саме втретє, досягається стан «Обліковий запис заблоковано».

Таблиця переходів станів (приклад 1)

стан Правильний PIN-код Неправильний PIN-код
S1) Початок S5 S2
S2) 1-ша спроба S5 S3
S3) 2-га спроба S5 S4
S4) 3-тя спроба S5 S6
S5) Доступ надано - -
S6) Обліковий запис заблоковано - -

У таблиці, коли користувач вводить правильний PIN-код, стан переходить у S5 (Доступ надано). Якщо користувач вводить неправильний пароль, він переходить до наступного стану, і після третьої невдалої спроби він досягає стану «Обліковий запис заблоковано».

Приклад 2: Вхід для бронювання авіаквитків

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

Графік переходів станів бронювання авіаквитків

Граф переходу стану

Додаток дозволяє три спроби; якщо користувач введе неправильний пароль з четвертої спроби, система автоматично закриє додаток.

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

Таблиця переходу штатів бронювання авіаквитків

У таблиці станів усі дійсні стани перелічені ліворуч, а події, що їх викликають, – угорі. Кожна клітинка показує стан, у який переходить система, коли відбувається подія. Наприклад, у стані S1 правильний пароль переводить вас до S6 (доступ надано); неправильний пароль з першої спроби переводить вас до S3 (2-га спроба). Аналогічно, ви можете визначити всі інші стани.

За допомогою цього методу виділяються два недійсні стани. Припустимо, що ви перебуваєте у стані S6 (вже увійшли в систему), відкриваєте інший екземпляр бронювання авіаквитків і вводите паролі для того самого агента. Реакцію системи на такий сценарій потрібно перевірити.

Переваги та недоліки техніки переходу між станами

Переваги Недоліки
Надає графічне або табличне представлення поведінки системи, helping тестер охоплює та ефективно розуміє систему. На нього не можна покладатися завжди — наприклад, він не підходить для систем, які не є скінченними або послідовними.
Дозволяє тестувальнику перевірити, чи виконано всі умови, і чи зафіксовано результати. Потрібне визначення всіх можливих станів. Це працює для малих систем, але не працює для більших через експоненціальне зростання кількості станів.

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

Тестування переходів станів – це метод «чорної скриньки», який перевіряє, як система переходить між станами при зміні вхідних умов. Він підходить для систем зі скінченними станами, де один і той самий вхід може генерувати різні вихідні дані залежно від попередніх подій.

Чотири частини – це Стан (умови, в яких може перебувати програмне забезпечення), Переходи (перехід між станами), Події (тригери, що викликають перехід) та Дії (результати переходу, такі як повідомлення або вихід).

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

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

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

Це метод «чорної скриньки». Тестові випадки виводяться з очікуваної зовнішньої поведінки станів і переходів, без необхідності знання внутрішнього вихідного коду програми.

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

Так. Штучний інтелект може аналізувати модель станів і позначати відсутні, недосяжні або недійсні переходи, порівнюючи її з очікуваними моделями поведінки, hel.ping тестувальники виявляють прогалини, які часто пропускають ручні перевірки таблиць.

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