Заняття 6 УКР Test Design Techniques

Содержание

Слайд 2

Що будемо вивчати?

Що таке тест-дизайн
Які техніки тест-дизайну існують
Поняття класу еквівалентності та граничних

Що будемо вивчати? Що таке тест-дизайн Які техніки тест-дизайну існують Поняття класу
значень
Правила побудови таблиць прийняття рішень
Метод парного тестування (Pairwise testing)
Тестування станів та переходів

Слайд 3

Техники тест-дизайну

Техники тест-дизайну – це рекомендації, поради та правила, за якими варто

Техники тест-дизайну Техники тест-дизайну – це рекомендації, поради та правила, за якими
розробляти тести для проведення тестування. Тест дизайн є продумування та написання тестових випадків, відповідно до вимог проекту, критеріями якості майбутнього продукту та фінальними цілями тестування.
Мета тест-дизайну – забезпечити покриття функціоналу докладання тестами те щоб їх було мінімально достатню кількість.
Вирізняють такі техніки тест-дизайну:
Еквівалентний поділ (Equivalence Partitioning);
Аналіз граничних значень (Boundary Value Analysis);
Таблиця прийняття рішень (Decision Table Testing);
Тестування станів та переходів (State-Transition Testing);
Метод парного тестування (Pairwise Testing).

Слайд 4

Коли ви вже знаєте, повне тестування навіть простої програми неможливе. А якщо

Коли ви вже знаєте, повне тестування навіть простої програми неможливе. А якщо
і можливо, то займе багато років.
Візьмемо, наприклад, калькулятор. Скільки комбінацій вхідних параметрів треба протестувати?
Давайте обмежимося тільки операцією складання. Два числа по 8 знаків - це 10^8*10^8 = 10^16 - 10 000 000 000 000 000 комбінацій.
Якщо прикинути, що на кожний тест ми витратимо близько 10 секунд, то час повного тестування займе в нас 10^17 секунд, тобто більше 3 мільярдів років безперервних тестувань.

Слайд 5

Клас еквівалентності

Клас еквівалентності (equivalence class) – одне чи кілька значень введення, до

Клас еквівалентності Клас еквівалентності (equivalence class) – одне чи кілька значень введення,
яких додаток застосовує однакову логіку.
Два тести можна вважати еквівалентними, якщо:
Спрямовані на пошук однієї і тієї ж помилки;
Якщо один із тестів виявляє помилку, інші швидше за все, теж її виявлять і навпаки;
Тести використовують подібні набори вхідних даних;
Якщо один із тестів не виявляє помилку, інші, швидше за все, теж її не виявлять;
Для виконання тестів ми здійснюємо одні й самі операції;
Тести генерують однакові вихідні дані або наводять додаток в один і той же стан;
Усі тести призводять до спрацьовування одного й того самого блоку обробки помилок;
Жоден із тестів не призводить до спрацювання блоку обробки помилок.

Слайд 6

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

Поділ на еквівалентні класи – це метод тестування

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

Слайд 7

Алгоритм використання техніки

Визначити класи еквівалентності. Це головний крок техніки. Від нього багато

Алгоритм використання техніки Визначити класи еквівалентності. Це головний крок техніки. Від нього
в чому залежить ефективність її застосування.
Потім потрібно вибрати одного представника кожного класу. На цьому етапі з кожного еквівалентного набору тестів ми вибираємо один тест.
Потрібно виконати випробування. На цьому кроці ми виконуємо тести кожного класу еквівалентності.
Можна розбивати випробування на класи еквівалентності за різними принципами. Наприклад, якщо ми тестуємо поле введення, яке приймає максимум 5 символів, то можемо вибрати різні принципи розбиття на класи еквівалентності:
Кількість символів.
За типом знаків (цифри, літери, спеціалізовані знаки).

Слайд 8

Приклад

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

Приклад Давайте розглянемо функцію підрахунку комісії при скасуванні бронювання авіаквитків. Розмір комісії
від часу до вильоту, коли скоєно скасування:
За 5 діб до вильоту комісія складає 0%;
Меньше 5 діб, але понад 24 години – 50%;
Менше 24 години до вильоту – 75%;
Після вильоту – 100%.

Слайд 9

1.ВИЗНАЧИМО КЛАСИ ЕКВІВАЛЕНТНОСТІ:
1 клас: час до вильоту > 5 діб.
2 клас: 24

