Что такое нетривиальные дефекты и как их преодолеть? - PullRequest
1 голос
/ 20 мая 2009

Говорят [Список исправлений дефектов программного обеспечения 10] , что «около 40-50 процентов пользовательских программ содержат нетривиальные дефекты».

Какие есть нетривиальные дефекты и как их преодолеть?

Ответы [ 4 ]

3 голосов
/ 20 мая 2009

Я бы интерпретировал «нетривиально» как «оказывает реальное влияние на пользователя».

Например, если пункт меню содержит опечатку, это будет тривиальным дефектом. Если ваше приложение для работы с электронными таблицами завершится сбоем при попытке сохранить какой-либо лист с номером «999», это будет нетривиально.

Я был бы очень удивлен, если бы число было на самом деле столь же низким, как 40-50%. По моему опыту, каждое приложение-подпись имеет нетривиальные дефекты, даже если они встречаются редко. (Если я единственный пользователь в мире, который использует число 999 в электронной таблице, ошибка все еще чрезвычайно важна для me , поэтому я не думаю, что ее можно классифицировать как тривиальную.)

Что касается «преодоления» дефектов - обычная куча модульных тестов, непрерывная сборка, автоматические интеграционные тесты, ручное тестирование, уверенность в том, что у вас действительно хорошая система обратной связи с пользователями, и руководство, которое готово направить ресурсы на устранение ошибок, а также создание новых функций.

1 голос
/ 20 мая 2009

субъективно, но:

Нетривиально: дефекты, которые мешают пользователям выполнять свою работу или в значительной степени влияют на их производительность Тривиально: дефекты, которые просто раздражают пользователей

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

0 голосов
/ 20 мая 2009

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

Нетривиальные дефекты - это все остальное: проблемы с производительностью, обработка приложения, повреждение данных и т. Д. Иногда их сложно найти, а зачастую и исправить.

0 голосов
/ 20 мая 2009

Во-первых, стоит отметить, что большинство отдельных дефектов тривиальны: тесты направлены на их обнаружение.

Таким образом, нетривиальные дефекты, как правило, представляют собой комбинацию двух или более отдельных дефектов, каждый из которых сам по себе безвреден (тестовый ввод не вызвал их).

Второй шаг в нетривиальности - это когда время является частью пространства ввода / вывода: конкретные даты или длительности.

Затем вы можете добавить расхождения между предположениями и реальностью: компилятор, целевая платформа, входные данные, ...

Встряхни все это, и пусть сила будет с тобой ...

...