Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЯПЗТ_Завдання_ЗПЗС-1244, ЗПЗ-101.doc
Скачиваний:
2
Добавлен:
20.11.2019
Размер:
263.68 Кб
Скачать

Лабораторна робота № 1 Розробка тестів для перевірки програми

Мета

Навчитися складати тести для перевірки програми.

Завдання

Скласти набір тестів для перевірки програми, за допомогою якої вирішується пропоноване завдання.

Варіанти індивідуальних завдань наведені у додатку А.

Порядок виконання завдання

1. Написати програму, яка обчислює значення функції згідно індивідуального завдання. Параметри функції вводяться з клавіатури. Значення обчисленої функції виводяться на екран.

Програма повинна бути складена будь-якою мовою програмування із застосуванням призначених для користувача процедур і функцій.

2. Скласти специфікацію програми та даних.

Специфікація програми може мати такий вигляд:

Назва завдання: чисельна функція

Назва програми: CalcFun

Система програмування: Turbo Pascal 7.0

Системні вимоги: IBM PC/AT 286 і вище

Специфікація даних може мати вигляд опису:

Вхідні дані

На вхід програма приймає 4 параметри:

x, a, b – параметри функції (дійсні числа)

n – ступень числа (ціле)

Значення числа x, піднесеного до ступені n, повинні належати діапазону [0..999].

Значення ступеню n повинні належати діапазону [1..100].

Якщо числа, що подаються на вхід програми, виходять за межі вказаних діапазонів, тоді повинно видаватися повідомлення про помилку.

Вихідні дані

Вихідними даними програми є обчислене значення функції y (дійсне число).

Результат обчислення виводиться на консоль.

Специфікацію даних можна також представити у вигляді таблиці:

Ім'я в програмі

Призначення в програмі

Тип

Діапазон значень

а

Константа. Параметр функції y

Real

5.75

x, b

Змінні. Параметри функції y

Real

0 – 999

n

Змінні. Ступень числа

Integer

1 – 100

3. Визначити області еквівалентності вхідних параметрів.

Наприклад, для числа x, що підводиться до ступені n, визначимо класи можливих значень для x та n:

Для x

Для n (ступені числа)

1.  x < 0 (помилкове)

2.  x > 999 (помилкове)

3.  x – не число (помилкове)

4.  0  x  999 (коректне)

5.  n < 1 (помилкове)

6.  n > 100 (помилкове)

7.   n – не число (помилкове)

8.   1  n  100 (коректне)

Приклад класів еквівалентності:

Вхідне значение

Тип

Правильний клас еквівалентності

Неправильний клас еквівалентності

n

ціле число (лічильник)

1) (0, )

2) (-, 0]

name

текст

3) будь-який не більш 10 символів

4) будь-який текст більш 10 символів

stoim

числове

4) дійсне додатнє число

5) будь-яке інше число

am_vrem

числове

6) (0, )

7) (-, 0]

am_prosh

числовое

8) (0, )

9) (-, 0]

data

дата

10) введення за шаблоном: чч.мм.гг

11) будь-яке інше значення

mesto

текст

12) текст до 255 символів

18) будь-який інший текст

4. Виконати аналіз тестових випадків.

Наприклад, фрагмент опису аналізу тестового набору (щодо параметрів x та n) може мати вигляд:

1. Вхідні значення: (x = 2, n = 3) (покривають класи 4, 8).

Очікуваний результат: y = 8.23.

2. Вхідні значення: {(x = -1, n = 2), (x = 1000, n = 5 )} (покривають класи 1, 2).

Очікуваний результат: Помилка: х повинно належати діапазону [0..999].

5. Скласти набір тестів, направлених на виявлення всіх можливих помилок обчислень.

6. Описати очікувані рішення програми для кожного набору тестових значень та відповідні повідомлення користувачеві для некоректних ситуацій. Результати можна представити у вигляді таблиці такого виду:

№ тесту

Значення параметрів

Опис ситуації

Результат

а

b

x

n

Тип

Повідомлення

1

5,75

2

5,75

8

Ділення на нуль

Рішення відсутнє. Помилка: ділення на нуль

7. Виконати тестування програми та оцінити його шляхом порівняння отриманих результатів з очікуваними результатами.

Вимоги до звіту

Структурно звіт повинен містити:

1. Титульну сторінку.

2. Тему та мету лабораторної роботи.

3. Індивідуальне завдання.

4. Області еквівалентності вхідних параметрів.

5. Аналіз тестових випадків.

6. Розроблену систему тестів та очікуваних результатів.

7. Текст програми.

8. Результати роботи програми для кожного набору тестів.

9. Висновок.

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

1. Що містить специфікація програми та специфікація даних?

2. Які існують методи тестування?

3. Для чого розробляються області еквівалентності вхідних параметрів?

4. Що містить аналіз тестових випадків?

Лабораторна робота № 2

Розробка тестів для методу покриття операторів

Завдання

Скласти тести для перевірки програми, використовуючи метод покриття операторів.

Теоретичні відомості

Рекомендується для складання системи тестів по методу покриття операторів зробити аналітичний профіль програми. Для цього необхідно пронумерувати оператори та розробити такий набір тестових значень, щоб він покрив всі можливі оператори програми.

Опис тестів можна представити одним із способів:

– у вигляді послідовного опису;

– у вигляді таблиці;

– матрицею покриття.

а) Послідовний опис тестів:

Тест 1

Визначає, чи буде виконаний оператор виведення на екран повідомлення «А повинно бути менше N», коли а > n.

Вхідні дані: а=3; n=2

Покриття операторів: 1-20, 25-28, 40-45.

Тест 3

Визначає, чи проводитимуться обчислення, коли вхідні дані містять хоч би одне від'ємне число.

Вхідні дані: а=-1; n=5

Покриття операторів: 1-20, 29-33, 40-45.

Тест 4

Визначає, чи проводитимуться обчислення, коли вхідні дані містять хоч би один нуль.

Вхідні дані: а=0; n=2

Тест 6

Визначає, чи буде виконаний оператор Factor := a*Factor(a-1) у функції Factor, якщо вхідні дані містять хоча б одне число, що задовольняє умові а > 1.

Вхідні дані: а=2; n=4

Покриття операторів 1-20, 35-45.

б) опис тестів у таблиці:

№ тесту

Вхідні дані

Опис тесту

Покриття операторів

а

n

1

3

2

Визначає, чи буде виконаний оператор виведення на екран повідомлення «А повинно бути менше N», коли а ≥ n

1-20

25-28

40-45

в) Опис тестів можна представити у вигляді матриці покриття тестує мого коду програми.

Наприклад, для фрагмента програми, що є функцією знаходження коріння квадратного рівняння виду ax2+bx+c=0, матриця покриття операторів може мати вигляд:

Рядок коду

Тест

1

2

3

4

5

1

double Equation(int Print, float A, float B, float C, float X1, float X2)

2

float D = B * B – 4.0 * A * C;

+

+

+

+

+

3

If (D >= 0 ) {

+

+

+

+

+

4

X1 = ( –B + sqrt(D)) / 2.0 / A;

+

+

5

X2 = ( –B + sqrt(D)) / 2.0 / A; } else {

+

+

6

X1 = –B / 2.0 / A;

+

+

+

7

X2 = sqrt(D); }

+

+

+

8

If (Print)

+

+

+

+

+

9

Printf("Soluton: %f, %f\n", X1, X2;

+

+

+

+

10

return D

+

+

+

+

+

11

}

В матриці покриття знаком «+» помічені оператори, що виконуються тестом, сірим кольором помічені директиви сопроцесора (не оператори!).