The Formula for Software Quality

The following text is a partial translation of the original English article, performed by ChatGPT (gpt-3.5-turbo) and this Jekyll plugin:

Как определить качество программного продукта? Однозначно, в этом есть внутренний эмоциональный компонент, что означает удовлетворение пользователя, готовность платить, оценку, положительное отношение и всё такое. Однако, если отбросить эмоции, как мы можем это реально измерить? IEEE говорит, что качество - это степень соответствия продукта его требованиям или ожиданиям пользователя. Но какая здесь формула? Можем ли мы сказать, что оно удовлетворяет требованиям и ожиданиям, скажем, на 73%?

Вот формула и логика, которую я предлагаю.

Как мы знаем, любой программный продукт имеет бесконечное количество ошибок. Некоторые из них обнаруживаются и исправляются командой разработчиков, назовём их F. Некоторые обнаруживаются конечными пользователями, назовём их U. Таким образом, общее количество известных нам ошибок из бесконечного числа составляет F+U.

Очевидно, что чем меньше U, тем выше качество. Идеально, U должно быть равно нулю, что означает, что пользователи не видят никаких ошибок вовсе. Как мы можем достичь этого, если общее количество ошибок бесконечно? Единственный возможный способ сделать это - увеличить F, надеясь, что U автоматически уменьшится.

Таким образом, качество продукта может быть измерено следующим образом:

Мы просто делим количество найденных ошибок на общее количество видимых ошибок. Таким образом, чем больше ошибок мы успеваем обнаружить, прежде чем пользователи увидят их, тем выше качество.

Качество 100% означает, что пользователи не находят никаких ошибок. Качество 0% означает, что все ошибки обнаруживаются ими.

P.S. Кажется, что я не являюсь изобретателем этой формулы. Вот цитата из Управление процессом тестирования: Практические инструменты и методики управления тестированием аппаратных и программных средств (2009) Рекса Блэка, страница 109: Общая метрика эффективности тестовой команды измеряет, насколько тестовая команда смогла обнаружить значительное большинство ошибок до выпуска. Производственные или клиентские ошибки иногда называют выбегами из тестирования. Подразумевается, что ваша тестовая команда пропустила эти проблемы, но могла бы обнаружить их в процессе выполнения тестов. Вы можете количественно оценить эту метрику следующим образом:

P.P.S. Вот еще одна похожая метрика от Каперса Джонса в статье Эффективность устранения дефектов в программном обеспечении, журнал “Компьютер”, Том 29, Выпуск 4, 1996: “Серьезный контроль качества программного обеспечения включает в себя измерение эффективности устранения дефектов (DRE). Эффективность устранения дефектов - это процент дефектов, обнаруженных и исправленных до выпуска. В принципе, измерение DRE простое. Ведите записи обо всех дефектах, обнаруженных во время разработки. После фиксированного периода в 90 дней добавьте дефекты, сообщенные клиентами, к внутренним дефектам и рассчитайте эффективность внутреннего устранения. Если команда разработки обнаружила 90 дефектов, а клиенты сообщили о 10 дефектах, то DRE, конечно, составляет 90%.”

Translated by ChatGPT gpt-3.5-turbo/42 on 2023-12-27 at 05:21

sixnines availability badge   GitHub stars