Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

testirovanie_dot-com

.pdf
Скачиваний:
85
Добавлен:
29.03.2015
Размер:
5.51 Mб
Скачать

Нигилистический настрой и практическая методология

189

 

Абсолютно очевидно, что по дороге номер 3 могут приехать только ваши местные кореша

для игры в покер (но сегодня не день покера — пятница) или

на барбекю (но сегодня не суббота).

Значит, дорога 3 остается в снегу.

Абсолютно очевидно, что дорога номер 2 также не является приоритетной в расчистке, так как абсолютно очевидно, что 10 меньше 30.

Таким образом, наш план:

посадить отельского "жнеца, швеца и на дуде игреца" за руль снегоуборочной машины расчищать роад намбер уан: дорогу к скоростной магистрали;

вывесить в лобби отеля большой плакат "Дорог на гор закрыт. Не ходи, а то хана" для уже вселившихся;

накормить уже вселившихся бесплатным завтраком (в качестве извинения).

Запомним, с какой уверенностью мы говорили себе: "Абсолютно очевидно".

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

Первый вариант разговора

Вопрос: "Что делать, Джеймс?"

Ответ: "Босс, все очень просто. Все, кто уже вселился в отель, приехали играть в снежки, кататься на беговых лыжах или просто дышать свежим воздухом. Я это знаю потому, что переговорил с каждым из них и знаю большинство из них, так как они приезжают каждый год. Поэтому нет никакого смысла в расчистке дороги номер2, всеостаются в отелеили развлекаются в егоокрестностях.

Я также знаю, что 16 человек из 30 — это компания, которая выедет к нам рано утром из Рино (я вчера говорил по телефону с одним из них) по этой дороге (показывает на карте), которая пересекается с дорогой номер 3. Соответственно они прибудут к нам по дороге номер 3.

190

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

 

Далее, посмотрите на монитор. Где живут 12 из 14 оставшихся клиентов? Они все живут в Сан-Франциско и окрестностях. Только что передали по радио, что на единственной скоростной дороге, ведущей из Сан-Франциско, из-за снегопада уже образовались страшные пробки. Кроме того, скорее всего большинство членов сан-францисской команды поедут после работы, т.е. в 4 часа, а значит, будут здесь не раньше 8.

Следовательно, нам нужно сначала расчистить дорогу 3 и после этого заняться дорогой 1.

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

Второй вариант разговора

Вопрос: "Что делать, Джеймс?"

Ответ: "Босс, надо сначала расчищать дорогу 2, ведущую к горнолыжным курортам. Все наши постояльцы — это горнолыжники. Кроме того, оставшиеся 30 человек скорее всего сначала заедут на курорт, покатаются там до вечера и вечером поедут к нам — не будут же они терять сегодняшний день, я сам заказывал им пропуска со скидкой на подъемники, а пропуска начинают действовать сегодня".

Третий вариант разговора

Вопрос: "Что делать, Джеймс?"

Ответ: "Босс, нет проблем. Нам нужно расчистить и дорогу 1, и

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

Мораль:

субъективные суждения, основанные на тупосамонадеянном "Абсолютно очевидно", могут элементарно завести нас в ситуацию, когда ресурсы потрачены впустую, так как не учитывают реальности. В то же время выводы, сделанные исходя из достоверной информации, ведут к эффективным решениям даже при нехватке ресурсов.

Нигилистический настрой и практическая методология

191

 

То, что сделал для нас мистер Джеймс, было оценкой риска. Он смог сделать оценку риска, так как

владел информацией и

знал, как этой информацией распорядиться.

Обратно к тестированию ПО.

Наша задача — это

получить информацию,

если возможно, узнать мнение человека, владеющего вопросом, и

оценить риск по каждой из функциональностей, которые предстоит протестировать.

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

Поверьте, что такой подход даст удивительные результаты.

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

а) сделки купли-продажи между пользователями внутри Аме рики;

б) сделки купли-продажи между пользователями в Японии; в) сделки купли-продажи между пользователями в Японии

и США.

Разложим эти функциональности:

Таблица 1

 

эл_001

эл_002

эл_003

эл_004

 

Индекс_

Индекс_

Индекс_

Индекс_

 

 

 

 

 

Продавец

 

 

 

 

 

 

 

 

 

Американец

X

 

 

 

 

 

 

 

 

Японец

 

X

 

 

 

 

 

 

 

Покупатель

 

 

 

 

 

 

 

 

 

Американец

 

 

X

 

 

 

 

 

 

Японец

 

 

 

X

 

 

 

 

 

192

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

 

 

 

 

 

 

 

 

 

 

 

Таблица2

 

 

 

 

 

 

 

 

 

эл 001

эл 002

эл 003

 

эл 004

 

 

Индекс_

Индекс_

Индекс_

 

Индекс_

 

 

 

 

 

 

Продавец американец—> Покупатель американец

X

 

 

 

 

 

 

 

 

 

 

 

Продавец американец—»Покупатель японец

 

 

X

 

 

 

 

 

 

 

 

 

 

Продавец японец—> Покупатель американец

 

 

 

