Достигнут 3-ий уровень корректности программы. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Достигнут 3-ий уровень корректности программы.



Отладка программы модульной структуры:

 

Как и в отладке программы блочной структуры я начал с визуального контроля, но большая часть ошибок уже была мной исправлена. Я заметил, что перепутал местами служебные слова INTERFACE и IMPLEMENTATION, тем самым допустив синтаксическую ошибку.

Далее я осуществил синтаксический контроль программы, используя тип компиляции make. Компиляция прошла с ошибкой. я забыл исправить синтаксические ошибки, которые по моей невнимательности перешли из блочной структуры в модульную.

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

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

 

 

 Мною была проверена основная программа, а подпрограммы заменены «заглушками»:

 

Проверка основной программы:

 

UNIT OBIVL;

INTERFACE

TYPE MATRICA=array[1..5,1..6] of real;

 MASSIV=array[1..6] of real;

VAR A,B:MATRICA;

K:MASSIV;

i,j:integer;

f1,f2:text;

IMPLEMENTATION

BEGIN

assign(f1,’isdan.pas');

assign(f2,'vdan.pas');

reset(f1);

rewrite(f2);

END.

 

 

UNIT PART1;

INTERFACE

USES OBIVL;

Procedure NEWMATR(Var A:MATRICA; Var K:MASSIV);

Function STR(Var K:integer):integer;

IMPLEMENTATION

Procedure NEWMATR;

Begin

K[1]:=1; K[2]:=4; K[3]:=0; K[4]:=0; K[5]:=0

End;

Function STR(Var K:integer):integer;

Begin

imax:=1;

     STR:=imax

End

END;

 

Program tipovik_v2_mod;

USES OBIVL,PART1,PART2;

Begin

For i:=1 to 5 do

begin

For j:=1 to 6 do

   Read(f1,A[i,j]);

Readln(f1)

end;

Writeln(f2,' ':35,'Результаты');

Writeln(f2);

MASK(A,K);

If STR(K,6)=1 Then

begin

NEWMATR(A,B);

Writeln(f2,' ':20,'SR1=',SR1:6:1,' ':15,'SR2=',SR2:6:1);

end

else

Write(f2,'Наибольшее кол-во эл-тов не в первой строке');

close(f1);

close(f2) 

 End.

 

Тестирование главной программы прошло успешно. Далее было проведено тестирование сегментов-процедур (заглушки я заменял текстами соответствующих подпрограмм,  пока не были устранены все заглушки).

Результаты полученные в программе на том же наборе тестов не отличаются от результатов которые я посчитал - следовательно все подпрограммы работают корректно.

 

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

 

Program tipovik_v2_mod;

USES OBIVL,PART1,PART2;

VAR sch1,sch2,sch3:integer;

BEGIN

sch1:=0;

sch2:=0;

sch3:=0;

assign(f1,'isdan.pas');

assign(f2,'vdan.pas');

reset(f1);

rewrite(f2);

For i:=1 to 5 do

begin

  For j:=1 to 6 do

   Read(f1,A[i,j]);

Readln(f1)

end;

Writeln(f2,' ':35,'Результаты');

Writeln(f2);

MASK(A,K);

If STR(K,6)=1 Then

Begin

sch1:= sch1+1;

NEWMATR(A,B);

Writeln(f2,' ':20,'SR1=',SR1:6:1,' ':15,'SR2=',SR2:6:1);

end

else

begin

  sch2:= sch2+1;

  Write(f2,‘Наибольшее кол-во эл-тов не в первой строке')

end;

sch3:= sch3+3;

writeln(f2);

write(f2,sch1,’ ’,sch2,’ ’,sch3);

close(f1);

close(f2) 

 End.

 

 

Значения счетчиков, полученных при тестировании:

 

1) 1 0 1

2) 0 1 1

 

Складываем:

 

1 1 2

 

Я узнал значение счетчиков при данном наборе тестов.

Очевидно, что все счетчики изменили свои значения, каждая ветвь ветвления и каждый оператор пройдены.

 

Достигнут 3-ий уровень корректности программы.

 

Визуальный контроль корректности программы:

  • В программе описаны все переменные и массивы.
  • Переменные со сходными именами отсутствуют.
  • Вычисления или операнды недопустимых типов отсутствуют.
  • Переполнения или потеря результата при вычислении значения невозможна.
  • Деление на нуль невозможно.
  • Значение переменных исходных данных не выходит за их диапазон.

· При каждом обращении выполнены правила соответствующих параметров.

· Ошибки в водимом тексте отсутствуют.

 

Синтаксический контроль корректности программы:

  • Все базовые управляющие структуры построены и закодированы корректно.

 



Поделиться:


Последнее изменение этой страницы: 2020-03-02; просмотров: 99; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.141.202.187 (0.009 с.)