Студопедия — Визуальный контроль корректности программ
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

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






1.1 Обращение к данным

1) Всем переменным, к которым происходит обращения, присвоены значения.

2) Значения индексов массивов не выходят за границы указанных массивов.

3) Типы и структуры данных соответствуют своим значениям.

1.2 Описание данных

1) В программе описаны все переменные и массивы.

2) В программе нет объектов со сходными именами.

1.3 Вычисления

1) Нет вычислений с переменными недопустимых типов.

2) Нет вычислений, использующих данные разных числовых типов.

3) Потеря результата при вычислениях невозможна.

4) Скобки в выражениях расставлены с учетом порядка действий.

5) Деление на ноль невозможно. Значение переменных выходных данных не может выходить за указанный диапазон.

1.4 Операции сравнивания

1) Величины разных типов не сравниваются.

2) Операции сравнения корректны

1.5 Управление вычислениями

1) Каждый цикл завершается

2) Все фрагменты программы и отдельные операторы используются (Все ветви в ветвлениях проходятся)

3) Значения ЦУП’ов не используются после их завершения.

1.6 Межмодульный интерфейс

1) Типы формальных и соответствующих им фактических параметров совпадают.

1.7 Планирование ввода\вывода данных

1. Ввод и вывод данных соответствует формам вводы\вывода.

2. Операторы ввода\вывода записаны корректно

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

Все базовые управляющие структуры построены и закодированы корректно. Найдены и исправлены некоторые синтаксические ошибки (пропуски знака «;»).

Программой был успешно пройден этап компиляции. Компилятор программы Turbo Pascal 7.0 не обнаружил ошибок. Достигнут первый уровень корректности программы.

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

Конструкции языка программирования применены корректно.


VII. Тестирование

Проводим тестирование по ранее описанным тестам. Используется метод нисходящего тестирования. С помощью «заглушек» осуществляется проверка основной программы.

Заглушка 1

PROCEDURE NSUMS(VAR X:DM; M,N:integer; VAR SUMSX);

TYPE V=array[1..10900] of real;

Begin

V(SUMSX)[1]:=11;

V(SUMSX)[2]:=36;

V(SUMSX)[3]:=5;

V(SUMSX)[4]:=45;

V(SUMSX)[5]:=5;

End;

Заглушка 2

FUNCTION POISK(VAR SUMSX;M:integer):integer;

TYPE V=array[1..10900] of real;

VAR MINNX:integer;

Begin

MINNX:=3;

POISK:=MINNX

End;

Заглушка 3 (а)

FUNCTION SRAREFM(VAR X:DM;M:integer):real;

VAR SRX:real;

Begin

SRX:=4.8;

SRAREFM:=SRX

End;

Заглушка 3 (б)

FUNCTION SRAREFM(VAR X:DM;M:integer):real;

VAR SRX:real;

Begin

SRX:=0.0;

SRAREFM:=SRX

End;

Заглушка 4

PROCEDURE IZM(VAR X:DM; M,N:integer;VAR MINNX:integer;VAR SRX:real;VAR Y:DM);

Begin

Y[1,1]:=1; Y[1,2]:=2; Y[1,3]:=3; Y[1,4]:=4; Y[1,5]:=1;

Y[2,1]:=0; Y[2,2]:=9; Y[2,3]:=9; Y[2,4]:=9; Y[2,5]:=9;

Y[3,1]:=6; Y[3,2]:=6; Y[3,3]:=6; Y[3,4]:=6; Y[3,5]:=6;

Y[4,1]:=9; Y[4,2]:=9; Y[4,3]:=9; Y[4,4]:=9; Y[4,5]:=9;

Y[5,1]:=1; Y[5,2]:=1; Y[5,3]:=1; Y[5,4]:=1; Y[5,5]:=1

End;


 

Назначение Контрольные значения
Исходные данные Выходные данные
  Получение положительного результата выполнения программы (Вывод по образцу 2).       1 2 3 4 1 0 9 9 9 9 1 1 1 1 1 9 9 9 9 9 1 1 1 1 1   Результаты Изменяется первая строка при совпадении минимальных сумм Измененная матрица 1 2 3 4 1 0 9 9 9 9 6 6 6 6 6 9 9 9 9 9 1 1 1 1 1    
  Получение частного положительного результата (Вывод по образцу 3)   1 0 0 0 0 0 9 0 0 0 1 1 1 0 0 9 9 9 9 0 1 1 1 1 1   Результаты Среднее арифметическое равно нулю. Матрица не изменена. 1 0 0 0 0 0 9 0 0 0 1 1 1 0 0 9 9 9 9 0 1 1 1 1 1  

 

Тестирование основной программы нисходящим методом с помощью «заглушек» прошло успешно.

Следующим этапом стало тестирование программы с последовательной заменой заглушек на текст программы. Этот этап завершился успешно (результаты всех тестов совпали).

 

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


 

Программа с добавленными счетчиками

Код

PROGRAM TIPOVOY_v2;

USES CRT;

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

OM=array[1..5] of real;

COUNT=array[1..7] of integer;

VAR B,A:DM;

SRA:real;

MINNA,J,I:integer;

