- •Розділ 1 структурне тестування програмного забезпечення
- •Тема 1.1 Класифікація принципів тестування програмного забезпечення
- •1. Структурні критерії (клас і)
- •2. Функціональні критерії (клас II)
- •3. Стохастичні критерії (клас III)
- •4. Мутаційний критерій (клас IV)
- •Тема 1.2 Переваги та недоліки принципів тестування
- •Тема 1.3 Кроки способу тестування базового шляху
- •Тема 1.4 Спосіб тестування потоків даних
- •Тема 1.5 Тестування вкладених циклів
- •Розділ 2 функціональне тестування програмного забезпечення
- •Тема 2.1 Спосіб тестування діаграм причин-наслідків
- •Тема 2.2 Тестування елементів
- •Тема 2.3 Переваги та недоліки низхідного та висхідного тестування
- •Тема 2.4 Стресове тестування та тестування виробності
- •Тема 2.5 Переваги та недоліки різних методів відлагодження
Тема 1.4 Спосіб тестування потоків даних
Завдання: законспектувати тему до зошита у вигляді відповідей на контрольні запитання, що містяться в кінці теми.
У попередніх способах тести будувалися на основі аналізу керуючої структури програми. У даному способі аналізу піддається інформаційна структура програми.
Роботу будь-якої програми можна розглядати як обробку потоку даних, переданих від входу в програму до її виходу.
Розглянемо приклад.
Нехай потоковий граф програми має вигляд, представлений на мал. 1.2. У ньому суцільні дуги - це зв'язки по керуванню між операторами в програмі. Пунктирні дуги відзначають інформаційні зв'язки (зв'язку по потоках даних). Позначені тут інформаційні зв'язки відповідають наступним допущенням:
1)у вершині 1 визначаються значення змінних а, b;
2)значення змінної а використається у вершині 4;
4)значення змінної b використається у вершинах 3, 6;
5)у вершині 4 визначається значення змінної с, що використається у вершині 6.
Мал. 1.2 Граф програми з керуючими й інформаційними зв'язками
У загальному випадку для кожної вершини графа можна записати:
1)множину визначень даних
DEF(i) = { х | i -та вершина містить визначення х};
2) множина використань даних:
USE (i) = { х | i -та вершина використає х}.
Під визначенням даних розуміють дії, що змінюють елемент даних. Ознака визначення - ім'я елемента стоїть в лівій частині оператора присвоювання:
x:=f(…)...
Використання даних — це застосування елемента у виразі, де відбувається звертання до елемента даних, але не зміна елемента. Ознака використання - ім'я елемента стоїть в правій частині оператора присвоювання:
:=f(x).
Тут місце підстановки іншого імені відзначено прямокутником (прямокутник відіграє роль мітки-заповнювача).
Назвемо DU-ланцюжком (ланцюжком визначення-використання) конструкцію
[х, i,j], де i,j — імена вершин; х визначена в i-тій вершині (х DЕ(i)) і використається в j -ій вершині (х USE(j)).
У нашому прикладі існують наступні DU-ланцюжки:
[а,1,4],[b, 1,3], [b, 1,6], [с, 4, 6].
Спосіб DU-тестування вимагає охоплення всіх DU-ланцюжків програми. Таким чином, розробка тестів тут проводиться на основі аналізу життя всіх даних програми.
Очевидно, що для підготовки тестів потрібне виділення маршрутів - шляхів виконання програми на керуючому графі. Критерій для вибору шляху - покриття максимальної кількості DU-ланцюжків.
Кроки способу DU-тестування:
1) побудова керуючого графа (КГ) програми;
2) побудова інформаційного графа (ІГ);
3) формування повного набору DU-ланцюжків;
4) формування повного набору відрізків шляхів у керуючому графі (відображенням набору DU-ланцюжків інформаційного графа, мал. 1.3);
Мал. 1.3. Відображення DU-ланцюжка у відрізок шляху
5) побудова маршрутів — повних шляхів на керуючому графі, що покривають набір відрізків шляхів керуючого графа;
6) підготовка тестових варіантів.
Достоїнства DU-тестування:
1. простота необхідного аналізу операційно-керуючої структури програми;
2. простота автоматизації.
Недолік DU-тестування: труднощі у виборі мінімальної кількості максимально ефективних тестів.
Область використання DU-тестування: програми із вкладеними умовними операторами й операторами циклу.
Контрольні запитання:
На чому заснований спосіб тестування потоків даних?
Що представляє собою визначення даних?
Що представляє собою використання даних?
Що таке DU – ланцюжок?
Які кроки DU – тестування?
Наведіть достоїнства, недоліки та область застосування тестування потоків даних.