1.ВИЗНАЧИМО КЛАСИ ЕКВІВАЛЕНТНОСТІ: 1 клас: час до вильоту > 5 діб. 2
години <час до вильоту <5 діб.
3 клас: 0 годин <час до вильоту <24 години.
4 клас: час до вильоту <0 годин (виліт вже відбувся).
2. ВИБЕРЕМО ОДНОГО ПРЕДСТАВНИКА ВІД КОЖНОГО КЛАСУ:
Час до вильоту = 10 діб (тест із 1-го класу).
Час до вильоту = 3 діб (тест із 2-го класу).
Час до вильоту = 12 годин (тест із 3-го класу).
Час до вильоту = -30 хв (тест із 4-го класу).
3. ВИКОНАЄМО ТЕСТИ:
Скасуємо броню за 10 діб до вильоту і перевіримо, що комісія склала 0%.
Скасуємо броню за 3 доби до вильоту та перевіримо, що комісія склала 50%.
Скасуємо броню за 12 годин до вильоту і перевіримо, що комісія склала 75%.
Скасуємо броню через 30 хв після вильоту та перевіримо, що комісія склала 100%.

Слайд 10

Баги водяться на межі

Баги водяться на межі

Слайд 11

Техніка аналізу кордонних значень

Граничні значення – це значення, у яких один клас

Техніка аналізу кордонних значень Граничні значення – це значення, у яких один
еквівалентності перетворюється на інший.
Аналіз граничних значень – це метод тестування програми, який полягає у перевірці поведінки програми у крайніх (граничних) значеннях.
Граничне тестування також може включати тести, які перевіряють поведінку системи на вхідних даних, що виходять за допустимий діапазон значень. При цьому система має певним способом опрацьовувати такі ситуації. Наприклад, за допомогою виняткової ситуації або повідомлення про помилку.
Дуже важливо перевіряти саме граничні значення, тому що часто виникають помилки саме на межах класів еквівалентності.
На кожній межі діапазону слід перевірити три значення:
граничне значення;
значення перед кордоном;
значення після кордону.

Слайд 12

Алгоритм використання техніки

Визначити класи еквівалентності.
Потім слід визначити граничні значення цих класів.
Потрібно розуміти

Алгоритм використання техніки Визначити класи еквівалентності. Потім слід визначити граничні значення цих
якого класу належить значення.
Провести тести з перевірки значення до кордону, на кордоні та одразу після кордону.

Слайд 13

Приклад

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

Приклад Давайте розглянемо функцію підрахунку комісії при скасуванні бронювання авіаквитків. Розмір комісії
від часу до вильоту, коли скоєно скасування:
За 5 діб до вильоту комісія складає 0%;
Меньше 5 діб, але понад 24 години – 50%;
Менше 24 години до вильоту – 75%;
Після вильоту – 100%.

Слайд 14

1. ВИЗНАЧИМО КЛАСИ ЕКВІВАЛЕНТНОСТІ:
1 клас: час до вильоту > 5 діб.
2 клас:

1. ВИЗНАЧИМО КЛАСИ ЕКВІВАЛЕНТНОСТІ: 1 клас: час до вильоту > 5 діб.
24 години <час до вильоту <5 діб.
3 клас: 0 годин <час до вильоту <24 години.
4 клас: час до вильоту <0 годин (виліт вже відбувся).
2. ВИЗНАЧИМО КОРДОННІ ЗНАЧЕННЯ ЦИХ КЛАСІВ:
Час до вильоту = 5 діб та 1 секунда.
Час до вильоту = 5 діб
Час до вильоту = 4 доби 23 години 59 хвилин 59 секунд.
Час до вильоту = 24 години та 1 секунда
Час до вильоту = 24 години
Час до вильоту = 23 години 59 хвилин 59 секунд.
Час до вильоту = 1 секунда
Час вильоту
Одна секунда після вильоту
3. ВИЗНАЧИМО ДО ЯКОГО КЛАСУ ВІДНОСИТЬСЯ ЗНАЧЕННЯ.
4. ВИКОНАЄМО ТЕСТИ.

Слайд 15

Таблиця прийняття рішень

Таблиця прийняття рішень – метод компактного представлення моделі зі складною

Таблиця прийняття рішень Таблиця прийняття рішень – метод компактного представлення моделі зі
логікою. Таблиці прийняття рішень, як правило, поділяються на чотири квадрати, як показано нижче:
Умови – список можливих умов (виписуємо по горизонталі);
Варіанти виконання умов – комбінація із виконання та/або невиконання умов із цього списку (виписуємо по вертикалі);
Дії - список можливих дій (виписуємо по горизонталі);
Необхідність дій – вказівку треба чи не треба виконувати відповідну дію для кожної з комбінацій умов (виписуємо по вертикалі).

Слайд 16

Приклад (один результат)

Уявімо, що ми прийшли в страхову компанію для оформлення страховки

