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

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

  • В некоторых строках кода были пропущены «;»;

  • Вывод по образцу один был ошибочно помещён в модуль obivl.

После визуального контроля корректности программы мной был проведён синтаксический контроль с помощью, встроенного в оболочку TURBO PASCAL 7.0, компилятора (использовался режим Compile). Компилятор выявил следующие ошибки:

  • Несовпадение имени модуля NOTRI с именем заданным в основной программе.

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

Затем было проведено тестирование на тестах, представленных в пункте 1.8.

Мной использовался метод нисходящего тестирования.

Тестирование основной программы:

Код всех трех функций-модулей был заменен на «заглушки»:

Текст модулей-«заглушек» (модуль obivl не представлен так как изменения в нем не требуются):

UNIT SRED;

Interface

uses obivl;

Function SredB(A: mas;n:integer):real;

implementation

Function SredB;

var

s:real;

begin

s:=4;

SredB:=s;

end.

UNIT NOTRI;

interface

uses obivl;

Function kolVS3(A:mas;n:integer):integer;

implementation

Function kolVS3;

var

bt:integer;

BEGIN

bt:=2;

kolVS3:=bt;

END.

UNIT NEUS;

INTERFACE

uses obivl;

Function NEUSP(A:mas;n:integer):boolean;

IMPLEMENTATION

Function NEUSP;

VAR

dv:boolean;

BEGIN

dv:= false;

neusp:=dv;

END.

Тестирование основной программы дало следующие результаты:

№ теста, назначение

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

(значения функций)

Результат

SredB

kolVS3

neusp

1. получение положительного результата

4,5

2

false

Группа попадает на конкурс лучших групп

2. получение отрицательного результата (количество троечников больше половины)

3

3

true

Группа не попадает на конкурс лучших групп

Тестирование основной программы на разработанных тестах показало корректные результаты.

Тестирование подпрограмм-функций:

Каждый модуль-«заглушка» по очереди был заменен на реальный модуль.

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

Для проверки алгоритма и структуры программы был применен метод тестовых счётчиков.

Мной были вставлены счетчика в начало и конец алгоритма, на каждую ветвь ветвления в каждый цикл.

Код программы с вставленными счётчиками:

Program konkurs_mod;

uses obivl,sred,notri,neus;

Var l1,l2,l3:integer;

Begin

l1:=0;

l2:=0;

l3:=0;

writeln (F2, 'РЕЗУЛЬТАТ');

for i:=1 to 5 do

begin

for j:=1 to 5 do

read(f1,a[i,j]);

readln(f1);

end;

read (f1,n);

srb:=SredB(a,n);

bt:=kolvs3(a,n);

dv:=neusp(a,n);

if ((dv=false) and (bt<(n/2)) and (srb>4)) then

begin

l1:=l1+1;

writeln(f2,'Группа попадает на конкурс лучших групп')

end

else

begin

l2:=l2+1;

writeln(f2, 'Группа не попадает на конкурс лучших групп');

end;

l3:=l3+1;

writeln (f2, l1, ' ',l2, ' ',l3);

close (f1);

close (f2);

end.

Результаты тестирования с счётчиками:

теста, назначение

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

Результат

Показания счётчиков

A

N

L1

L2

L3

1. получение положительного результата

3 4 5 4 3

5 5 4 5 5

4 3 3 4 4

4 4 4 5 5

5 5 5 5 4

5

Группа попадает на конкурс лучших групп

1

0

1

2. получение отрицательного результата

3 4 3 4 3

5 5 4 4 5

4 3 3 3 4

4 2 3 3 5

4 4 4 4 4

5

Группа не попадает на конкурс лучших групп

0

1

1

Суммарное показание счётчиков

1

1

2

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

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