- •1. Теоретична частина.
- •1.1. Теоретичне питання 1.
- •1.2 Теоретичне питання 2. Категорії програмних помилок. Документування та аналіз помилок. Способи відтворення помилки.
- •2. Практична частина.
- •2.1. Лабораторна робота № 1. Розробка тестів для перевірки програми
- •Специфікація програми має такий вигляд:
- •Специфікація даних має вигляд опису:
- •Визначити області еквівалентності вхідних параметрів.
- •Аналіз тестових випадків.
- •Текст програми.
- •Розроблена система тестів та очікуваних результатів.
- •2.2. Лабораторна робота № 2. Тема: Розробка тестів для методу покриття операторів.
- •Опис тестів.
- •Текст програми.
- •Список помилок, які можуть бути виявлені тестами.
- •2.3. Лабораторна робота № 3. Тема: Розробка тестів для методу покриття рішень.
- •Опис тестів.
- •Опис помилок, які можуть бути виявлені тестами.
- •Текст програми.
- •Висновок.
- •Використані джерела.
Специфікація програми має такий вигляд:
Назва завдання: чисельна функція Назва програми: Lab 1 Система програмування: Turbo Pascal 7.0 Системні вимоги: IBM PC/AT 286 і вище |
Специфікація даних має вигляд опису:
Вхідні дані На вхід програма приймає 3 параметри: x, a, b – параметри функції (дійсні числа) Значення числа x, повинні належати діапазону [0..999]. Якщо числа, що подаються на вхід програми, виходять за межі вказаних діапазонів, тоді повинно видаватися повідомлення про помилку. Вихідні дані Вихідними даними програми є обчислене значення функції y (дійсне число). Результат обчислення виводиться на консоль. |
Визначити області еквівалентності вхідних параметрів.
Визначимо класи можливих значень для x,a:
Для x |
Для а |
1. x < 0 (помилкове) 2. x > 999 (помилкове) 3. x – не число (помилкове) 4. 0 x 999 (коректне) |
5. a < 1 (помилкове) 6. a > 100 (помилкове) 7. a – не число (помилкове) 8. 1 a 100 (коректне) |
Аналіз тестових випадків.
Фрагмент опису аналізу тестового набору (щодо параметрів x та а) може мати вигляд:
1. Вхідні значення: (x = 2, а = 3) (покривають класи 4, 8). Очікуваний результат: y = 6.23. 2. Вхідні значення: {(x = -1, а = 2), (x = 1000, а = 5 )} (покривають класи 1, 2). Очікуваний результат: Помилка: х повинно належати діапазону [0..999]. |
Текст програми.
program lab;
var x,a,b:integer; y:real; begin write ('vvedit x,a,b:'); read(x,a,b); readln; if x>0 then y:=(x-sqrt(a))/(b*sin(x)) else y:=(ln(abs(2-x))*exp(x))/(a*x); writeln ('otvet:',y:5:2); readln; end. |