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

Translated by ChatGPT gpt-3.5-turbo/36 on 2023-11-17 at 12:40

sixnines availability badge   GitHub stars