Приклад (один результат) Уявімо, що ми прийшли в страхову компанію для оформлення
на автомобіль. Для того, щоб визначити вартість страховки, нам потрібно відповісти на два питання представника страхової компанії:
Чи маємо стаж водіння 5 років?
Чи ми були винуватцями аварій?
Виходить дві умови по два можливі варіанти, разом чотири варіанти виконання умов (чотири правила). На кожне правило свій результат:
Якщо у нас невеликий стаж і ми часто буваємо в аваріях – доведеться заплатити по максимуму, інакше страхова компанія невигідно нас страхуватиме;
Якщо немає стажу, але немає аварій – платимо менше, але не сильно.
Якщо ми досвідчені водії, але потрапляємо в аварії вкрай рідко і не завжди з нашої вини – цінник ще трохи нижчий.
Якщо ми досвідчені водії та ще й без аварій – платимо найменше.

Слайд 18

А тепер те саме, тільки у вигляді таблиці:

А тепер те саме, тільки у вигляді таблиці:

Слайд 19

Приклад (множинний результат)

Є інтернет-магазин, який пропонує:
Знижка постійного покупця;
Кількість речей, що кур'єр привезе

Приклад (множинний результат) Є інтернет-магазин, який пропонує: Знижка постійного покупця; Кількість речей,
безкоштовно.
Це такі «плюшки» за лояльність та повторну купівлю. Для їх обчислення існують дві умови:
Скільки покупець витратив грошей в інтернет-магазині – бонус додається при досягненні 100 грн., 500 грн., 1000 грн., 5000 грн.
Який відсоток викупу – покупець отримує бонус при досягненні 5%, 30%, 50% та 80% викупу.

Слайд 20

Спробуємо записати всі умови:

Спробуємо записати всі умови:

Слайд 21

Переваги техніки

Наочність – таблиця наочніша за текст. Можна взяти таблицю та підійти

Переваги техніки Наочність – таблиця наочніша за текст. Можна взяти таблицю та
до аналітика з якимось питанням. Або до розробника. Їм буде простіше зрозуміти, про що мова, аніж якщо ви принесете стіну тексту.
Таблиця допомагає глянути на ТЗ свіжим поглядом, по-новому. Поки ми намагаємося поєднувати умови, складаючи таблицю, ми можемо помітити пропущений раніше баг.
Наочність допоможе знайти баги у документації. Бо косяк формули відразу кидатиметься в очі.

Слайд 22

Намалював таблицю = записав тест-кейси. Поміняв у заголовках слово "правило" на "тест-кейс",

Намалював таблицю = записав тест-кейси. Поміняв у заголовках слово "правило" на "тест-кейс",
і ось вони, готові випробування! І це будуть основні позитивні тести, які ми проводимо насамперед.

Слайд 23

Недоліки техніки

Особливих мінусів немає, але таблиця не потрібна, якщо:
Занадто проста умова –

Недоліки техніки Особливих мінусів немає, але таблиця не потрібна, якщо: Занадто проста
тому що «але навіщо?». І все зрозуміло.
Занадто багато вхідних даних буде дуже багато колонок. Багато тестів, але мало результату, тому що тут уже потрібний тест-аналіз, pairwise і т.д.

Слайд 24

Таблиця рішень допомагає подивитись на ТЗ свіжим поглядом

Таблиця рішень допомагає подивитись на ТЗ свіжим поглядом

Слайд 25

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

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

Тестування станів та переходів Тестування станів та переходів, як і таблиця прийняття
відмінний інструмент для фіксування вимог та опису роботи програми. На відміну від Decision tables testing, які описують конкретний стан програми, State-Transition testing описують, як ці стани програми можуть змінюватися. Діаграми визначають всі події, що виникають під час роботи програми, і як додаток реагує на ці події.
Використання цієї техніки легко пояснити відразу в роботі, на прикладах. Розберемо два види візуального представлення цієї техніки:
State-Transition Diagrams (діаграми);
State-Transition Tables (таблиці).

Слайд 26

State-Transition Diagrams

Розберемо приклад резервації авіаквитків.
Спочатку, як клієнти, надаємо авіакомпанії інформацію для резервації

State-Transition Diagrams Розберемо приклад резервації авіаквитків. Спочатку, як клієнти, надаємо авіакомпанії інформацію
– місце відправлення, місце прибуття, дату і час відправлення. Службовець авіакомпанії служить інтерфейсом між нами та системою резервації авіаквитків, і використовує надану нами інформацію для створення резервації.
Після цього наша резервація перебуватиме у стані "Made" (зроблена).
До того ж, після створення резервації, система резервації запускає таймер.
Якщо таймер виходить, а зарезервований квиток не сплачено - система скасовує резервацію.

Слайд 27

Коло є стан системи резервації авіаквитків, у нашому випадку це "Made" стан.
Стрілка

