Классификация ошибок в книге [5] дается по месту их возникновения. В главе 4 приводится краткая классификация ошибок и в Приложении – более полная, которая, на мой взгляд, не имеет строгих принципов и является скорее перечнем возможных ошибок, чем их классификацией. Авторы исходят из того, что главным критерием программы должно быть ее качество, которое трактуется как отсутствие в ней недостатков, а также сбоев и явных ошибок. Недостатки программы зависят от субъективной оценкой ее качества потенциальным пользователем. При этом авторы скептически относятся к спецификации и утверждают, что даже при ее наличии, выявленные на конечном этапе недостатки говорят о ее низком качестве. При таком подходе преодоление недостатков программы, особенно на заключительном этапе проектирования, может приводить к снижению надежности. Очевидно, что для разработки ответственного и безопасного программного обеспечения (ПО) такой подход не годится, однако проблемы наличия ошибок в спецификациях, субъективного оценивания пользователем качества программы существуют и не могут быть проигнорированы. Должна быть разработана система некоторых ограничений, которая бы учитывала эти факторы при разработке и сертификации такого рода ПО. Для обычных программ все проблемы, связанные с субъективным оцениванием их качества и наличием ошибок, скорее всего неизбежны.
|
|
В краткой классификации выделяются следующие ошибки.
Ошибки пользовательского интерфейса.
Функциональность.
Взаимодействие программы с пользователем.
Организация программы.
Пропущенные команды.
Производительность.
Выходные данные.
Обработка ошибок.
Ошибки, связанные с обработкой граничных условий.
Ошибки вычислений.
Начальное и последующие состояния.
Ошибки управления потоком.
Ошибки передачи или интерпретации данных.
Ситуация гонок.
Перегрузки.
Аппаратное обеспечение.
Контроль версий.
Документация.
Ошибки тестирования.
Подробная классификация с небольшой правкой и моими комментариями приведена ниже.