НЕПРОТИВОРЕЧИВОСТЬ ВНУТРИ СПЕКА И С ДРУГИМИ СПЕКАМИ
Пример ошибки
"7.3. В целях безопасности доставка может быть осуществлена на адрес пользователя, по которому зарегистрирована кредитная карта"
и на следующей странице или в другом спеке:
"8.1.1. Для доставки пользователь может ввести любой адрес в пределах континентальной части США".
Пример последствий ошибки
Один программист может запретить доставку на любой адрес, кроме адреса регистрации кредитной карты, а другой программист независимо от первого напишет код, позволяющий пользователю ввести любой адрес, который тот пожелает.
Вследствие этого вполне возможна ситуация, когда пользователь, завершив заказ, будет ждать посылку, которая никогда к нему не придет, так как система
• позволит сделать заказ (код второго программиста), НО
• не даст команду кладовщику, чтобы тот послал заказ по почте (код первого программиста).
ЛОГИЧЕСКАЯ ВЗАИМОСВЯЗЬ КОМПОНЕНТОВ
Пример ошибки
"1.1. Мои мама и папа, я живу хорошо, просто замечательно. У меня все есть. Есть свой дом. Он теплый. В нем одна комната и кухня. Я без вас очень скучаю, особенно по вечерам.
1.2. А здоровье мое не очень. То лапы ломит, то хвост отваливается.
1.3. А на днях я линять начал: старая шерсть с меня сыплется, хоть в дом не заходи, зато новая растет — чистая, шелковистая. Так что лох-матость у меня повысилась.
До свидания. Ваш сын, дядя Шарик".
Спасибо Эдуарду Успенскому за иллюстрацию "логической" взаимосвязанности компонентов.
|
|
Пример последствий ошибки
Вспомните реакцию мамы, а затем папы дяди Федора после прочтения письмеца. Примерно то же самое может быть с пользователем, когда он столкнется с функциональностью, написанной и протестированной согласно подобному спеку.
Цикл разработки ПО
75
5. ПОЛНОТА ОХВАТА ПРЕДМЕТА
Пример ошибки
В условиях массового интернет-мошенничества с кредитными картами дополнительной степенью защиты является CVV2 (Card Verification 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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!