Методики устранения ошибок
Некоторые общие методы помогут вам выполнить диагностику. Первый шаг в процессе устранения ошибки - это полностью описать ошибку.
Описание ошибки поможет вам и представителю службы технической поддержки IBM найти причину ошибки. На этом этапе вы должны задать себе следующие основные вопросы:
- В чем проявляется ошибка?
- Где произошла ошибка?
- Когда произошла ошибка?
- При каких условиях происходит эта ошибка?
- Можно ли воспроизвести ошибку?
Как правило, ответы на эти вопросы позволяют получить четкое описание ошибки, что потом даст возможность найти решение проблемы.
В чем проявляется ошибка?
Когда вы начинаете описывать ошибку, наиболее очевидным вопросом является "В чем заключается ошибка?" Этот вопрос может показаться прямолинейным, однако его можно разбить на несколько более узких вопросов, позволяющих получить наиболее информативную картину ошибки. В число этих вопросов входят следующие:
- От кого или откуда вы узнали об ошибке?
- Какие коды ошибок и сообщения появились?
- Как происходит отказ системы? Например, выражается ли он в образовании замкнутого цикла, зависании программы, аварийном завершении работы, снижении производительности или получении неправильных результатов?
Где произошла ошибка?
Определить, откуда исходит ошибка, не всегда легко, но это один из важнейших шагов при устранении ошибки. Между отказавшими компонентами и отчетами может находится много уровней технологий. Сети, диски и драйверы - это только некоторые из компонентов, которые следует рассматривать при исследовании ошибки.
Определить уровень, на котором произошла ошибка, помогают следующие вопросы:
- Связана ли ошибка с какой-то одной операционной системой, или же она является общей для нескольких операционных систем?
- Являются ли текущая среда и конфигурация поддерживаемыми?
- Все ли пользователи сталкиваются с этой ошибкой?
- (Для установки на нескольких узлах). На всех ли узлах возникает эта ошибка?
Если сообщение об ошибке исходит от одного уровня, это не обязательно означает, что ошибка возникла на этом уровне. Определяя, откуда исходит ошибка, нужно представлять себе, в какой среде она происходит. Постарайтесь полностью описать среду ошибки, включая информацию об операционной системе и версии, всех соответствующих программах и их версиях, а также об аппаратном обеспечении. Убедитесь, что вы работаете в среде с поддерживаемой конфигурацией. Многие ошибки в конечном счете оказываются результатом использования несовместимых уровней программ, которые не предназначены для работы в сочетании друг с другом или не были полностью протестированы в сочетании друг с другом.
Когда произошла ошибка?
Составьте подробную хронологическую схему событий, которые привели к ошибке, особенно в тех случаях, когда ошибка произошла однократно. Проще всего составить такую хронологическую схему, перебирая события в обратном порядке: начните с момента, когда было сообщено об ошибке (насколько можно точно, вплоть до миллисекунд), и проверяйте все доступные журналы и информацию, начиная с этого момента, в обратном хронологическом порядке. Как правило, требуется искать только первое подозрительное событие, содержащееся в диагностическом журнале.
Чтобы составить подробную хронологическую схему событий, ответьте на следующие вопросы:
- Происходит ли ошибка только в какое-то определенное время суток?
- Как часто происходит эта ошибка?
- Какая последовательность событий приводит к появлению сообщения об ошибке?
- Не произошла ли ошибка после изменения среды, например, после обновления или установки программ или аппаратных компонентов?
Ответы на эти типы вопросов могут помочь вам понять, в какой области следует искать ошибку.
При каких условиях происходит эта ошибка?
Важная составная часть процедуры устранения ошибки - узнать, какие системы и приложения работали в тот момент, когда произошла ошибка. Эти вопросы, касающиеся вашей среды, могут помочь вам выявить коренную причину ошибки:
- Происходит ли ошибка каждый раз при выполнении одной и той же задачи?
- Требуется ли определенная последовательность событий, чтобы произошла ошибка?
- Происходят ли одновременно ошибки других приложений?
Ответы на эти вопросы помогут вам получить представление о среде, в которой происходит ошибка, и выявить все зависимости. Помните, что хотя несколько ошибок могли произойти одновременно, это не обязательно означает, что ошибки связаны друг с другом.
Можно ли воспроизвести ошибку?
С точки зрения устранения ошибок идеальной ошибкой является та, которую можно воспроизвести. Как правило, если ошибку удается воспроизвести, в вашем распоряжении имеется большой набор утилит или процедур, которые помогут вам исследовать ситуацию. Часто бывает проще диагностировать и устранить ошибки, которые воспроизводятся.
Однако, если ошибка воспроизводится, у этого есть и отрицательная сторона: если ошибка оказывает существенное влияние на работу, вы не хотите, чтобы она повторялась. Если это возможно, воспроизведите ошибку в тест-среде или в среде разработки, что, как правило, обеспечивает больше гибкости и возможностей контроля за исследованием ошибки.
- Можно ли воспроизвести ошибку в тест-системе?
- Сталкиваются ли несколько пользователей или приложений с ошибкой одного и того же типа?
- Можно ли воспроизвести ошибку, выполнив одну команду, набор команд или запустив какое-то конкретное приложение?