2ord
@2ord

Отсутствие валидации — баг или особенность работы программы (архитектурный недочёт)?

Предположим, в программе не было учтено, что требуется некоторая проверка. А со временем выяснилось, что отсутствие этой проверки приводит к программной ошибке.

Является ли отсутствие валидации багом или всё же особенностью работы программы, пусть даже и приводящей к ошибке?
Есть ли с точки зрения ПО учёта ошибок понятие "архитектурный недочёт"?

Вопрос именно то как должно классифицироваться отсутствие валидации в системах учёта ошибок.
  • Вопрос задан
  • 914 просмотров
Решения вопроса 1
urtow
@urtow
*nix, python, QA, bagpipe, folk music
Отсутствие валидации является багом, а не "недочётом".
Если это еще приводит к ошибке - это серьезный баг. А если это приводит к падению программы, нарушению целостности данных или дает возможность обхода безопасности - это уже критичный баг.

А баг - это несоответствие поведения программы требованиям.

Теперь рассмотрим две ситуации:

1) Требований вообще не было.
Ни на словах, ни на бумаге. Решили сразу херачить код и начали. В таком случае вопрос "Как правильно назвать то, что мы продолбали валидацию" будет беспокоить в последнюю очередь - вам херачить надо.

2) Требования написаны (или обговорены) и там четко указано, что валидации не должно быть.
В таком случае - в реализации нет бага - работает же согласно требованиям.
Однако требования противоречат здравому смыслу (все входящие данные надо валидировать), так что это ошибка в требованиях и исправлять надо требования, ссылаясь на то какие проблемы может вызвать отсутствие валидации.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
lxsmkv
@lxsmkv
Test automation engineer
Программа при определенных условиях дает сбой. Для тестировщика это баг.

У нас например не предусмотрена проверка ТЗ, и требований тестировщиками. У нас проверка идет пост-фактум.
Ничего не поделаешь. Была бы проверка требований - можно было бы на этом этапе предотвратить некоторые недочеты, которые впоследствии бы привели к сбою.

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

Войдите, чтобы написать ответ

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