Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Принципы исправления ошибок



Там, где есть одна ошибка, вероятно, есть и другие

Это положение повторяет принцип гл. 2, который ут­верждает, что если в части программы обнаружена ошиб­ка, то велика вероятность существования в этой же ча­сти и другой ошибки. Другими словами, ошибки имеют тенденцию группироваться. При исправлении ошибки проверьте ее непосредственное окружение: нет ли здесь каких-нибудь подозрительных симптомов. Находите ошибку, а не ее симптом.

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

Вероятность правильного нахождения ошибки не равна 100%.

С этим, безусловно, соглашаются, но в процессе исправления ошибки часто наблюдается иная реакция (например, «да, в большинстве случаев это справедливо но данная корректировка столь незначительна, что она правильна»). Никогда нельзя предполагать, что текст, ко­торый включен в программу для исправления ошибки, правилен. Можно утверждать, что корректировки более склонны к ошибкам, чем исходный текст программы. Подразумевается, что корректирующая программа должна тестироваться, возможно, даже более тщательно, чем исходная.

Вероятность правильного нахождения ошибки уменьшается с увеличением объема программы.

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

Остерегайтесь внесения при корректировке новой ошибки.

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

Процесс исправления ошибки должен временно возвращать разработчика на этап проектирования.

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

Изменяйте исходный текст, а не объектный код

При отладке больших систем, особенно написанных на языке Ассемблера, имеется тенденция исправлять ошиб­ку путем внесения изменений непосредственно в объект ный код (с помощью программы типа «superzap») с тем, чтобы изменить исходный текст программы в дальнейшем (т. е. «когда будет время»). Такой метод обычно являет­ся симптомом того, что применялась «отладка посредст­вом экспериментирования». Кроме того, объектный код и исходный текст программы в этом случае не идентичны, следовательно, ошибка может появиться вновь при пов­торной компиляции или ассемблировании программы. Эта практика свидетельствует о непрофессиональном подходе к отладке.


26. Понятие отладки. Основные подходы к отладке программ. Методы «грубой силы», индуктивная отладка, дедуктивная отладка, обратная трассировка, отладка тестированием.





Дата публикования: 2015-01-26; Прочитано: 490 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...