Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методическое пособие ТРПП.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
493.57 Кб
Скачать

Практическая работа № 3

Тема: Использование компонентных диаграмм

Цель: научиться использовать при проведении тестирования в программах метод компонентных диаграмм

Источники:

  1. Рудаков А.В. Технологии разработки программных продуктов.- ОИЦ «Академия», 2010

  2. Технологии разработки программного обеспечения/С.А.Орлов, - СПб: "Питер", 2004.

  3. Бажин И.И. Информационные системы менеджмента. - М. ГУ-ВШЭ, 2000.

Оборудование: ПК, ООП, язык программирования, среда разработки.

Ход и содержание работы:

  1. Задание:

Составить спецификацию программы (обязательно включающую блок-схему алгоритма). Написать программу, в которой вычисляется

Y =

  1. Спецификация программы:

  • Название задачи: Вычисление выражение

Название программы: 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 выражение не имеет действительных решений.

  1. Спецификация переменных:

Имя переменной в программе

Назначение переменной в программе

Тип переменной

Диапазон типа

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.

Контрольные вопросы

  1. Что такое спецификация программы

  2. Что такое постановка задачи

  3. Что такое исходные данные задачи

  4. Что такое тестирование

  5. Что такое отладка программы

  6. Для чего необходимо техническое задание

  7. Перечислить методы тестирования, используемые в данной работе.

Практическая работа № 4

Тема: Создание СOM-объектов

Цель: научиться создавать COM-объекты при проведении тестирования в программах.

Источники:

  1. Рудаков А.В. Технологии разработки программных продуктов.- ОИЦ «Академия», 2010

  2. Технологии разработки программного обеспечения/С.А.Орлов, - СПб: "Питер", 2004.

  3. Бажин И.И. Информационные системы менеджмента. - М. ГУ-ВШЭ, 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 и вычисления далее не производятся.

Контрольные вопросы

  1. Что такое спецификация программы

  2. Что такое постановка задачи

  3. Что такое исходные данные задачи

  4. Что такое тестирование

  5. Что такое отладка программы

  6. Для чего необходимо техническое задание

  7. Перечислить методы тестирования, используемые в данной работе.