Transcript for:
Таблиця прийняття рішень у тестуванні

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

Уявіть собі, що у вас є умова завантажити зображення собі на аватарку. І дві умови є такі. Картинка має бути менше 1 гігабайту, і файл має бути розширення...

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

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

Умови це картинка до 1 гігабайту та розширення картинки, а дії це, відповідно, певні результати або повідомлення про помилку. Відбулася якась дія, система видала повідомлення. Найчастіше умови та дії подаються у формі true та false.

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

Відповідно, якщо ми завантажили картинку формата JPG, то на умові завантажити таку картинку буде стояти true. А якщо ми завантажили картинку DOC, то умова буде false. Рухаємося далі.

Отже, одразу ж почнемо із питання за STQB, для того, щоб більше зрозуміти, навіщо потрібні ці таблиці прийняття рішень. Питання звучить так. Який очікуваний результат для кожного з двох тест-кейсів?

І ми бачимо два тест-кейси. Перший це те, що в нас є власник картки Citibank, і він знімає срібну кімнату. Дивимося одразу ж на табличку. Власник картки, в нас повинна бути відповідь «Так», і тип кімнати повинна бути «Срібна кімната». Відповідно, ми дивимося, які дії стосуються цього правила, правила, в якому власник картки і тип кімнати «Срібна».

І дія в нас «Покращити до золотої, так», а «Покращити до срібної, ні». Окей, отже, відповідь тест-кейса «А» «Покращити до золотої». В нас із всіх варіантів відповідей вже є тільки четвертий варіант, але давайте глянемо на другий тест-кейс. Другий тест-кейс це коли в нас власник не має картки «Сітібанк» і знімає платинову кімнату. Отже, «немає картки» це правило №3 та №4, «знімає платинову кімнату» це правило №4.

Відповідно, які в нас будуть дії, ми нічого не покращуємо ні до золотої, ні до срібної. Дивимося на наш четвертий варіант. І у тест-кейсі B правильна відповідь «не покращувати». Відповідно, останній тест-кейс, четвертий, останній варіант відповіді, точніше, буде правильним. Рухаємось далі.

Ще одне питання із ICTQB. Дано наступну таблицю прийняття рішень. Які з тест-кейсів та очікуваних результатів будуть валідними?

В нас, відповідно, є таблиця, в ній є вік клієнта, є клас страхування. І які дії можна виконати з цим клієнтом? Давайте переглянемо кожен із цих варіантів. Перший. Людині 23 роки і в неї клас А.

Шукаємо. 23 входить в правило 2. Клас А також входить в правило 2. Відповідно, очікуваний результат буде преміум 90, ультра 2 500. Це все правильно, і мені перший варіант вже подобається, але давайте переглянемо всі інші. Другий. Це 51 рік, входить в четверте правило, і клас С є в нас таке. Відповідно, преміум 100, ультра 500. Ні, це неправда, відповідно, цей варіант в нас викреслюється, це неправильний варіант.

Далі третій варіант, коли людині 31 рік, це третє правило. І коли клас Б. Також, можливо, дивимося, яка відповідь.

Преміум 70, а ультра 2 500, а в нас ультра насправді 500, тому нам цей варіант не підходить. І останній варіант це коли людині 43 роки, це також третє правило, клас С в нас є такий. Ми дивимося, що преміум 100, ультра 1000, а в нас немає таких варіантів відповідей, тому правильним варіантом буде перший 23 роки, друге правило клас А, преміум 90, ультра 2 500. Отака таблиця.

Можливо, виглядає страшно, але давайте спробуємо створювати свою, і це буде виглядати набагато простіше. Для цього я хочу ще раз поговорити про true та false. Отже, валідні варіанти ми будемо позначати або словом true, або літерою t, або цифрою 1. Невалідні ми будемо позначати словом false, або буквою f, або цифрою 0. Чому такі цифри 1 та 0?