SUMSA:OM;

C:COUNT;

f1,f2:text;

PROCEDURE NSUMS(VAR X:DM; M,N:integer; VAR SUMSX);

TYPE V=array[1..10900] of real;

VAR I,J:integer;

C:COUNT;

Begin

C[1]:=0;

FOR I:=1 TO M DO

FOR J:=1 TO N DO

begin

V(SUMSX)[I]:=V(SUMSX)[I]+X[I,J];

C[1]:=C[1]+1

end;

WRITE(C[1],' ':1);

End;

FUNCTION POISK(VAR SUMSX;M:integer):integer;

TYPE V=array[1..10900] of real;

VAR MINNX,I:integer;

MINSUMX:real;

C:COUNT;

Begin

C[2]:=0;

MINSUMX:=V(SUMSX)[1];

MINNX:=1;

FOR I:=1 TO M DO

IF MINSUMX>(V(SUMSX)[I]) THEN

begin

C[2]:=C[2]+1;

MINSUMX:=V(SUMSX)[I];

MINNX:=I

end;

POISK:=MINNX;

WRITE(C[2],' ':1);

End;

FUNCTION SRAREFM(VAR X:DM;M:integer):real;

VAR C:COUNT;

SUMRS,SRX:real;

I,J:integer;

Begin

C[3]:=0;

SUMRS:=0;

FOR J:=2 TO M DO

FOR I:=1 TO J-1 DO

begin

SUMRS:=SUMRS+X[I,J];

C[3]:=C[3]+1

end;

SRX:=SUMRS/(((sqr(M)-M)/2));

SRAREFM:=SRX;

WRITE(C[3],' ':1);

End;

PROCEDURE IZM(VAR X:DM; M,N:integer;VAR MINNX:integer;VAR SRX:real;VAR Y:DM);

VAR J,I:integer;

C:COUNT;

Begin

C[6]:=0;

C[7]:=0;

FOR I:=1 TO M DO

IF I=MINNX THEN

FOR J:=1 TO N DO

begin

Y[I,J]:=X[I,J]+SRX;

C[6]:=C[6]+1

end

ELSE

FOR J:=1 TO N DO

begin

Y[I,J]:=X[I,J];

C[7]:=C[7]+1

end;

WRITE(C[6],' ':1);

WRITE(C[7],' ':1);

End;

BEGIN

clrscr;

ASSIGN(f1,'ISHOD.PAS');

ASSIGN(f2,'vuh.pas');

RESET(f1);

REWRITE(f2);

FOR I:=1 TO 5 DO

Begin

FOR J:=1 TO 5 DO

read(f1,A[I,J]);

readln(f1)

End;

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

C[4]:=0;

C[5]:=0;

NSUMS(A,5,5,SUMSA);

MINNA:=POISK(SUMSA,5);

SRA:=SRAREFM(A,5);

IF SRA=0 THEN

Begin

C[4]:=1;

WRITE(C[4],' ':1);

WRITE(C[5],' ':1);

WRITELN(f2,'Среднее арифметическое равно нулю');

WRITELN(f2,'Матрица не изменена');

FOR I:=1 TO 5 DO

begin

FOR J:=1 TO 5 DO

WRITE(f2,A[I,J]:4:0);

WRITELN(f2);

end

End

ELSE

Begin

C[5]:=1;

WRITE(C[4],' ':1);

WRITE(C[5],' ':1);

IZM(A,5,5,MINNA,SRA,B);

WRITELN(f2,'Изменяется первая строка при совпадении минимальных сумм');

WRITELN(f2,'Матрица B');

FOR I:=1 TO 5 DO

begin

FOR J:=1 TO 5 DO

WRITE(f2,B[I,J]:4:0);

WRITELN(f2);

end;

End;

CLOSE(f1);

CLOSE(f2);

END.







Дата добавления: 2015-08-29; просмотров: 428. Нарушение авторских прав; Мы поможем в написании вашей работы!



Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

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

Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Определение трудоемкости работ и затрат машинного времени На основании ведомости объемов работ по объекту и норм времени ГЭСН составляется ведомость подсчёта трудоёмкости, затрат машинного времени, потребности в конструкциях, изделиях и материалах (табл...

Гидравлический расчёт трубопроводов Пример 3.4. Вентиляционная труба d=0,1м (100 мм) имеет длину l=100 м. Определить давление, которое должен развивать вентилятор, если расход воздуха, подаваемый по трубе, . Давление на выходе . Местных сопротивлений по пути не имеется. Температура...

Огоньки» в основной период В основной период смены могут проводиться три вида «огоньков»: «огонек-анализ», тематический «огонек» и «конфликтный» огонек...

Примеры решения типовых задач. Пример 1.Степень диссоциации уксусной кислоты в 0,1 М растворе равна 1,32∙10-2   Пример 1.Степень диссоциации уксусной кислоты в 0,1 М растворе равна 1,32∙10-2. Найдите константу диссоциации кислоты и значение рК. Решение. Подставим данные задачи в уравнение закона разбавления К = a2См/(1 –a) =...

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

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

Studopedia.info - Студопедия - 2014-2024 год . (0.011 сек.) русская версия | украинская версия