
- •Тема 1. Якість програмного забезпечення та її характеристики.
- •Тема 2. Тестування програмного забезпечення
- •Тема 3. Чорний ящик - функціональне тестування
- •Тема 4. Тестування потоків даних програми
- •Критерій “ all-defs”
- •Критерій “all p-uses“
- •Критерій “all c-uses“
- •Критерій “all c-uses / some p-uses“
- •Критерій “all p-uses / some c-uses“
- •Критерій “all uses“ (всі використання)
- •Критерій “all du-paths”
- •Тема 5. Аналіз умов застосування функціонального й структурного тестування
- •Інтеграційне тестування компонентно-базованого програмного забезпечення
- •Ієрархія й відповідність між критеріями інтеграційного тестування
- •Тема 6. Регресивне тестування
- •Тема 7. Розробка через тестування
- •Тема 8. Тестирование удобства пользования
Тема 4. Тестування потоків даних програми
Група критеріїв для даного методу побудована на принципах досяжності й доступу до змінних.
Будемо вважати, що вираз y:=f(x1,..., xn) використовує змінні x1,...,xn для обчислювального процесу (Computational use), що позначається як c-use, при цьому даний вираз є визначення змінної у (def у).
Будемо вважати, що вираз p(x1,…,xn) використовує змінні x1,...,xn як предикати (Predicate-use), що позначається як p-use.
Шлях p=(nin,...,nm) вважається таким, що не містить визначень змінної x, якщо в ньому немає def x.
Для
вершини ni
та
змінної x,
такої що x
def(ni)
вираз
dcu(x,ni)
позначає
набір всіх вершин nj
таких,
що x
c-use(nj)
і
шлях від ni
до
nj
не
містить визначень х.
Для вершини ni та змінної x, такої що x def(ni) вираз dpu(x,ni) позначає набір всіх ребер (nj,nk), таких що x p-use(nj,nk) і шлях від nj до nk не містить визначень х.
Позначимо як du-шлях (шлях визначення-використання):
- шлях p = (ni+1,... nj, nk), що містить глобальне визначення змінної x у вершині ni, і такий, що p не містить визначень змінної х, але містить c-use(x), і всі вершини ni... nk (крім ni і nk) попарно відмінні
- або шлях p(nj, nk), що не містить визначень змінної х, але містить предикатне використання х (p-use(x)) і всі вершини ni... nk попарно відмінні.
Розглянемо критерії тестування потоків даних програми .
Критерій “ all-defs”
Даний критерій вимагає створення набору тестів, які б містили для кожної вершини ni і кожної змінної x def(ni) як мінімум один шлях, що не містить визначень х від ni до елемента з dcu(x, ni) або dpu(x, ni). Критерій забезпечує перевірку правильної ініціалізації змінних, але не дає гарантій їхнього правильного використання в обчислювальному процесі. Це завдання ставиться поетапно перед наступними критеріями.
Критерій “all p-uses“
За даним критерієм вимагається створення набору тестів, які б містили для кожної вершини ni і кожної змінної x def(ni) як мінімум один шлях, що не містить визначень х від ni до всіх елементів з dpu(x, ni).
Критерій “all c-uses“
Даний критерій вимагає створення набору тестів, які б містили для кожної вершини ni і кожної змінної x def(ni) як мінімум один шлях, що не містить визначень х від ni до елемента з dcu(x, ni)
Ці два критерії гарантують перевірку того факту, що використовувані змінні в предикатних виразах та в обчисленнях були проініціалізовані.
Критерій “all c-uses / some p-uses“
Наступне завдання полягає у відповіді на питання: чи використані всі ініціалізовані змінні в обчисленнях або хоча б у предикатних виразах. Критерій «all c-uses / some p-uses» вимагає створення набору тестів, які б містили для кожної вершини ni і кожної змінної x def(ni) як мінімум один шлях, що не містить визначень х від ni до всіх елементів з dcu(x, ni), або, якщо dcu(x, ni) - порожня множина, хоча б шлях, що не містить визначень х від ni до елемента з dpu(x, ni).
Критерій “all p-uses / some c-uses“
Даний критерій аналогічний попередньому, з тією різницею, що в ньому перевіряються входження шуканої змінної в предикатні вирази, а якщо таких не виявлено, то в обчислення.
Даний критерій вимагає створення набору тестів, які б містили для кожної вершини ni і кожної змінної x def(ni) як мінімум один шлях, що не містить визначень х від ni до всіх елементів з dpu(x, ni), або, якщо dpu(x, ni) - порожня множина, хоча б шлях, що не містить визначень х від ni до елемента з dcu(x, ni).