Коло є стан системи резервації авіаквитків, у нашому випадку це "Made" стан.
показує перехід у стан "Made".
Опис під стрілкою це подія вихідні ззовні системи (giveInfo).
Команда в описі під стрілкою (після "/") говорить нам, що система зробила якусь дію у відповідь на подію, в нашому випадку це запуск таймера.
Чорна точка вказує на початок/вхід діаграми.

Слайд 28

Далі, якщо таймер не спливає і ми оплатили зарезервований квиток, то система

Далі, якщо таймер не спливає і ми оплатили зарезервований квиток, то система
набуває стану Paid (оплачений). Це показано стрілкою "payMoney" (заплатити гроші) та переходом зі стану "Made" в стан "Paid".

Слайд 29

Зі стану "Paid" повинен бути перехід у стан "Ticketed" (вибілений), коли квиток

Зі стану "Paid" повинен бути перехід у стан "Ticketed" (вибілений), коли квиток
буде надрукований і переданий нам у руки. Зверніть увагу, що при переході в стан "Ticketed" авіаквиток (Ticket) є вхідними даними стану.

Слайд 30

Зі стану "Ticketed" ми переходимо в стан "Used" (використаний), коли віддаємо свій

Зі стану "Ticketed" ми переходимо в стан "Used" (використаний), коли віддаємо свій
квиток персоналу аеропорту, при посадці в літак.

Слайд 31

Після якоїсь дії (на цей раз не вказаної на діаграмі) шлях діаграми

Після якоїсь дії (на цей раз не вказаної на діаграмі) шлях діаграми
закінчується символом мішені.
Але ця діаграма показує ще не всі можливі стани та переходи у життєвому циклі резервації. Почнемо доповнювати.

Слайд 32

Якщо резервація не оплачена після закінчення таймера, вона скасовується як і оплачена.

Якщо резервація не оплачена після закінчення таймера, вона скасовується як і оплачена.

Слайд 33

Іноді клієнти скасовують замовлення зі стану "Made". На цю справу нам потрібен

Іноді клієнти скасовують замовлення зі стану "Made". На цю справу нам потрібен
ще 1 стан "Cancelled By Customer".

Слайд 34

Іноді клієнти скасовують замовлення зі стану "Made". На цю справу нам потрібен

Іноді клієнти скасовують замовлення зі стану "Made". На цю справу нам потрібен
ще 1 стан "Cancelled By Customer".

Слайд 35

Скасувати резервацію можна і зі стану "Ticketed". І тут стан знову ставати

Скасувати резервацію можна і зі стану "Ticketed". І тут стан знову ставати
" Cancelled By Customer " і авіакомпанія відшкодовує вартість квитка клієнту. Але! Компанія відшкодує вартість квитка лише тоді, коли клієнт поверне квиток. Цей випадок представляє ще один не описаний елемент діаграм - квадратні дужки "[]", які представляють умову переходу. Перехід у стан у цьому випадку трапиться тільки якщо умова (що в "[]") = true.

Слайд 36

Створення тест-кейсів

State-Transition Diagrams можна легко використовувати для створення тест кейсів. Необхідно створити

Створення тест-кейсів State-Transition Diagrams можна легко використовувати для створення тест кейсів. Необхідно
набір тест-кейсів, який має пройти по всіх переходах хоча б разів.

Слайд 37

Попарне тестування

Pairwise testing (попарне тестування) – це техніка формування наборів тестових даних

Попарне тестування Pairwise testing (попарне тестування) – це техніка формування наборів тестових
із повного набору вхідних даних у системі, яка дозволяє суттєво скоротити кількість тест-кейсів.
Сформулювати суть попарного тестування можна так: формування таких наборів даних, у яких кожне тестоване значення кожного з параметрів, що перевіряються, хоча б один раз поєднується з кожним тестованим значенням всіх інших параметрів, що перевіряються.
Головні цілі Pairwise Testing:
усунути надлишкові перевірки;
забезпечити гарне тестове покриття;
виявити найбільшу кількість багів на мінімальному наборі тестів.

Слайд 40

Домашнє завдання

Конспект;
Перейти до сторінки (https://pairwise.teremokgames.com/);
Відкрити каталог будь-якої групи товарів в інтернет-магазині Citrus;
У

Домашнє завдання Конспект; Перейти до сторінки (https://pairwise.teremokgames.com/); Відкрити каталог будь-якої групи товарів
pairwiseTool додати всі параметри з фільтра для обраної групи товарів;
Перенести значення для кожного параметра (крім ЦІНИ);
Створити Permalink;
Сформувати всі можливі набори значень тестування;
- Сформувати набори значень для тестування з використанням техніки попарного тестування;
Створене посилання та результати згенерованих комбінацій додати до word-документа;
Завантажити документ на платформу.
Имя файла: Заняття-6-УКР-Test-Design-Techniques.pptx
Количество просмотров: 21
Количество скачиваний: 0