- •Міністерство освіти і науки, молоді та спорту України
- •“Затверджую”
- •Методичні вказівки для виконання практичних робіт з курсу „Тестування програмних систем і комплексів”
- •Пояснювальна записка
- •Тематика практичних занять
- •Критерії оцінювання виконання практичних робіт
- •Практична робота №1
- •1. Організаційна частина
- •2. Актуалізація опорних знань студентів:
- •3. Закріплення вмінь та навичок студентів
- •4. Основна частина заняття:
- •Приклад виконання роботи.
- •Практична робота № 2
- •Практична робота № 3
- •4. Основна частина заняття:
- •Практична робота №4
- •4. Основна частина заняття:
- •Практична робота № 5
- •4. Основна частина заняття:
- •Практична робота № 6
- •4. Основна частина заняття:
- •Приклад виконання роботи
- •Практична робота № 7
- •Приклад виконання роботи
- •5. Контрольні запитання:
- •6. Узагальнення та систематизація вмінь і навичок.
- •7. Підведення підсумків заняття.
- •Правила оформлення звітів з практичних робіт
- •Список використаних джерел
Практична робота №1
Тема. Тестування галужень та операторів відношень
Мета: навчитися використовувати різні методи тестування галужень та операторів відношень; провести порівняльний аналіз способів тестування.
Хід заняття
1. Організаційна частина
а) готовність групи до заняття;
б) психоемоційний настрій;
в) перевірка присутніх;
2. Актуалізація опорних знань студентів:
а) повідомлення теми та мети;
б) повідомлення основних тем, по яким відбувається практична робота.
3. Закріплення вмінь та навичок студентів
Теоретичні відомості. Для тестування галужень та операторів відношень можна використовувати методи структурного тестування „білого ящика”, а саме: метод базового шляху, спосіб тестування умов, а також спосіб тестування гілок та операторів відношень.
Для використання методу базового шляху необхідно виконати наступні кроки:
на основі тексту програми сформувати потоковий граф;
визначити цикломатичну складність потокового графу (по кожній з 3-х формул);
визначити базову множину незалежних лінійних шляхів;
розробити тестові варіанти для виконання кожного шляху.
Способи тестування умов містяться в тестуванні кожної гілки логічних умов програми. Простий спосіб міститься в тестуванні кожної простої умови, що входить в склад, при цьому перевіряється кожна true – та false – гілки. Інша методика тестування - тестування області визначення. При використанні даного методу необхідно виконати наступні кроки:
побудувати обмеження умов;
виявити обмеження результату по кожній простій умові;
використовуючи константні формули ОМ& або OMOR будуємо обмежуючу множину (ОМ);
для кожного елемента ОМ розробляється тестовий варіант.
4. Основна частина заняття:
Завдання. Використовуючи способи тестування, що наведені в теоретичних відомостях, виконати тестування частини програми за варіантом:
Варіант 1. ……… var a, b, c, m:real; ………… if (a>b) then m:=(a-b)*c else begin if (a=c) then m:=(a+b)*c else writeln (“Vvedite drugie chisla!”); end; |
Варіант 2. ……… var s, k, r, p:real; ………… if (s=k) then p:=(sqr(r)) else begin if (s>r)or(s>k) then p:=(s+k)*r else writeln(“p=0”); end; |
Приклад виконання роботи.
Для прикладу розглянемо тестування наступного коду:
………
var a, b, c, s:real;
…………
if (a<b) then s:=(a+b)*c
else begin
if (a>b) and(a<c)then s:=a/(b+c)
else s:=a+b+c;
end;
Тестуємо наведений код програми методом базового шляху:
П еретворюємо код в вершини та будуємо потоковий граф:
1: введення даних
2:якщо (a<b)
3: то s:=(a+b)
4:інакше якщо
5: (a>b) та (a<c)
6:то s:=a/(b+c)
7:інакше s:=a+b+c
8: кінець інакше
8: кінець програми
Розраховуємо цикломатичну складність 3-ма способами:
ЦС(1): V(G) = 9-8+2=3
ЦС(2): V(G) = 2пр.вуз.+1=3
ЦС(3): V(G) = 3 регіони
Базова множина незалежних лінійних шляхів:
Шлях 1: 1-2-3-8
Шлях 2: 1-2-4-7-8
Шлях 3:1-2-4-5-6-8
Тестові варіанти
ТВ1: ПД: а=2, в=3, с=2 Оч.рез. : s=(2+3)*2=10 |
ТВ2: ПД: а=5, в=2, с=7 Оч.рез. : s=5/(2+7)=5/9 |
ТВ3: ПД: а=5, в=2, с=2 Оч.рез. : s=5+2+2=9 |
|
Тестуємо наведений код методом тестування галужень та операторів відношень.
будуємо обмеження умов:
С1=(a<b)
C2=(a>b)and(a<c)
1.1 ОУС1=(>,<,=)
OMC1={true, false,false}
ТВ1: ПД: а=5, в=7 Оч.рез. : (a<b)=true
ТВ2: ПД: а=5, в=2 Оч.рез. : (a>b)=false
ТВ3: ПД: а=2, в=2 Оч.рез. : (a=b)=false
ОУС2=(d1, d2,d3)
d1=(>,<,=)=(true,false,false)
d2=(true,false)
d3=(>,<,=)=(false, true, false)
будуємо таблицю істинності:
& |
a<b |
a=b |
a>b |
a<c |
false |
false |
true |
a=c |
false |
false |
false |
a>c |
false |
false |
false |
1.2.3 Використовуючи правила мінімізації скорочуємо кількість тестових варіантів та будуємо обмежуючу множину:
OMC2 = {(true, false,false), (false,false,false)}
1.2.4 Складаємо тестові варіанти:
ТВ1: ПД: а=2, в=1, c=3 Оч.рез. : true
ТВ2: ПД: а=2, в=2, c=4 Оч.рез. : false
ТВ3: ПД: а=2, в=5, c=4 Оч.рез. : false
ТВ4: ПД: а=2, в=5, c=2 Оч.рез. : false
ТВ5: ПД: а=2, в=2, c=2 Оч.рез. : false
ТВ6: ПД: а=2, в=5, c=4 Оч.рез. : false
Висновок: аналізуючи використані методики тестування, можна зробити висновок, що метод базового шляху є легким, але він не враховує особливостей тестування складених операторів галуження, тому для операторів галуження варто застосовувати метод тестування галужень та операторів відношень.
Контрольні запитання
5.1 Які особливості має потоковий граф?
5.2 Поясніть поняття цикломатичної складності.
5.3 Поясніть переваги та недоліки способу тестування галужень та операторів відношень.
6. Узагальнення та систематизація вмінь і навичок.
7. Підведення підсумків заняття.
8. Самостійна робота: за розглянутим прикладом самостійно виконати завдання та відповісти на контрольні запитання.