Сьогодні познайомлю вас з таблицями рішень - що це і як ефективно використовувати в тестуванні. Таблиці рішень зарекомендували себе як зручний і простий спосіб тест-дизайну.
Для початку з'ясуємо, що ж таке «Таблиця рішень». Для цього звернемося до улюбленої Вікіпедії за формальним визначенням: таблиця прийняття рішень - це спосіб компактного представлення моделі зі складною логікою. Простими словами, це варіанти дій при різних вхідних умовах.
Давайте уявимо звичайну ситуацію повернення додому з роботи або навчання. У нас є ключ від домофона. Ми можемо або взяти його з собою, або забути (будинку \ на роботі \ десь ще). У момент повернення додому нас можуть чекати родичі \ друзі \ собака, яка вміє відкривати двері, або вдома нікого немає - всі пішли гуляти.
Отже, які вхідні параметри ми маємо?
- Наявність з собою ключа. Варіанти. Так чи ні
- Чи є хтось удома. Варіанти. Так чи ні
- На місці чи консьєрж, який може відкрити двері. Варіанти. Так чи ні
Які наші можливі дії?
- Ми відкриваємо двері ключем
- Ми дзвонимо в домофон
- Ми дзвонимо консьєржа
- Ми дзвонимо сусідам
- Ми чекаємо (поки хто-небудь з сусідів вийде і відкриє двері, або наші родичі повернуться додому)
Є ще варіанти?
Можна придумати щось зі світу фантастики, наприклад, піднятися на 20 поверх і проникнути в квартиру через вікно. Поки зупинимося на перелічених вище варіантах дії.
Всі необхідні дані у нас є, тепер треба зібрати все в красиву табличку. Зліва в стовпчик перераховуємо вхідні параметри або "умови".
Далі створюємо стовпці праворуч, де кожен стовпець визначатиме один з можливих варіантів цих умов.
"Так" означає, що умова виконується, "Ні" - не виконується. Прочерк - неважливо чи виконується ця умова (наприклад, якщо у нас є ключ, нам все одно на місці чи консьєрж, ми відкриваємо двері самі).
Для кожного варіанту виконання потрібно визначити очікувану дію. Дивимося на варіант 1: якщо ключ з собою, ми відкриваємо двері ключем. Навпаки відповідного дії ставимо символ "Х", який показує, що повинно виконуватися саме цю дію.
Основою методу побудови таблиці рішення є таблиця з чотирьох блоків: Якщо уважно подивитися на таблицю, можна помітити, що кожен стовпець представляє собою окремий тест-кейс! вуаля 🙂
Ми знаємо, що форма містить поля логіна, пароля і кнопки "Увійти" і "Скасувати".
При введенні невірних даних система видає відповідну помилку про те, що логін або пароль введені невірно. Якщо ми не ввели значення для логіна або пароля - система видає помилку про необхідність заповнити поля.
Виберемо "Умови" для даних сутностей, тобто можливі вхідні значення.
- Логін. порожнє значення / вірне значення / невірне значення
- Пароль. порожнє значення / вірне значення / невірне значення
- Кнопки. Увійти / Скасування
Пусте значення вибрано як окрема умова через те, що помилка в цьому випадку відрізняється від помилки введення невірного значення. Кнопки об'єднали в одну умову, тому що ми можемо натиснути або одну або іншу кнопку, одночасно натиснути дві - проблематично 🙂
Виділимо можливі дії.
Після того, як вибрали умови і варіанти дії починається найцікавіше - скласти таблицю рішень!
Виписуємо в стовпець всі умови і варіанти:
Вважаємо, що в разі неправильного значення для логіна і порожнього значення пароля - система видає нам обидві помилки. Як повинна вести себе ваша програма - дивіться у вимогах і специфікаціях 🙂
Тепер для всіх 18 варіантів визначимо необхідність дій.
Ви можете детальніше розписати введення невірного значення, наприклад, окремо введення цифр, символів, недрукованих символів, копіпаст в поле, максимальне і мінімальне значення, обмеження по довжині, формат поля email і т.д.
Для зручності виконання таких тест-кейсів рекомендую додати ще один рядок до таблиці "Статус проходження тесту" і в ході тестування відзначати тести як Passes / Failed / Blocked / Not Run.
Гарного дня читає цей пост 🙂