К вопросу о классификации программных ошибок
Березкин Д.В.
Определение понятия «ошибка в программе». 1
Классификация ошибок по месту их возникновения. 2
Классификация ошибок с точки зрения тестировщика. 12
Классификация ошибок по степени их критичности. 13
Классификация ошибок в зависимости от их места в жизненном цикле программного изделия 14
Классификация программных ошибок (багов) с точки зрения субъективного восприятия их программистами. 15
Некоторые выводы.. 16
Литература. 16
В качестве введения рассмотрим определения понятия «ошибка». Начнем с наиболее общего трактования этого понятия применительно к некоторым техническим системам.
По определению стандарта ISO 9241-13 [1] ошибка это – несоответствие между целями пользователя и ответом системы.
Определение, приведенное в работе [2], предполагает, что ошибка вызвана не сложностью задачи, а сложностью орудия (напр., компьютерной системы), поэтому она является не ошибкой пользователя, а ошибкой разработчиков этого орудия.
|
|
Далее рассмотрим более частные определения, непосредственно связанные с компьютерными программами.
Определение понятия «ошибка в программе»
В самом общем случае под ошибкой понимается какой-то сбой в программе на этапе ее выполнения.
Ошибкой (или так называемым багом) можно назвать недокументированные или нежелательные, "побочные" реакции программы на те или иные действия пользователя равно как и при использовании ее одновременно с другим программами или на другой аппаратной платформе.
Майерс дает такое нестрогое определение: «Если программа не делает того, чего пользователь от нее вполне обосновано ожидает, значит налицо программная ошибка» [3].
Автор работы [4] настаивает на субъективном характере программных ошибок: «Не существует ни абсолютного определения ошибок, ни точного критерия наличия их в программе. Можно лишь сказать, насколько программа не справляется со своей задачей, - это исключительно субъективная характеристика».
Канер с соавторами [5] указывают, что определение ошибок как расхождение между программой и ее спецификацией - не верно. Они исходят из того, что даже точно соответствующая спецификации программа содержит ошибки в том случае, если есть ошибки и в самой спецификации.
В книге [6] приводится такое определение программных ошибок: "Говоря простыми словами, программная ошибка - не что иное, как изъян в разработке программного продукта, который вызывает несоответствие ожидаемых результатов выполнения программного продукта и фактически полученных результатов. Дефект может возникнуть на стадии кодирования, на стадии формулирования требований или на стадии проектирования, либо же его причина может крыться в некорректной конфигурации или данных. Дефектом может быть также что-то другое, что не соответствует ожиданиям заказчика и что может быть, а может и не быть определено в спецификации программного продукта".