НЕПРОТИВОРЕЧИВОСТЬ ВНУТРИ СПЕКА И С ДРУГИМИ СПЕКАМИ



Пример ошибки

"7.3. В целях безопасности доставка может быть осуществлена на адрес пользователя, по которому зарегистрирована кредитная карта"

и на следующей странице или в другом спеке:

"8.1.1. Для доставки пользователь может ввести любой адрес в преде­лах континентальной части США".

Пример последствий ошибки

Один программист может запретить доставку на любой адрес, кроме адреса регистрации кредитной карты, а другой программист незави­симо от первого напишет код, позволяющий пользователю ввести лю­бой адрес, который тот пожелает.

Вследствие этого вполне возможна ситуация, когда пользователь, за­вершив заказ, будет ждать посылку, которая никогда к нему не придет, так как система

позволит сделать заказ (код второго программиста), НО

не даст команду кладовщику, чтобы тот послал заказ по почте (код первого программиста).

ЛОГИЧЕСКАЯ ВЗАИМОСВЯЗЬ КОМПОНЕНТОВ

Пример ошибки

"1.1. Мои мама и папа, я живу хорошо, просто замечательно. У меня все есть. Есть свой дом. Он теплый. В нем одна комната и кухня. Я без вас очень скучаю, особенно по вечерам.

1.2. А здоровье мое не очень. То лапы ломит, то хвост отваливается.

1.3. А на днях я линять начал: старая шерсть с меня сыплется, хоть в дом не заходи, зато новая растет — чистая, шелковистая. Так что лох-матость у меня повысилась.

До свидания. Ваш сын, дядя Шарик".

Спасибо Эдуарду Успенскому за иллюстрацию "логической" взаи­мосвязанности компонентов.

Пример последствий ошибки

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


Цикл разработки ПО


75


5. ПОЛНОТА ОХВАТА ПРЕДМЕТА

Пример ошибки

В условиях массового интернет-мошенничества с кредитными кар­тами дополнительной степенью защиты является CVV2 (Card Verifica­tion Value 2) — трех- (для всех карт, кроме Атех) или четырехзначный (только для Атех) номер, идущий за номером карты на обратной ее стороне (на полоске с подписью). Продюсер по незнанию или по ха­латности может не предусмотреть в опеке, что пользователь должен ввести CVV2 при регистрации карты, что в итоге приведет к большему числу мошеннических транзакций.

Пример последствий ошибки

Многие интернет-компании, включая платежные системы, закончили существование из-за огромного количества транзакций с крадеными картами. Даже если дело не дойдет до закрытия компании, службе поддержки клиентов, финансовому и правовому департаментам пред­стоит испытать много чудных мгновений, которых могло не быть, не за­будь продюсер о CVV2.

6. СООТВЕТСТВИЕ НОРМАТИВНЫМ АКТАМ

Пример ошибки

Здесь, как правило, речь идет о продаже специальных предметов (на­пример, рецептурных лекарств). В этом случае спек (например, в он-лайн-аптеке) должен предусматривать, что такие предметы не могут продаваться.

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

Пример последствий ошибки

Возможно судебное преследование. Вспомните историю компании Napster.

7. СООТВЕТСТВИЕ ДЕЛОВОЙ ПРАКТИКЕ

Пример ошибки

Если денежный перевод обычно занимает 3 — 6 бизнес-дней включи­тельно, то пользователю не должно сообщаться меньшее или "точное" количество дней. Нужно так и указать на соответствующей странице сайта: "Денежный перевод обычно занимает 3 — 6 дней включительно".

Пример последствий ошибки

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


76


Тестирование Дот Ком. Часть 1


писи, выиграл там картину Айвазовского, за 200 тыс. фунтов, расплачи­вается своей дебетовой картой, а ему говорят, что на карте нет денег. Останется ли он клиентом нашей компании?

Идем дальше.

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

Пример

Где-нибудь в городе N в стенах прихватизированного авиационного завода открывается фирма по отливке золотых унитазов для новых русских. Жена одного такого приезжает на завод и говорит: "Хочу, что­бы мой унитаз:

с 00:00 до 5:59:59 проигрывал в стерео сочинения Сибелиуса в испол­нении оркестра английской Королевской оперы;

с 6:00 до 11:59:59 голосом Марчелло Мастроянни читал пелевинскую "Жизнь насекомых";

с 12:00 до 17:59:59 философски молчал; с 18:00до 23:59:59 транслировал "Народное радио", а для формы подойдет модель 5 из вашего каталога".

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

Итак, после проведения водораздела между работой продюсера и работой программиста продолжим о спеках.

Спеки имеют следующую очередность статусов:

1. Во время написанияони имеют статус Черновик(Draft). Продюсер пишет спек.

2. После написания и до утверждения — Ожидание утвер­ждения(Approval Pending).

Спек написан, и назначается совещание (meeting) с про­граммистами и тестировщиками по его обсуждению или же просто им посылается е-мейл с приложением.


Цикл разработки ПО


77


3. После утверждения — Утверждено(Approved или Final). Если на митинге все закричали "Ура!" или получены по­ложительные отзывы от всех реципиентов, утвержденный спек немедленно выкладывается на один из серверов в ло­кальной сети, чтобы быть доступным любому лицу внутри компании, которому положено его видеть. Если же спек не принят, то все начинается с пункта 1.

Постановка мозгов

Факт утверждения спека не означает, что тестировщик и программист объявили спек идеальным. Факт утверждения спека означает, что в результате первоначального ознакомления со спеком последний был признан годным для дальнейшей работы. Политический момент: спек — это ответственность продюсера, и продюсер остается ответ­ственным за качество спека даже в том случае, если программист и тестировщик утвердили спек, в котором позднее были найдены проблемы.

Идем дальше.

Спасский после игры с Фишером неделями ходит и думает: "А вот здесь нужно было бы его конем пришкварить", но, к сожалению, исправить ему уже ничего нельзя, "можно только забыть".

Продюсер же может проснуться утром с идеей улучшения спека или вспомнить какую-нибудь важную вещь, упущенную при соз­дании спека, и, придя на работу, подредактировать спек и заме­нить файл со старой редакцией файлом с новой редакцией на упомянутом внутреннем сервере... И так пять раз.

Далее.

Обычно спек распечатывается непосредственно перед началом работы по нему. Учитывая, что время начала работы по спеку у каждого индивидуально (я говорю о минутах), если спек будет по-тихому изменяться между распечатываниями, наступит ситуа­ция, когда


Дата добавления: 2018-05-02; просмотров: 434; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!