Так пишуть програмісти. У бінарному, тобто двійковому коді 0 це неправда. 1 це правда. Наприклад, якщо ми вмикаємо світло, лампочка горить, вона нам повертає 1. А якщо лампочка вимкнена, вона повертає нам 0. Давайте з цією інформацією продовжувати і намагатись малювати свої таблиці. Отже, приклад, який я говорила в самому початку відео.

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

Далі, як дізнатися, якого розміру таблицю потрібно накреслити? У нас є дві умови, і ми кількість умов завжди підносимо до другої степені. 2 в другій степені дорівнює 4, відповідно, у нас має бути 4 колонки, які не являються заголовками. Чотири різних умови. Отже, обираємо всі варіанти відповідей.

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

А поки що дивимося формат JPG, картинка, правда? Ми пишемо 0 і чи розмір до 1 гігабайта? Також 0. Тоді в нас результат буде фейл. Ми отримуємо повідомлення про помилку, будь ласка, закіньте картинку, і розмір файлу має бути до 1 гігабайту. Найдруга умова.

Коли в нас формат знову не картинка, а розмір дійсно до 1 гігабайта, правда? Тоді буде фейл. і ми отримаємо повідомлення про помилку, яке скаже нам, будь ласка, завантажте картинку. Третій варіант, коли ми таки завантажуємо картинку, тобто формат jpg true, і коли розмір більше 1 гігабайта, тобто тут false.

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

Отже, в нас є приклад Instagram, ми повинні зареєструватися і нам потрібно заповнити 4 поля. Перший це мобільний телефон або електронка, другий це ім'я та прізвище, третій це нікнейм і четвертий це пароль. І відповідно, коли одиниця, то ми заповнили все класно валідними даними, а коли нуль, то ми заповняємо якимись невалідними даними. Для прикладу, в цій таблиці.

Як заповнити цю штуку? По-перше, чому таблиця на 16 клітинок? В нас є 4 різних умови.

Ми підводимо 4 до 2 степені, отримуємо 16. Відповідно, 16 умов. Тепер, як заповняти? Ми беремо 16, тому що в нас 16 клітинок, і ділимо її рівно на 2. Відповідно, це 8 і 8. Перших 8 клітинок ми заповняємо нулями, других 8 клітинок ми заповняємо одиницями.

Що робиться далі? Далі ми 8 ділимо на 2, і відповідно це будуть четвірки. Перших чотири клітинки ми заповняємо нулями, другі одиницями, треті нулями, четверті одиницями.

Тобто тепер ми заповняємо по 4 символи. Далі, тепер четвірку ми ділимо на 2, і в нас буде двійка. Можете здогадатися, що ми пишемо 2 0 2 1, 2 0 2 1. Отак от вона виглядає.

0 0 1 1 0 0 1 1. І останній, коли ми двійку ділимо на 2. і в нас буде 1. І, відповідно, останній рідок буде 0, 1, 0, 1, 0, 1, 0, 1. З допомогою такого способу ми заповнили цю таблицю повністю всією інформацією. В нас немає жодного стопчика, який би дублювався. Всі вони унікальні, і ми не можемо знайти жодного такого самого. Тому переходимо до пошуку результата.

Отже, якщо ми ввели невалідні все, то в нас результат фейл. Якщо невалідні хоч щось, тобто якщо є хоч одна клітинка, в якій є нулик, то також буде фейл. Допустимо, ми не ввели нікнейм, 14-та колонка, і в нас результат буде фейл, тому що без нікнейма нас не зареєструє. Так само без електронної адреси, як в 8-й колонці, без імені-прізвища, давайте знайдемо, це 12-та колонка, або без паролю, це 15-та.

16-та колонка це коли ми все ввели правильно, і відповідно результат буде true. Нас пропустить і зареєструє. Але таблиці прийняття рішень не обмежуються тільки нулями та одиницями, тому переглянемо більш цікавий приклад.

