Какова приемлемая скорость отказа программного обеспечения?

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

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

Неужели вам будет неудобно, когда разработчик узнает , как часто ваше программное обеспечение может потерпеть неудачу, но не знать ничего о конкретных случаях, в которых это возможно? Какая частота отказов приемлема? 0,01%? 0,0001%? Не считаете ли вы генетический алгоритм более высоким стандартом, чем человек, когда дело доходит до уровня отказов?

1 голос | спросил Jon Purdy 12 +04002011-10-12T20:00:26+04:00312011bEurope/MoscowWed, 12 Oct 2011 20:00:26 +0400 2011, 20:00:26

3 ответа


1

Я не уверен, почему это важно, если ваше программное обеспечение написано разработчиком или генетическим алгоритмом.

Где-то должен быть документ Требования , объясняющий приемлемые входные данные для программы и ожидаемые выходы для указанных входов. Вы можете написать модульные тесты для тестирования небольших единиц программы и бизнес-логики. У вас могут быть тестеры QA, которые используют программу и выполняют более сложные тесты. Вы должны стремиться к скорости отказа 0% в рамках ограничений требований . Иногда клиент принимает программу с низкой частотой отказа в некоторых ситуациях, если они считают, что это не имеет большого значения, чтобы гарантировать дополнительные затраты для устранения проблемы.

Ваша программа не должна учитывать любой приемлемый сценарий под солнцем, только когда-либо приемлемый сценарий, описанный Бизнес-пользователями /Клиентами /независимо ... И если у них появятся широкие требования, которые охватывают все под солнцем, тогда вы просите их уточнить их. Я не думаю, что больше нечего сказать, если вы не можете указать особенности своей ситуации.

ответил FrustratedWithFormsDesigner 12 +04002011-10-12T20:38:43+04:00312011bEurope/MoscowWed, 12 Oct 2011 20:38:43 +0400 2011, 20:38:43
5

Вы просите категориальный абсолют, не предоставляя никакого контекста (например, прецедент, требования, промышленность, клиенты, пользователи и т. д.).

Следовательно, ответ является категорическим абсолютом: 0.0%.

Если у вас есть определенный контекст, приемлемая скорость отказа будет полностью зависеть от контекста.

ответил yfeldblum 12 +04002011-10-12T20:05:33+04:00312011bEurope/MoscowWed, 12 Oct 2011 20:05:33 +0400 2011, 20:05:33
2

Это действительно подходит к приложению.

Если программное обеспечение контролирует ядерный реактор или летательный аппарат в полете, приемлемая скорость составляет 0,0%

Если программное обеспечение предоставляет комментарии пользователей на бесплатном сайте без дохода от рекламы, тогда потерянная альтернативная стоимость сбоя довольно близка к нулю, поэтому вы, вероятно, можете смириться с достаточно высокой вероятностью - скажем, 5% -10% и протестировать которые являются ценными.

Испуганная фраза из моей (обычно встроенной) точки зрения -

  

... ничего не знает о конкретных случаях, когда он может [ошибиться]

Я, возможно, с оптимизмом надеюсь, что большинство разработчиков добавят больше усилий по разработке, внедрению и тестированию в субъективно важные области программного обеспечения.

Скажите, что вы разрабатываете программное обеспечение для торгового автомата. Если ошибка 0.1%, которую вы считаете приемлемой, возникает в коде, который решает, в каком шаблоне будут мигать светодиоды, когда машина находится в режиме ожидания - это причудливая машина, - тогда я сомневаюсь, что вы даже потрудились с изменением поля. Если, с другой стороны, в коде возникает ошибка, которая решает, сколько изменений или сколько шоколада предоставляется, тогда у вас есть гораздо большая проблема.

ответил Luke Graham 12 +04002011-10-12T20:37:34+04:00312011bEurope/MoscowWed, 12 Oct 2011 20:37:34 +0400 2011, 20:37:34

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132