X

 

 

 

 

 

 

 

 

 

Продавец японец —> Покупатель японец

 

 

 

 

 

X

 

 

 

 

 

 

 

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

Блок-схема по спеку #1123

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

Есть превосходный профессиональный термин flow (течение, процесс) (будем использовать его в транслите как "флоу"). Флоу — это один или больше сценариев использования или работы ПО. Например, у нас есть флоу Американец -> Американец. В данном конкретном случае на это флоу можно написать множество сценариев (например, с разными суммами оплаты, транзакции между разными штатами и т.д.).

Итак, у нас есть четыре флоу.

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

Нигилистический настрой и практическая методология

193

 

а. Скорее всего, самым приоритетным будет флоу Япо нец —> Американец, так как в США очень много японских автомобилей, запасные части производятся в Японии и наш сайт — это очень важный канал для поставок.

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

в. Далее идет Американец —> Японец, это флоу менее при оритетное, чем о и б, но более приоритетное, чем г.

г. Самый нижний приоритет у флоу Японец —» Японец, так как в Японии развита инфраструктура купли-продажи зап частей и нашим сайтом там почти не пользуются.

Вроде бы все смотрится логично, но до тех пор, пока мы не начнем копать.

Вопрос: Откуда у меня информация, на основании которой я сделал свои выводы? Откуда я знаю, что, например, в случае а (Японец —» Американец) "наш сайт — это очень важный канал для поставок"?

Ответ: Я знаю это, так как где-то (может быть, краешком уха) услышал или прочитал (может быть, в определенном контексте) эту информацию.

А что, если я неправильно понял эту информацию или она,

подобно постмодернизму, устарела?

Далее.

Вопрос: Что значит, что "внутренний рынок американских зап-

частей очень велик"? Насколько он велик? Ответ: ...

Карточным домиком были наши рассуждения. А ведь все ка-

залось таким логичным...

Давайте лучше пойдем к продюсеру, покажем ему нашу блоксхему и попросим совета.

Пришли, показали, попросили.

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

194

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

 

а. Самое большое количество сделок быломежду японскими пользователями (Японец —» Японец). Продюсер добавляет, что продвижение на японском рынке — это главный при оритет компании, как было сказано на очередном съезде, в смысле было сказано на последнем собрании.

б. Вторым по приоритетности идет Американец —» Японец. Вот данные по сделкам. Продюсер добавляет, что недавно были заключены контракты с крупными американскими автозаводами отом, что те будут использовать наш веб-сайт для продаж за рубеж.

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

г. Четвертым будет Японец —» Американец, так как вот циф ры. Продюсер добавляет, что японские компании распре деляют запасные части через своих авторизованных аме риканских дилеров, а американские дилеры японских ино марок используют наш сайт неохотно.

Затем мы попросили дать процент для каждого флоу относительно общей суммы сделок по всем четырем флоу (это было немного больше, чем было нужно, так как я уже знал приоритетность каждого флоу, но, как говорят, "кашу маслом не испортишь" и "куй железо, пока горячо"):

Блок-схема по спеку #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).

Польза раскладывания значений ввода на эквивалентные классы состоит в том, что мы отсеиваем огромное количество значений ввода, использовать которые для тестирования про-

сто бессмысленно.

Отсев происходит путем применения знаний о тестировании по-

граничных значений.

3. ПОГРАНИЧНЫЕ ЗНАЧЕНИЯ (boundary values)

Все очень просто. Давайте представим себе наши эквивалентные классы из предыдущего примера:

Вертикальная пунктирная линия — это первое возможное значение класса (нижний предел).

Вертикальная сплошная линия — это последнее возможное значение класса (верхний предел).

198

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

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

Для каждого эквивалентного класса может быть лишь один из трех вариантов:

а. Есть только нижний предел (класс 5).

б. Есть нижний и верхний пределы (класс 2, класс 3, класс 4). в. Есть только верхний предел (не рассматриваемый в данном примере класс, который ограничен только сверхугипотети ческим отрицательным значением, непосредственно пред

шествующим классу 1).

Пограничным тестированием (boundary testing) называется

применение метода тестирования пограничных значений.

Вот полная версия методатестирования пограничныхзначений.

а. Сначала тестируется нижний предел данного класса (если он имеется).

б. Затем тестируется верхний предел данного класса (если он имеется).

в. Затем тестируется любое значение внутри данногокласса. г. Затем тестируется верхний предел класса, непосредственно предшествующего данному классу (если предшествую

щий класс имеется).

д. Затем тестируется нижний предел класса, непосредствен но следующего за данным классом (если следующий класс имеется).

а, б, в являются позитивными тестами, гид

негативными тестами.

Давайте же возьмем и протестируем эквивалентный класс 2. Суть тестирования заключается в том, чтобы удостовериться, что для покупок от 200,00 до 499,99 руб. (включительно) будет дана скидка 2%. Опустим шаги сценариев и поговорим только о данных для них. Следуем методике тестирования эквивалентного класса, нам нужно лишь пять вариантов данных:

а. 200,00; б. 499,99; в. 315,11; г. 199,99; д. 500,00.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]