- •Міністерство освіти і науки, молоді та спорту України
- •“Затверджую”
- •Методичні вказівки для виконання практичних робіт з курсу „Тестування програмних систем і комплексів”
- •Пояснювальна записка
- •Тематика практичних занять
- •Критерії оцінювання виконання практичних робіт
- •Практична робота №1
- •1. Організаційна частина
- •2. Актуалізація опорних знань студентів:
- •3. Закріплення вмінь та навичок студентів
- •4. Основна частина заняття:
- •Приклад виконання роботи.
- •Практична робота № 2
- •Практична робота № 3
- •4. Основна частина заняття:
- •Практична робота №4
- •4. Основна частина заняття:
- •Практична робота № 5
- •4. Основна частина заняття:
- •Практична робота № 6
- •4. Основна частина заняття:
- •Приклад виконання роботи
- •Практична робота № 7
- •Приклад виконання роботи
- •5. Контрольні запитання:
- •6. Узагальнення та систематизація вмінь і навичок.
- •7. Підведення підсумків заняття.
- •Правила оформлення звітів з практичних робіт
- •Список використаних джерел
Практична робота № 3
Тема: Функціональне тестування
Мета: вивчити методи функціонального тестування на практиці.
Хід роботи
1. Організаційна частина
а) готовність групи до заняття;
б) психоемоційний настрій;
в) перевірка присутніх;
2. Актуалізація опорних знань студентів:
а) повідомлення теми та мети;
б) повідомлення основних тем, по яким відбувається практична робота.
3. Закріплення вмінь та навичок студентів
Теоретичні відомості. До вивчених способів функціонального тестування належать: спосіб розбиття по еквівалентності, спосіб аналізу граничних значень та спосіб причинно-наслідкових діаграм.
Для тестування програми за допомогою способу розбиття по еквівалентності необхідно виконати наступні кроки:
сформувати класи еквівалентності;
визначити післяумови та передумови;
розробити тестові варіанти.
Для тестування способом аналізу граничних значень необхідно:
визначити граничні значення;
сформувати тестові варіанти для тестування граничних значень.
Тестування способом діаграм причин-наслідків відбувається у наступному порядку:
- для кожного модуля перераховуються причини (умови уведення або класи еквівалентності умов уведення) і наслідки (дії або умови виводу). Кожній причині й наслідку привласнюється свій ідентифікатор;
- розробляється граф причинно-наслідкових зв'язків;
- граф перетвориться в таблицю рішень;
- стовпці таблиці рішень перетворяться в тестові варіанти.
4. Основна частина заняття:
Завдання. Використовуючи способи тестування, що наведені в теоретичних відомостях, виконати тестування програми, специфікація якої вказана нижче:
Дана програма, що виконує пошук студента по середнього балу успішності та виводить тих, у кого середній бал 4 та вище. Оцінки зберігаються в масиві. Оцінок в масиві має бути 5. Оцінки можуть бути від 2 до 5. Шостим елементом масиву є середній бал. Якщо студент має середній бал більше 4 – дані про нього виводяться на екран, інакше – записуються в файл. |
Приклад виконання роботи
1. Розглянемо застосування способів розбиття по еквівалентності та аналізу граничних значень на наступному прикладі. Необхідно протестувати програму бінарного пошуку. Є специфікація програми: пошук виконується в масиві елементів М, повертається індекс І елементу масиву, значення якого відповідає ключу пошуку Key.
Передумови:
1) масив має бути впорядкований;
2) масив повинен мати не менше одного елементу;
3) нижня межа масиву (індекс) повинна бути меншою або дорівнювати його верхній межі.
Постумови:
якщо елемент знайдений, то прапорець Result=True, значення І – номер елемента;
якщо елемент не знайдений, то прапорець Result=False, значення І – не визначене.
Для формування класів еквівалентності та їх ребер потрібно виконати розбиття області початкових даних – побудувати дерево розбиття. Листя дерева розбиття дадуть нам класи еквівалентності, як ми шукаємо. Визначимо стратегію розбиття. На першому рівні будемо аналізувати виконуваність передумов, на другому – виконуваність постумов. На третьому рівні можна аналізувати спеціальні вимоги, отримані з практики розробника. В нашому прикладі ми знаємо, що вхідний масив має бути впорядкований. Обробка впорядкованих наборів з парного та непарного набору елементів може виконуватися по різному. Крім того, прийнято виділяти спеціальний випадок одноелементного масиву. Отже, на рівні спеціальних вимог можливі наступні еквівалентні розбиття:
- масив з одного елементу;
- масив з парної кількості елементів;
- масив з непарної кількості елементів, який більший одиниці.
Нарешті, на останньому, 4-му рівні критерієм розбиття може бути аналіз ребер класів еквівалентності. Очевидно, можливі наступні варіантия:
робота з першим елементом масиву;
робота з останнім елементом масиву;
робота з проміжним елементом масиву.
Структура дерева розбиття представлена на малюнку 1.
Мал.. 1 Дерево розбиття області початкових даних бінарного пошуку
Це дерево має 11 листків. Кожен листок задає окремий тестовий варіант. Розробимо тестові варіанти, що засновані на проведених розбиттях.
ТВ1(одиничний масив, елемент знайдено): ПД.: М=15, Кеу=15. Оч. Рез.: Result=True; I=1. |
ТВ2(парний масив, знайдено перший елемент): ПД.: М=15,20, 25, 30, 35, 40; Кеу=15. Оч. Рез.: Result=True; I=1. |
ТВ3(парний масив, знайдено останній елемент): ПД.: М=15,20, 25, 30, 35, 40; Кеу=40. Оч. Рез.: Result=True; I=6. |
ТВ4(парний масив, знайдено проміжний елемент): ПД.: М=15,20, 25, 30, 35, 40; Кеу=25. Оч. Рез.: Result=True; I=3. |
ТВ5(непарний масив, знайдено перший елемент): ПД.: М=15,20, 25, 30, 35, 40, 45; Кеу=15. Оч. Рез.: Result=True; I=1. |
ТВ6(непарний масив, знайдено останній елемент): ПД.: М=15,20, 25, 30, 35, 40, 45; Кеу=45. Оч. Рез.: Result=True; I=7. |
ТВ7(непарний масив, знайдено проміжковий елемент): ПД.: М=15,20, 25, 30, 35, 40, 45; Кеу=30. Оч. Рез.: Result=True; I=4. |
ТВ8(парний масив, не знайдено елементу): ПД.: М=15,20, 25, 30, 35, 40; Кеу=23. Оч. Рез.: Result=False; I=?
|
ТВ9(непарний масив, не знайдено елементу): ПД.: М=15,20, 25, 30, 35, 40, 45; Кеу=24. Оч. Рез.: Result=False; I=? |
ТВ10(одиничний масив, не знайдено елементу): ПД.: М=15; Кеу=0. Оч. Рез.: Result=False; I=? |
ТВ11(порушено передумови): ПД.: М=15,10, 5, 25, 20, 40, 35; Кеу=35. Оч. Рез.: Аварійне донесення: Масив не впорядкований. |
2. Для ілюстрації використання способу діаграм причин – наслідків (функціональних діаграм), розглянемо приклад, коли програма виконує розрахунок сплати за електроенергію по середньому та змінному тарифові. При розрахунку по середньому тарифові:
- при місячному споживанні енергії меншому, ніж 100кВт/год, виставляється фіксована сума;
- при споживанні енергії, що більше або рівне 100 кВт/год застосовується процедура А планування розрахунку.
При розрахунку за змінним тарифом:
при місячному споживанні енергії меншому, ніж 100кВт/год, застосовується процедура А планування розрахунку;
при споживанні енергії більшому або рівному 100кВт/год застосовується процедура В планування розрахунку.
Крок 1. Причинами є:
розрахунок по середньому тарифу;
розрахунок по змінному тарифу;
місячне споживання електроенергії менше, ніж 100кВт/год;
місячне споживання електроенергії більше або рівне 100кВт/год.
На основі різних комбінацій причин можна перерахувати наступні наслідки:
101 – мінімальна місячна вартість;
102 – процедура А планування розрахунків;
103 – процедура В планування розрахунків.
Крок 2. Розробка графу причинно-наслідкових зв’язків (мал.. 2).
Вузли причин розташовані вертикально по лівому краю малюнка, а вузли наслідків – по правому краю. Для наслідку 102 виникає необхідність вводу вторинних причин – 11 та 12, їх розміщаємо в центрі малюнку.
Мал. 2 Граф причинно-наслідкових зв’язків
Крок 3. Генерація таблиці рішень. При генерації причини розглядаються як умови, а наслідки – як дії.
Порядок генерації.
Обираємо деякий наслідок, який має бути в стані „1”.
Знаходимо всі комбінації причин ( з врахуванням обмежень), які встановлюють цей наслідок в стан „1” . Для цього з наслідку прокладається зворотна траса через граф.
Для кожної комбінації причин, що приводять наслідок в стан „1”, будуємо один стовпець.
Для кожної комбінації причин до визначаємо стани всіх інших наслідків. Вони поміщаються в той самий стовпчик таблиці рішень.
Дії 1-4 повторюються для всіх наслідків графу.
Таблиця 1.1 Таблиця рішень для програми розрахунку сплати за електроенергію
Номери стовпців |
1 |
2 |
3 |
4 |
||
Умови |
Причини |
1 |
1 |
0 |
1 |
0 |
|
|
2 |
0 |
1 |
0 |
1 |
|
|
3 |
1 |
1 |
0 |
0 |
|
|
4 |
0 |
0 |
1 |
1 |
|
Вторинні причини |
11 |
0 |
0 |
1 |
0 |
|
|
12 |
0 |
1 |
0 |
0 |
Дії |
Наслідки |
101 |
1 |
0 |
0 |
0 |
|
|
102 |
0 |
1 |
1 |
0 |
|
|
103 |
0 |
0 |
0 |
1 |
Крок 4. Перетворюємо кожен стовпець таблиці в тестовий варіант. В нашому прикладі таких варіантів 4.
ТВ1(стовпець 1):
ПД.: розрахунок по середньому тарифу; місячне споживання електроенергії 75 кВт/год.
Оч.рез: мінімальна місячна вартість.
ТВ2(стовпець 2):
ПД.: розрахунок по змінному тарифу; місячне споживання електроенергії 90 кВт/год.
Оч.рез: процедура А планування розрахунку.
ТВ3(стовпець 3):
ПД.: розрахунок по середньому тарифу; місячне споживання електроенергії 100 кВт/год.
Оч.рез: процедура А планування розрахунку.
ТВ4(стовпець 4):
ПД.: розрахунок по змінному тарифу; місячне споживання електроенергії 100 кВт/год.
Оч.рез: процедура В планування розрахунку.
Підсумок: розглянувши методики функціонального тестування, можна зробити висновок, що застосування цих методик в комплексі дає найкращий результат функціонального тестування програм та комплексів.
5. Контрольні запитання
5.1 У яких випадках застосовуються методики тестування розбиття по еквівалентності та граничних значень?
5.2 Для визначення яких типів помилок застосовується метод функціональних діаграм (діаграм причин - наслідків)?
6. Узагальнення та систематизація вмінь і навичок.
7. Підведення підсумків заняття.
8. Самостійна робота: за розглянутим прикладом самостійно виконати завдання та відповісти на контрольні запитання.