Необходимость отладки программного продукта

 

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

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

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

Стремление к максимально быстрому составлению программы с целью скорейшего начала (и окончания) ее отладки, приводит к тому что: отладка затягивается надолго, получение достоверных результатов откладывается на длительный срок. Такая задержка вызывается тем, что уже на поздних этапах отладки (а иногда - и эксплуатации) вскрываются все новые и новые ошибки, допущенные на этапах алгоритмизации и программирования, и приходится тратить много времени на их обнаружение и исправление. Отсюда можно сделать вывод, что кратность внутреннего цикла (этапы 2.3.6. и 2.3.7.) становится слишком большой, и при этом захватываются и этапы 2.3.3. и 2.3.4., а иногда и кратность внешнего цикла (от этапа 2.3.2 до 2.3.9.), оказывается отличной от единицы.

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

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

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

2) Проверка разработанных алгоритмов, выбор отладочных средств и определение контролируемых ими мест, участков, величин.

)   Проверка составленной программы, реализация намеченного ранее плана использования отладочных средств для получения на ЭВМ необходимых при локализации ошибок тестовых результатов; изготовление эталонных результатов для тестов.

)   Ввод, печать и сверка текста программы, перенесенной на внешние носители.

)   Получение с помощью транслятора вспомогательных таблиц (например, таблица перекрестных ссылок) и проверка их.

)   Тщательный контроль первых результатов, получаемых по новой программе.

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

- Получение задания, составление проекта программы и общего плана отладки 10%

-  Разработка алгоритма (15%) и детального плана отладки 20%

-  Программирование (5%) и изготовление тестов 15%

-  Препарация и первая трансляция 5%

-  Отладка 40%

-  Оформление программы 10%

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

Разработка программы =Изготовление + Доказательство.

Вопрос минимизации времени, необходимого на отладку, имеет особое значение. К его решению можно подойти с двух сторон:

1) путем ускорения поиска и исправления ошибок, имеющихся в программе;

2) путем уменьшения количества ошибок, допускаемых при разработке алгоритма и составлении программы.

 

Рис.2.2 Схема алгоритма отладки программы.



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

 

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

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

Существует три основных способа тестирования:

1) Алгоритмическое;

2) Аналитическое;

)   Содержательное.

Алгоритмическое тестирование

Алгоритмическое тестирование применяется для контроля этапов алгоритмизации и программирования. Проектируются тесты и начинаются готовиться эталонные результаты на этапе алгоритмизации, а используются они на этапе отладки.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: