
- •А. Содержание
- •С. Лист учета экземпляров
- •Пояснительная записка
- •Тематический план
- •Перечень практических работ
- •Практическая работа № 1
- •Практическая работа № 2
- •Задание:
- •Практическая работа № 3
- •Практическая работа № 4
- •Практическая работа № 5
- •1.2Нужно составить программу, которая создавала бы случайным образом двумерный массив с девятью элементами и вычисляла сумму этих элементов.
- •Практическая работа №6
- •Задание:
- •Практическая работа №7
- •Практическая работа №8
- •Задание:
- •Практическая работа №9
- •Практическая работа №10
- •Перечень литературы и технических средств обучения
Задание:
Составить тесты для проверки программы, используя методы покрытия операторов и покрытия условий. Сформировать список ошибок, которые могут быть выявлены этими тестами.
Задача: вычислить значение функции:
Программа должна быть составлена с применением пользовательских процедур и функций.
Спецификация программы:
Название задачи: функция
Название программы: func1
Система программирования: Turbo Pascal 7.0
Системные требования: IBM PC/AT 286 и выше
Входные данные:
Действительное число – аргумент функции
Выходные данные:
Вычисленное значение функции.
Постановка задачи:
Нужно составить программу, которая бы в зависимости от введенного с клавиатуры значения аргумента вычисляла бы значение функции. Необходимо предусмотреть контроль ввода значений. Также, необходимо, используя метод покрытия операторов и метод покрытия условий, составить набор тестов, направленных на обнаружение возможных ошибок.
Спецификация переменных:
Имя переменной в программе |
Назначение переменной в программе |
Тип переменной |
Диапазон типа |
x |
Значение аргумента функции |
Real |
0..1 |
Good |
Булева переменная, сигнализирующая об успешном преобразовании введенного с клавиатуры значения |
Boolean |
2.9e-39..1.7e38 |
Текст программы:
program func1;
Uses Crt;
var
x : real;
Good : boolean;
procedure Header;
begin
WriteLn ('Вычислим значение функции');
WriteLn (' Y = x^3, при x < 0, затем x = x + 1');
WriteLn (' Y = √2x+1, при 0 <= x <= 2');
WriteLn (' 3x-1');
WriteLn (' Y = ─────, при x > 2');
WriteLn (' Cos x');
WriteLn;
end; {procedure Header}
procedure ClrPlace;
var
i : byte;
begin
WriteLn;
WriteLn ('Нажмите для выхода любую клавишу...');
ReadKey;
GotoXY(1,8);
for i := 1 to 5 do
begin
ClrEol;
Writeln;
end;
GotoXY(1,8);
end; {procedure ClrPlace}
procedure Entering;
var
XStr : string;
Code : integer;
begin
Write ('Введите значение X: ');
Read (XStr);
Val (XStr,x,Code);
if Code <> 0 then
begin
Good := false;
WriteLn ('Ошибка в ',Code,' позиции');
ClrPlace;
end
else Good := true;
end; {procedure Entering}
procedure OutCount(x:real);
var
i : byte;
begin
i := 0;
if x < 0 then
begin {x < 0}
WriteLn ('X = ',x);
WriteLn ('Y = ',x*x*x+1);
end
else
if ((x >= 0) AND (x <= 2)) then
begin {0<=x<2}
WriteLn ('X = ',x);
WriteLn ('Y = ',SQRT(2*x+1));
end
else if x > 2 then
begin {x > 2}
WriteLn ('X = ',x);
if Cos(x)=0 then WriteLn ('Ф-ция в этой точке не определена')
else WriteLn ('Y = ',(3*x-1)/Cos(x));
end;
ReadKey;
end;{procedure OutCount}
begin
ClrScr;
Header;
Entering;
if Good = true then OutCount(x);
end.
Набор тестов:
Метод покрытия операторов
Тест 1
Определяет, будет ли выполнен оператор вывода на экран сообщения «М должно быть меньше N», когда m > n
Входные данные: m=3; n=2
Тест 2
Определяет, будет ли выполнен оператор вывода на экран сообщения «М должно быть меньше N», когда m = n
Входные данные: m=3; n=3
Тест 3
Определяет, будут ли производиться вычисления, когда входные данные содержат хотя бы одно отрицательное число.
Входные данные: m=-1; n=5
Тест 4
Определяет, будут ли производиться вычисления, когда входные данные содержат хотя бы один ноль.
Входные данные: m=0; n=2
Тест 5
Определяет, будет ли выполнен оператор Factor := 1 в функции Factor, если во входных данных содержится хотя бы одна единица.
Входные данные: m=1; n=5
Тест 6
Определяет, будет ли выполнен оператор Factor := a*Factor(a-1) в функции Factor, если во входных данных содержится хотя бы одно число, удовлетворяющее условию a > 1
Входные данные: m=2; n=4
Метод покрытия решений
Тест 7
Определяет, будет ли выполнен оператор вывода на экран сообщения «М должно быть меньше N», когда m > n
Входные данные: m=3; n=2
Тест 8
Определяет, будет ли выполнен оператор вывода на экран сообщения «М должно быть меньше N», когда m < n
Входные данные: m=2; n=3
Тест 9
Определяет, будет ли выполнен оператор вывода на экран сообщения «М должно быть меньше N», когда m = n
Входные данные: m=3; n=3
Тест 10
Определяет, будет ли выполнен оператор вывода на экран сообщения «М должно быть меньше N», когда m ≠ n
Входные данные: m=3; n=2
Тест 11
Определяет, будут ли производиться вычисления, когда входные условия удовлетворяют условию m < n
Входные данные: m=1; n=5
Тест 12
Определяет, будут ли производиться вычисления, когда входные условия удовлетворяют условию m ≥ n
Входные данные: m=3; n=3
Тест 13
Определяет, будет ли выполнен оператор Factor := 1 в функции Factor, если во входных данных содержится хотя бы одна единица.
Входные данные: m=1; n=5
Тест 14
Определяет, будет ли выполнен оператор Factor := a*Factor(a-1) в функции Factor, если во входных данных содержится хотя бы одно число, удовлетворяющее условию a > 1
Входные данные: m=2; n=4
Ошибки:
Тест 1: выявляет ошибку, когда при введенных значениях m > n вычисления производятся далее.
Тест 2: выявляет ошибку, когда при введенных значениях m = n вычисления производятся далее.
Тест 3: выявляет ошибку, когда во входных данных находится отрицательное число, а вычисления производятся далее.
Тест 4: выявляет ошибку, когда во входных данных находится ноль, а вычисления производятся далее.
Тест 5: выявляет ошибку, когда находим факториал от единицы, а программа либо зацикливается, либо выводит неверный результат.
Тест 6: выявляет ошибку, когда находим факториал числа, большего единицы, а в результате получаем единицу.
Тест 7: выявляет ошибку, когда при введенных значениях m > n вычисления производятся далее.
Тест 8: выявляет ошибку, когда входные данные удовлетворяют условию m < n, а вычисления далее не производятся.
Тест 9: выявляет ошибку, когда при введенных значениях m = n вычисления производятся далее.
Тест 10: выявляет ошибку, когда входные данные удовлетворяют условию m ≠ n, а вычисления далее не производятся.
Тест 11: выявляет ошибку, когда входные данные удовлетворяют условию m < n, а вычисления далее не производятся.
Тест 12: выявляет ошибку, когда при введенных значениях m > n вычисления производятся далее.
Тест 13: выявляет ошибку, когда находим факториал от единицы, а программа либо зацикливается, либо выводит неверный результат.
Тест 14: выявляет ошибку, когда находим факториал числа, большего единицы, а в результате получаем единицу.
Контрольные вопросы
Что такое спецификация программы
Что такое постановка задачи
Что такое исходные данные задачи
Что такое тестирование
Что такое отладка программы
Для чего необходимо техническое задание
Перечислить методы тестирования, используемые в данной работе.
Перечислить ошибки, которые могут встретится при тестировании данной программы