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

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

Тема: Использование метрик для оценки ПО

Цель: научиться использовать метрики для оценки ПО

Источники:

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

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

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

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

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

Задание:

Написать программу, в которой создается случайным образом двумерный массив A[3][3], вычисляется сумма элементов, на экран выводится созданный массив в виде таблицы и значение суммы.

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

  • Название задачи: подсчет элементов массива

Название программы: lab3

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

Системные требования: IBM PC/AT 286 и выше

  • Входные данные:

нет

  • Выходные данные:

Созданный случайным образом двумерный массив A[3,3];

Сумма элементов массива.

  1. Постановка задачи:

1.2Нужно составить программу, которая создавала бы случайным образом двумерный массив с девятью элементами и вычисляла сумму этих элементов.

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

A[3,3] – массив случайных чисел типа Byte

i – индекс строк массива, тип Byte

j – индекс столбцов массива, тип Byte

s – счетчик, накапливающий сумму элементов массива, тип Word

  1. Блок-схема программы:

  2. Текст программы:

program lab3;

uses crt;

var

a :array [1..3,1..3] of Byte ;

s, j : Byte;

i : Word;

begin

ClrScr;

Randomize;

s := 0;

for i := 1 to 3 do

begin

WriteLn;

for j := 1 to 3 do

begin

a[i,j] := round(random(100));

s := s+a[i,j];

Write (a[i,j]:3);

end;

end;

WriteLn;

Write ('Сумма элементов = ',s);

ReadLn;

end.

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

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

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

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

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

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

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

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

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

Тема: Разработка ПО

Цель: научиться разрабатывать ПО по заданным условиям

Источники:

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

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

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

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

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

Задание:

Составить тесты для проверки программы, используя методы покрытия операторов и покрытия условий. Сформировать список ошибок, которые могут быть выявлены этими тестами.

Задача: Вычислить число сочетаний из N по M по формуле:

, при N >M

Значения M и N вводятся с клавиатуры. Результат вывести на экран.

Программа должна быть составлена с применением пользовательских процедур и функций.

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

  • Название задачи: сочетание

Название программы: statist

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

Системные требования: IBM PC/AT 286 и выше

  • Входные данные:

Два целых числа – члены сочетания

  • Выходные данные:

Вычисленное по формуле число сочетаний.

Постановка задачи:

Нужно составить программу, которая по двум введенным с клавиатуры числам, являющимся членами сочетания, вычисляла бы число сочетаний по формуле . Также, необходимо, используя метод покрытия операторов и метод покрытия условий, составить набор тестов, направленных на обнаружение возможных ошибок.

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

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

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

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

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

m

Первый член сочетания, положительная переменная

Integer

-32768..32767

n

Второй член сочетания, положительная переменная

Integer

-32768..32767

res

Вспомогательная положительная переменная, используемая для хранения результата

Real

2.9e-39..1.7e38

Текст программы:

program Statist;

Uses Crt;

var

n, m : integer;

res : real;

procedure header;

begin

ClrScr;

Writeln (' N!');

Write ('Вычислим значение выражения: ─────────');

WriteLn (', при N > M');

Writeln (' M!*(N-M)!');

end; {procedure header}

function factor(a:integer):longint;

begin

if a = 1 then factor := 1

else factor := a*factor(a-1);

end; {function factor}

begin {program}

Header;

m := 0;

n := 0;

repeat

Write ('Введите значение M: ');

ReadLn (m);

Write ('Введите значение N: ');

ReadLn (n);

if (m >= n) then WriteLn ('M должно быть меньше N');

until m < n;

res := (factor(n)/(factor(m)*factor(n-m)));

Write ('Значение выражения: ',res);

ReadKey;

end. {program}

Набор тестов:

Метод покрытия операторов

Тест 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: выявляет ошибку, когда находим факториал числа, большего единицы, а в результате получаем единицу.

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

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

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

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

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

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

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

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

  8. Перечислить ошибки, которые могут встретится при тестировании данной программы