Оптимизация, отладка и тестирование программ

Автор работы: Пользователь скрыл имя, 15 Июня 2012 в 15:03, курсовая работа

Краткое описание

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

Содержание

Введение…………………………………………………………………………4

1. Оптимизация программ………………………………………………………5

2. Отладка и тестирование программ …………………………………………8

3. Классификация ошибок в программах …..………………………………...22

4. Способы обнаружения ошибок..……………………………………………25

Заключение……………………………………………………………….……..26

Список используемых источников……………………………….………....…27

Вложенные файлы: 1 файл

Курсовой проект.doc

— 120.00 Кб (Скачать файл)

 

 

 

20

writeln('Введите число для проверки (0 - конец работы) '); readln(A);
if (A>=min)and(A<=max) then
writeln('Число ',A,' попадает в диапазон [',min,'..',max,']')
else
writeln('Число ',A,' не попадает в диапазон [',min,'..',max,']');
until A=0;
writeln;
end.

Если исходить из алгоритма программы, мы должны составить следующие тесты:
ввод границ диапазона
- min< max
- min>max
ввод числа
- A < min (A<>0)
- A > max (A<>0)
- min <= A <= max (A<>0)
- A=0

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

21

3.Классификация ошибок в программах

 

Ошибки этапа компиляции
Ошибки этапа компиляции или синтаксические ошибки происходят, когда ваш исходный код нарушает правила синтаксиса Паскаля. Borland Pascal на может скомпилировать вашу программу, пока она не будет содержать допустимые операторы Паскаля. Когда компилятор встречает оператор, который он не может распознать, соответствующий файл выводится в окне редактирования, курсор позиционируется на то место, которое не понял компилятор, и выводится сообщение об ошибке.
Компилятор, работающий в режиме командной строки, также дает вам некоторую информацию. Когда он находит синтаксическую ошибку, то выводит содержащую ошибку строку с номером этой строки и сообщением об ошибке.
Наиболее общей причиной ошибок этапа компиляции являются ошибки набора (опечатки), пропущенные точки с запятой, ссылки на неописанные переменные, передача неверного числа (или типа) параметров процедуры или функции и присваивание переменной значений неверного типа.
После исправления ошибки вы можете выполнить компиляцию заново. После устранения в программе всех синтаксических ошибок и ее успешной компиляции программа будет готова к выполнению и поиску ошибок этапа выполнения и логических ошибок.


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


Run-time error ## at seg:ofs
 

 

 

 

 

 

 

 

22

Если вы выполняете программу из IDE, Borland Pascal автоматически находит вызвавший ошибку оператор (как в случае синтаксических ошибок). Если вы выполняете программу вне IDE, то вы можете запустить IDE и, чтобы найти вызвавший ошибку оператор, использовать команду Search|Find Error, которая дает вам адрес сегмента и смещения (seg:ofs). Если вы используете компилятор командной строки, то можете для поиска ошибки использовать параметр /F.

Логические ошибки
Логические ошибки - это ошибки проектирования и реализации программы. То есть, ваши операторы допустимы и что-то делают, но не то, что вы предполагали. Эти ошибки часто трудно отследить, поскольку IDE не может найти их автоматически, как синтаксические и семантические ошибки. К счастью, IDE включает в себя средства отладки, помогающие вам найти логические ошибки.
Логические ошибки приводят к некорректному или непредвиденному значению переменных, неправильному виду графических изображений или невыполнению кода, когда это ожидается. В остальной части этой главы обсуждаются методы отслеживания этих логических ошибок.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

23

4.Способы обнаружения ошибок

 

Все методы обнаружения ошибок основаны на передаче в составе кадра данных служебной избыточной информации, по которой можно судить с некоторой степенью вероятности о достоверности принятых данных. Эту служебную информацию принято называть контрольной суммой или (последовательностью контроля кадра - Frame Check Sequence, FCS). Контрольная сумма вычисляется как функция от основной информации, причем необязательно только путем суммирования. Принимающая сторона повторно вычисляет контрольную сумму кадра по известному алгоритму и в случае ее совпадения с контрольной суммой, вычисленной передающей стороной, делает вывод о том, что данные были переданы через сеть корректно.

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

Контроль по паритету представляет собой наиболее простой метод контроля данных. В то же время это наименее мощный алгоритм контроля, так как с его помощью можно обнаружить только одиночные ошибки в проверяемых данных. Метод заключается в суммировании по модулю 2 всех бит контролируемой информации. Например, для данных 100101011 результатом контрольного суммирования будет значение 1. Результат суммирования также представляет собой один бит данных, который пересылается вместе с контролируемой информацией. При искажении при пересылке любого одного бита исходных данных (или контрольного разряда) результат суммирования будет отличаться от принятого контрольного разряда, что говорит об ошибке. Однако двойная ошибка, например 110101010, будет неверно принята за корректные данные. Поэтому контроль по паритету применяется к небольшим порциям данных, как правило, к каждому байту, что дает коэффициент избыточности для этого метода 1/8. Метод редко применяется в вычислительных сетях из-за его большой избыточности и невысоких диагностических способностей.

 

 

 

 

24

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

Циклический избыточный контроль (Cyclic Redundancy Check, CRC) является в настоящее время наиболее популярным методом контроля в вычислительных сетях (и не только в сетях, например, этот метод широко применяется при записи данных на диски и дискеты). Метод основан на рассмотрении исходных данных в виде одного многоразрядного двоичного числа. Например, кадр стандарта Ethernet, состоящий из 1024 байт, будет рассматриваться как одно число, состоящее из 8192 бит. В качестве контрольной информации рассматривается остаток от деления этого числа на известный делитель R. Обычно в качестве делителя выбирается семнадцати- или тридцати трехразрядное число, чтобы остаток от деления имел длину 16 разрядов (2 байт) или 32 разряда (4 байт). При получении кадра данных снова вычисляется остаток от деления на тот же делитель R, но при этом к данным кадра добавляется и содержащаяся в нем контрольная сумма. Если остаток от деления на R равен нулю1 (1 Существуетнесколько модифицированная процедура вычисления остатка, приводящая к получению в случае отсутствия ошибок известного ненулевого остатка, что является более надежным показателем корректности.), то делается вывод об отсутствии ошибок в полученном кадре, в противном случае кадр считается искаженным.

Этот метод обладает более высокой вычислительной сложностью, но его диагностические возможности гораздо выше, чем у методов контроля по паритету. Метод CRC обнаруживает все одиночные ошибки, двойные ошибки и ошибки в нечетном числе бит. Метод обладает также невысокой степенью избыточности. Например, для кадра Ethernet размером в 1024 байт контрольная информация длиной в 4 байт составляет только 0,4 %.

 

 

 

 

 

 

 

 

25

Заключение

 

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

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

26


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

 

 

 

 

Интернет:

1.      http://exinform09.narod.ru/otveti/65_66_67.html

2.      http://xreferat.ru/33/649-1-optimizaciya-programm.html

3.      http://com-inform.narod.ru/ksptp/2_3_4_1.html

4.      http://program.rin.ru/razdel/html/298.html

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

27



Информация о работе Оптимизация, отладка и тестирование программ