Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Там, где есть одна ошибка, вероятно, есть и другие
Это положение повторяет принцип гл. 2, который утверждает, что если в части программы обнаружена ошибка, то велика вероятность существования в этой же части и другой ошибки. Другими словами, ошибки имеют тенденцию группироваться. При исправлении ошибки проверьте ее непосредственное окружение: нет ли здесь каких-нибудь подозрительных симптомов. Находите ошибку, а не ее симптом.
Другим общим недостатком является устранение симптомов ошибки, а не ее самой Если предполагаемое изменение устраняет не все симптомы ошибки, то она не может быть полностью выявлена
Вероятность правильного нахождения ошибки не равна 100%.
С этим, безусловно, соглашаются, но в процессе исправления ошибки часто наблюдается иная реакция (например, «да, в большинстве случаев это справедливо но данная корректировка столь незначительна, что она правильна»). Никогда нельзя предполагать, что текст, который включен в программу для исправления ошибки, правилен. Можно утверждать, что корректировки более склонны к ошибкам, чем исходный текст программы. Подразумевается, что корректирующая программа должна тестироваться, возможно, даже более тщательно, чем исходная.
Вероятность правильного нахождения ошибки уменьшается с увеличением объема программы.
Это утверждение формулируется по-разному. Эксперименты показали, что отношение числа неправильно найденных ошибок к числу первоначально выявленных увеличивается для больших программ. В большой про грамме, рассчитанной на широкое применение, каждая шестая вновь обнаруженная ошибка может быть допущена при предшествующем внесении изменений в программу.
Остерегайтесь внесения при корректировке новой ошибки.
Необходимо рассматривать не только неверные корректировки, но и те, которые кажутся верными, однако имеют нежелательный побочный эффект и таким образом приводят к новым ошибкам. Другими словами, существует вероятность не только того, что ошибка будет обнаружена неверно, но и того, что ее исправление приведет к новой ошибке. Поэтому после проведения корректировки должно быть выполнено повторное регрессионное тестирование, позволяющее установить, не внесе на ли новая ошибка.
Процесс исправления ошибки должен временно возвращать разработчика на этап проектирования.
Необходимо понимать, что исправление ошибок является одной из форм проектирования программы. Здравый смысл подсказывает нам, что все процедуры, методики й формализмы, использовавшиеся в процессе проектирования, должны применяться и для исправления ошибок, поскольку по своей природе корректировки склонны к ошибкам Например, если при организации процесса проектирования предусматривались проверки исходного текста, то вдвойне важно, чтобы они использовались m после исправления ошибок.
Изменяйте исходный текст, а не объектный код
При отладке больших систем, особенно написанных на языке Ассемблера, имеется тенденция исправлять ошибку путем внесения изменений непосредственно в объект ный код (с помощью программы типа «superzap») с тем, чтобы изменить исходный текст программы в дальнейшем (т. е. «когда будет время»). Такой метод обычно является симптомом того, что применялась «отладка посредством экспериментирования». Кроме того, объектный код и исходный текст программы в этом случае не идентичны, следовательно, ошибка может появиться вновь при повторной компиляции или ассемблировании программы. Эта практика свидетельствует о непрофессиональном подходе к отладке.
26. Понятие отладки. Основные подходы к отладке программ. Методы «грубой силы», индуктивная отладка, дедуктивная отладка, обратная трассировка, отладка тестированием.
Дата публикования: 2015-01-26; Прочитано: 490 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!