4.1. Различие между отладкой и тестированием

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

Начинающие программисты часто полагают, что программу достаточно только отладить. Это означает предположение, что про-"

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

Известны два подхода к отладке программ: при использовании одного из них значительная доля времени работы программиста затрачивается на то, чтобы попытаться избежать ошибок в программе, а имеющиеся все же ошибки обнаружить вручную; второй подход предполагает максимальное использование ЭВМ для выявления ошибок. Выбор того или другого способа действий зависит от количества имеющегося в распоряжении программиста машинного времени. Наблюдается естественное стремление (определяемое человеческой ленью) перекладывать большую часть работы по отладке н'а* машину. Однако лучше всего избегать возникновения ошибок.

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

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

Литература3 || Оглавление || 4.2. Отладочный барьер


Услуги