Тестування переходу станів з прикладом
⚡ Розумний підсумок
Тестування переходу станів – це метод «чорної скриньки», який перевіряє, як програма переходить між станами під час зміни вхідних умов. У цьому посібнику пояснюються чотири частини діаграми, різниця між діаграмами станів і таблицями, а також приклади роботи з ATM та входу для тестувальників.
Що таке тестування переходу між станами?
Тестування переходу стану – це метод тестування методом чорної скриньки, в якому зміни вхідних умов викликають зміни стану або вихідні зміни в тестованому застосунку (AUT). Він допомагає аналізувати поведінку застосунку за різних вхідних умов, а тестувальники можуть надавати позитивні та негативні вхідні значення під час запису поведінки системи.
Він базується на моделі, на якій побудовані система та тести. Будь-яка система, де ви отримуєте різний вихід для того самого вхідного сигналу — залежно від того, що сталося раніше — є системою зі скінченними станами. Метод тестування переходів станів корисний там, де вам потрібно протестувати різні системні переходи.
Коли використовувати тестування переходу станів
- Коли тестер тестує застосунок для скінченного набору вхідних значень.
- Коли тестер тестує послідовність подій, що відбуваються в AUT, це дозволяє перевірити поведінку програми для послідовності вхідних значень.
- Коли система, що тестується, залежить від подій або значень з минулого.
Коли не варто покладатися на тестування переходу штату
- Коли тестування не проводиться для послідовних комбінацій вводу.
- Коли тестування спрямоване на різні функціональні можливості, такі як дослідницьке тестування.
Чотири частини діаграми переходів станів
Модель переходу станів складається з чотирьох основних компонентів, описаних нижче.
1) Держави до яких може дійти програмне забезпечення.
2) Перехід з однієї держави до іншої.
3) Події що запускають перехід, наприклад, закриття файлу або зняття грошей.
4) Дії які є результатом переходу, наприклад, повідомлення про помилку або отримання готівки.
Діаграма переходу станів проти таблиці переходу станів
Існує два основних способи представлення або проектування переходів станів: діаграма переходів станів та таблиця переходів станів.
| Аспект | Діаграма переходу станів | Таблиця переходів станів |
|---|---|---|
| Також називається | Діаграма / графік стану | Державна таблиця |
| Подання | Boxes для станів, стрілки для переходів | Сітка станів (рядки) та подій (стовпці) |
| Найкраще підходить для ідентифікації | Дійсні переходи | Недійсні переходи |
| Кожна клітинка показує | - | Стан, досягнутий після події |
Як здійснити перехід між станами (приклади)
Приклад 1: Блокування банкомата PIN-кодом
Розглянемо функцію банкоматів, де, якщо користувач тричі вводить недійсний пароль, обліковий запис блокується.
У цій системі, якщо користувач вводить дійсний пароль у будь-якій із перших трьох спроб, він успішно входить у систему. Якщо користувач вводить недійсний пароль у першій або другій спробі, йому пропонується ввести його ще раз. Зрештою, якщо користувач вводить неправильний пароль утретє, обліковий запис блокується.
Діаграма переходу станів (приклад 1)
На діаграмі, щоразу, коли користувач вводить правильний 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 тестер охоплює та ефективно розуміє систему. | На нього не можна покладатися завжди — наприклад, він не підходить для систем, які не є скінченними або послідовними. |
| Дозволяє тестувальнику перевірити, чи виконано всі умови, і чи зафіксовано результати. | Потрібне визначення всіх можливих станів. Це працює для малих систем, але не працює для більших через експоненціальне зростання кількості станів. |