У нас є супермаркет, і для залучення покупців власник вигадав систему знижок. Якщо ти вперше в магазині, ти матимеш 10% знижки. Якщо ти постійний клієнт, то у тебе є золота карта та 20% знижки.

Якщо в тебе сьогодні день народження, тобі дадуть 50% знижки. А якщо ти, скажімо, розбив пляшку вина та втік, то тебе кидають в бан, і ти більше ніколи не зможеш нічого купити в цьому магазині. У нас є, відповідно, 4 умови, значить 16 стовпчиків, і починаємо розписувати всі ці стовпчики. По-перше, я запевняю таблицю точно так само.

Половина 0, половина 1. Другий рядок. Четвертина 0, четвертина 1. Третій рядок 2, 0, 2, 1. І останній рядок через 1, 0, 1, 0, 1, 0, 1. У нас є всі унікальні стовпчики. Тепер будемо проходитися. по кожному із них для того, щоб наглядно вам показати, який буде результат. Отже, перша умова.

Клієнт в магазині вперше. Ні, він не вперше. Чи є у нього знижкова карта? Ні, в нього немає. Нуль.

Чи є у нього сьогодні день народження? Ні. І чи в бані він?

Ні, він не в бані. Відповідно, результат у нього буде 0% знижки. Будь ласка, проходь, купуй.

Другий варіант, друга умова. Клієнт не вперше. В нього немає знижкової карти і в нього немає дня народження, але він в бані.

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

Він прийшов, каже, от мій паспорт, будь ласка, зробіть мені знижку. І він не в бані. Відповідно, ми даємо йому 50% знижки. Четверта умова.

Клієнт нас не впускає. П'ята умова. Шеста умова.

Тому ми його виганяємо. Знижкову карту забираємо і розрізаємо. Сьома умова.

Клієнт в нас не вперше, в нього є знижкова карта і день народження, але він не в бані. Отут цікавий кейс. Сьомий стопчик, зверніть увагу. В випадку, якщо в нас і знижкова карта, що має 20%, і день народження, що має 50%, що ми робимо? Ми приходимо до власника супермаркету і кажемо, яку знижку ти даш людині, у якої і знижкова карта, і день народження.

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

Восьмий випадок. Клієнт в нас не вперше, в нього є знижкова картка, в нього день народження, а ще в нього бан. Відповідно, якщо в нього бан, то ми його виганяємо в будь-якому випадку. Дев'ятий кейс.

Клієнт в нас вперше. В нього немає ні картки, ні дня народження, він не в бані, відповідно... Ми дамо йому 10% знижки. Далі, клієнт в нас вперше, в нього немає знижкової картки, в нього немає дня народження, але він одразу ж потрапив в бан.

Москаль. Ми виганяємо його з супермаркета. Одинадцятий варіант.

Клієнт в нас вперше, в нього немає знижкової карти, в нього день народження і немає бану. Ми знов-таки йдемо до нашого власника магазину. І кажемо, що ми робимо? Ми даємо йому 10%, чи 50%, чи 60%.

І власник знову каже, ну давай 50%, і хай йде з Богом, ми даємо йому 50% знижки за те, що в нього день народження, десятка 10% поглинається, або ж, якщо продавець скаже, то ми можемо дати йому 60%. Це треба визначити. Далі, 12-та умова.

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

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

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

Клієнт нас вперше, в нього є знижкова карта, в нього не день народження і бан. Відповідно, якщо бан, то йде в бан. 15-й випадок, клієнт в нас вперше, в нього і знижкова карта, і день народження, і він не в бані.

Це одразу зрозуміло, що прийшов шахрай, в нього є прям всі-всі-всі знижки, але він вперше. Яким чином? Ми його виженемо.

І 16-та умова, коли клієнт і вперше, і зі знижкою, і з днем народження, і з баном. Прям повний набір, тому ми його виганяємо. Отакий був приклад, сподіваюсь, вам з ним було зрозуміліше. На цьому все.

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