Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Темы на модуль(самостоялка).doc
Скачиваний:
1
Добавлен:
25.11.2019
Размер:
173.57 Кб
Скачать

Тема 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-тестування: програми із вкладеними умовними операторами й операторами циклу.

Контрольні запитання:

  1. На чому заснований спосіб тестування потоків даних?

  2. Що представляє собою визначення даних?

  3. Що представляє собою використання даних?

  4. Що таке DU – ланцюжок?

  5. Які кроки DU – тестування?

  6. Наведіть достоїнства, недоліки та область застосування тестування потоків даних.