В общем случае под ошибкой подразумевается дефект, погрешность или неумышленное искажение объекта или процесса. При этом предполагается, что оператору известно правильное, эталонное состояние объекта, по отношению к которому может быть определено наличие отклонения, — ошибки или дефекта. Для систематической, скоординированной борьбы с этими ошибками (дефектами) необходимы исследования факторов, влияющих на качество программного обеспечения (ПО) со стороны случайных, существующих и потенциально возможных ошибок (дефектов) в конкретных программах.
При строго фиксированных исходных данных программы исполняются по заданным маршрутам и строго выдают заданные результаты. Многочисленные варианты исполнения программ при разнообразных исходных данных представляются для внешнего наблюдателя как случайные. В связи с этим дефекты функционирования программных средств, не вызванные злоумышленными действиями, проявляются внешне как случайные, имеют разную природу и последствия. В частности, они могут приводить к последствиям, соответствующим нарушениям работоспособности, и к отказам при использовании ПО.
Степень влияния всех внутренних дестабилизирующих факторов, а также некоторых внешних угроз на качество и надежность ПО в наибольшей степени определяется качеством технологий анализа требований, проектирования, кодирования, тестирования, сопровождения и документирования ПО и его основных компонентов.
При ограниченных ресурсах на разработку ПО для достижения заданных требований необходимо управление обеспечением качества в течение всего цикла создания программ и баз данных (БД). Такое управление подразумевает высокую дисциплину и проектировочную культуру всего коллектива специалистов, использование им методик, типовых нормативных документов и средств автоматизации разработки. Кроме того, обеспечение качества ПО предполагает формализацию и сертификацию технологий разработки, а также выделение этих технологий в специальный процесс, поэтапное измерение и анализ качества создаваемых и применяемых компонент.