
- •А. Содержание
- •С. Лист учета экземпляров
- •Пояснительная записка
- •Тематический план
- •Перечень практических работ
- •Практическая работа № 1
- •Практическая работа № 2
- •Задание:
- •Практическая работа № 3
- •Практическая работа № 4
- •Практическая работа № 5
- •1.2Нужно составить программу, которая создавала бы случайным образом двумерный массив с девятью элементами и вычисляла сумму этих элементов.
- •Практическая работа №6
- •Задание:
- •Практическая работа №7
- •Практическая работа №8
- •Задание:
- •Практическая работа №9
- •Практическая работа №10
- •Перечень литературы и технических средств обучения
Практическая работа № 3
Тема: Использование компонентных диаграмм
Цель: научиться использовать при проведении тестирования в программах метод компонентных диаграмм
Источники:
Рудаков А.В. Технологии разработки программных продуктов.- ОИЦ «Академия», 2010
Технологии разработки программного обеспечения/С.А.Орлов, - СПб: "Питер", 2004.
Бажин И.И. Информационные системы менеджмента. - М. ГУ-ВШЭ, 2000.
Оборудование: ПК, ООП, язык программирования, среда разработки.
Ход и содержание работы:
Задание:
Составить спецификацию программы (обязательно включающую блок-схему алгоритма). Написать программу, в которой вычисляется
Y
=
Спецификация программы:
Название задачи: Вычисление выражение
Название программы: lab2
Система программирования: Turbo Pascal 7.0
Системные требования: IBM PC/AT 286 и выше
Входные данные:
x – действительное число
Выходные данные:
Вычисленное выражение по формуле:
(1-x)/(SQRT(x*x-105))
Постановка задачи:
Нужно составить программу, которая после ввода с клавиатуры числа, значение которого присваивается переменной, проверяла бы удовлетворяет ли введенное значение условию задачи и, затем, если введено допустимое значение, вычисляла бы значение выражения (1-x)/(SQRT(x*x-105)). Необходимо учесть, что при x2 = 105 знаменатель выражения обращается в ноль, обращая все выражение в ∞, а при x2 < 105 выражение не имеет действительных решений.
Спецификация переменных:
Имя переменной в программе |
Назначение переменной в программе |
Тип переменной |
Диапазон типа |
X |
Исходное число |
Real |
2.9E–39..1.7E+38 |
Y |
Хранение результата вычислений |
Real |
2.9E–39..1.7E+38 |
Текст программы:
Program lab2;
Uses Crt;
var
x, y: real;
begin
ClrScr;
Repeat
Write ('Введите значение X: ');
Readln (x);
if x*x<=105 then
Writeln ('значение X^2 должно быть > 105');
until x*x>105;
y:=((1-x)/(SQRT(x*x-105)));
WriteLn ('Результат: ',y);
ReadLn;
end.
Контрольные вопросы
Что такое спецификация программы
Что такое постановка задачи
Что такое исходные данные задачи
Что такое тестирование
Что такое отладка программы
Для чего необходимо техническое задание
Перечислить методы тестирования, используемые в данной работе.
Практическая работа № 4
Тема: Создание СOM-объектов
Цель: научиться создавать COM-объекты при проведении тестирования в программах.
Источники:
Рудаков А.В. Технологии разработки программных продуктов.- ОИЦ «Академия», 2010
Технологии разработки программного обеспечения/С.А.Орлов, - СПб: "Питер", 2004.
Бажин И.И. Информационные системы менеджмента. - М. ГУ-ВШЭ, 2000.
Оборудование: ПК, ООП, язык программирования, среда разработки.
Ход и содержание работы
Составить тесты для проверки программы, используя метод покрытия операторов и метод покрытия решений. Сформировать список ошибок, которые могут быть выявлены этими тестами.
Задача:
написать программу, вычисляющую значения
выражения
,
где
Значения переменных k, z вводятся с клавиатуры. Результат выводится на экран.
Программа должна быть составлена с применением пользовательских процедур и функций.
Спецификация программы:
Название задачи: функция
Название программы: func
Система программирования: Turbo Pascal 7.0
Системные требования: IBM PC/AT 286 и выше
Входные данные:
Два действительных числа – переменные.
Выходные данные:
Вычисленное значение функции в точке.
Постановка задачи:
Нужно составить программу, которая бы вычисляла значение функции после проверки допустимости значений. Используя методы покрытия операторов и покрытия решений необходимо составить набор тестов, направленных на обнаружение возможных ошибок. Также необходимо сформировать список ошибок.
Спецификация переменных:
Имя переменной в программе |
Назначение переменной в программе |
Тип переменной |
Диапазон типа |
K |
Показатель степени функции |
Real |
2.9e-39..1.7e38 |
Z |
Коэффициент, образующий аргумент функции |
Real |
2.9e-39..1.7e38 |
X |
Аргумент функции |
Real |
2.9e-39..1.7e38 |
Y |
Значение функции |
Real |
2.9e-39..1.7e38 |
Текст программы:
program func;
Uses Crt;
var
k, z, x, y : real;
procedure Header;
begin
WriteLn ('Нахождение значения функции Y=Ln^k(1+X),');
WriteLn ('где X=k*z^3 при k<1');
WriteLn (' X=z*(z+1) при k>=1');
WriteLn;
end; {procedure Header}
procedure XValue(k,z:real; var x:real);
begin
if k < 1 then x := k*(z*z*z)+1
else x := z*(z+1)+1;
end; {procedure XValue}
procedure OutCount;
begin
if x <= 0 then
begin
WriteLn ('X = ',x,': функция в этой точке не определена');
Exit;
end
else if k = 0 then
begin
WriteLn ('Y = 1');
Exit;
end
else
begin
y := exp(ln(ln(x))*k);
Write ('Y= ',y);
end;
end; {procedure OutCount}
begin
ClrScr;
Header;
Write ('Введите значение k: ');
ReadLn (k);
Write ('Введите значение z: ');
ReadLn (z);
XValue(k,z,x);
OutCount;
ReadKey;
end.
Набор тестов (тестирование):
Метод покрытия операторов
Очевидно, что выполнить все операторы можно, подобрав тестовые значения, при которых будут выполнены все ветви функции Valid, где происходит сравнение с нулем переменной a и функции Dis. Остальные части программы имеют линейную структуру и при выполнении программы будут выполнены в любом случае. Таким образом, подобрав значения переменных, при которых истинны пары условий a = 0, Dis < 0
a = 0, Dis > 0
a ≠ 0, Dis < 0
a ≠ 0, Dis > 0, выполним каждый оператор программы. Первую пару можно не рассматривать, т.к. при a = 0 нет смысла переходить к проверке значения дскриминанта, т. е. необходимо провести три теста:
Тест 1
Определяет, будет ли выполнен оператор вывода на экран сообщения «Уравнение линейное», когда a = 0
Входные данные: a=0, b=2, c=3
Тест 2
Определяет, будет ли выполнен оператор вывода на экран сообщения «Уравнение не имеет действительных корней», когда a ≠ 0, dis < 0
Входные данные: a=3, b=2, c=4
Тест 3
Определяет, будет ли выполнена функция Results, когда a ≠ 0, dis > 0
Входные данные: a=2, b=5, c=3
Метод покрытия решений
Для того, чтобы каждое решение приняло значение ИСТИНА либо ЛОЖЬ хотя бы один раз, достаточно трех тестов, когда a = 0; a ≠ 0, Dis < 0; a ≠ 0, Dis > 0:
Тест 4
Определяет, будет ли выполнен оператор вывода на экран сообщения «Уравнение линейное», когда a = 0
Входные данные: a=0, b=3, c=-2
Тест 5
Определяет, будет ли выполнен оператор вывода на экран сообщения «Уравнение не имеет действительных корней», когда a ≠ 0, dis < 0
Входные данные: a=3, b=2, c=1
Тест 6
Определяет, будет ли выполнена функция Results, когда a ≠ 0, dis > 0
Входные данные: a=2, b=4, c=1
Ошибки:
Тест 1: выявляет ошибку, когда при введенном a=0 вычисления производятся далее.
Тест 2: выявляет ошибку, когда при значении Dis < 0 вычисления производятся далее.
Тест 3: выявляет ошибку, когда при значениях a≠0, Dis > 0 вычисления далее не производятся.
Тест 4: выявляет ошибку, когда при введенном a=0 вычисления производятся далее.
Тест 5: выявляет ошибку, когда при значении Dis < 0 вычисления производятся далее.
Тест 6: выявляет ошибку, когда при значениях a≠0, Dis > 0 функция Valid не возвращает значение true и вычисления далее не производятся.
Контрольные вопросы
Что такое спецификация программы
Что такое постановка задачи
Что такое исходные данные задачи
Что такое тестирование
Что такое отладка программы
Для чего необходимо техническое задание
Перечислить методы тестирования, используемые в данной работе.