tестирование dot com
Шрифт:
пользователями (Японец —» Японец). Продюсер добавляет,
что продвижение на японском рынке — это главный при
оритет компании, как было сказано на очередном съезде, в
смысле было сказано на последнем собрании.
б. Вторым по приоритетности идет Американец —» Японец.
Вот данные по сделкам. Продюсер добавляет, что недавно
были заключены контракты с крупными американскими
автозаводами о том, что те будут использовать наш веб-сайт
для продаж за рубеж.
в. Третьим будет Американец — > Американец,
цифры. Продюсер добавляет, что конкурирующие сайты и
другие каналы поставок завоевали местный рынок.
г. Четвертым будет Японец —» Американец, так как вот циф
ры. Продюсер добавляет, что японские компании распре
деляют запасные части через своих авторизованных аме
риканских дилеров, а американские дилеры японских ино
марок используют наш сайт неохотно.
Затем мы попросили дать процент для каждого флоу относитель-
но общей суммы сделок по всем четырем флоу (это было немного
больше, чем было нужно, так как я уже знал приоритетность ка-
ждого флоу, но, как говорят, "кашу маслом не испортишь" и "куй
железо, пока горячо"):
Блок-схема по спеку #1123
Теперь у нас есть данные, соответствующие реальности и осно-
ванные
• на информации из объективных источников и
• на мнении компетентных лиц.
У нас есть не просто приоритеты, а приоритеты, подкрепленные
цифрами (проценты) и пониманием бизнеса (комментарии про-
дюсера).
Нигилистический настрой и практическая методология
195
И еще мы снова видим, что эти превосходные, проверенные дан-
ные снова абсолютно противоречат нашему, казалось бы, незыб-
лемому, но на поверку очень даже "зыблемому" "Абсолютно
очевидно".
Что делать, если вдруг есть две функциональности с одинако-
вым приоритетом? С чего начать? Начните с той, которая бо-
лее сложная и трудоемкая.
Последний вопрос в отношении оценки риска — это использова-
ние полученной информации. Флоу с более высоким приорите-
том (который мы отражаем в поле тест-кейса "Приоритет") тес-
тируется
• в первую очередь и
• более тщательно.
Кроме того, в дальнейшем у вас всегда будет аргумент, почему
вы тестировали именно это и именно в таком объеме. И этим
аргументом будут данные по оценке риска, которые вы использо-
вали как профессионал-тестировщик, ориентированный на сча-
стье пользователя.
2. ЭКВИВАЛЕНТНЫЕ КЛАССЫ (equivalent classes)
Это суперполезная вещь, которой мы немедленно дадим опре-
деление:
эквивалентный класс — это одно или больше значений ввода,
к которым ПО применяет одинаковую логику.
Предположим, что наш книготорговый веб-сайт запускает новую
кампанию "Больше
тратишь — больше скидка". Вот табличка изспека.
Потраченная сумма,
Скидка,
руб-
%
200 — 500
2
500—1000
3
1000 — 5000
4
5000 и более
5
Мы, конечно, сразу увидели 3 бага спека:
196
Тестирование Дот Ком. Часть 3
Баг1:
Непонятно, по какой ставке рассчитывается скидка, если по-
трачены следующие суммы: ровно 500 руб., ровно 1000 руб.,
ровно 5000 руб., так как каждая из этих сумм находится не в
одной, а в двух корзинах со скидками.
Баг 2:
Что означает "Потраченная сумма"? Это количество дензна-
ков, выплаченных только за книги, или полная сумма к оплате,
включая оплату книг и расходы на доставку?
Баг 3:
Для полноты картины нужно дописать эквивалентный класс
от 0 до 199,99, на значения которого никакая скидка не рас-
пространяется.
Что делаем?
Правильно: идем к продюсеру. Извещаем о баге программиста.
"Размораживаем" спек. Вносим в него изменения.
Вот перед нами уже отредактированная табличка:
Стоимость
Скидка, %
купленных книг, руб.
0—199,99
0
200,00 — 499,99
2
500,00 — 999,99
3
1000,00 — 4999,99
4
5000,00 и более
5
У нас получилось 5 эквивалентных классов:
Класс 1:
0—199,99
Класс 2:
200,00 — 499,99
Класс 3:
500,00 — 999,99
Класс 4:
1000,00 — 4999,99
Класс 5:
5000,00 и более
Нигилистический настрой и практическая методология
197
Каждое значение внутри каждого класса является эквивалентным
всем другим значениям этого класса.
Почему? Потому что ко всем значениям класса должна приме-
няться одинаковая логика кода. Например, при стоимости куп-
ленных книг и 1215,11 руб., и 1745,45 руб., и 2000 руб. (класс 4)
полагается скидка 4%.
Составными частями класса являются:
1. Значение или корзина значений ввода (например, от 500,00
до 999,99) и
2. Логика для вывода, т.е. ожидаемого результата (скидка 3%
в случае с классом 3).
Польза раскладывания значений ввода на эквивалентные клас-
сы состоит в том, что мы отсеиваем огромное количество
значений ввода, использовать которые для тестирования про-