Одни и те же типы сбоев и отказов при исполнении комплексов программ могут быть вызваны различными факторами, которые можно разделить на три группы. В первую группу входят факторы, непосредственно вызывающие сбой или отказ при исполнении программы, причинами которых могут быть:
- искажение исходной информации, поступающей от внешних абонентов,
в том числе, и ошибочные действия операторов;
- самоустраняющиеся отказы или сбои в вычислительной системе;
- невыявленные ошибки в комплексе программ.
Ко второй группе факторов относятся архитектура комплекса программ
и структурное построение его компонент. Структура программ определяет возможность расширения последствий искажений информации или вычислительного процесса, влияет на вероятность превращения искажения в отказ и на время восстановления после отказа.
Третья группа факторов влияет на длительность восстановления и глубину последствий от возникающих отказов. В эту группу входят факторы, определяющие качество контроля вычислительного процесса и обрабатываемых данных, запаздывание в обнаружении искажений, качество классификации искажений и длительность проявлений их последствий. Они определяют длительность восстановления, время наработки на отказ и способствуют быстрой локализации искажений.
Искажения исходной информации, в большинстве случаев, не влияют на надежность выполнения программ. Причинами искажений данных, поступающих от внешних абонентов, могут быть:
- искажение данных на первичных носителях информации;
- сбои и частичные отказы в аппаратуре ввода данных с первичных носителей информации;
- шумы и сбои в каналах связи при передаче или приёме телекодовой информации;
- потери или искажения сообщений в ограниченных буферных накопителях вычислительной системы;
- ошибки в документах, используемых для подготовки данных, вводимых
в вычислительную систему.
Самоустраняющиеся отказы и сбои в аппаратуре вычислительных систем являются фактором, существенно влияющим на надёжность функционирования комплексов программ. Значительно чаще происходят сбои или трудно обнаруживаемые кратковременные отказы. Большинство из них выявляется и устраняется средствами аппаратурного контроля и не влияет на исполнение программ. Однако, некоторая часть аппаратурных сбоев может приводить к искажениям переменных. Причинами таких сбоев и отказов являются преимущественно внешние воздействия на аппаратуру, влияющие на нарушение контактов и пропадание сигналов, или индустриальные электрические помехи. Чаще происходят сбои, которые не удаётся обнаружить и зафиксировать при функционировании комплекса программ в процессе нормальной обработки информации и управления. Такие сбои проявляются в случайные промежутки времени, и практически невозможно добиться их повторяемости.
Невыявленные ошибки являются основной причиной ненадёжности функционирования. В процессе отладки основная часть ошибок в программах обнаруживается и устраняется, но есть риск пропуска нескольких ошибок. Любая отладка «может показать наличие ошибок, но не может показать их отсутствие». В процессе тестирования и отладки программ практически невозможно выполнение абсолютно полных проверок. В результате в программах всегда существует некоторое количество невыявленных ошибок.