in Профессиональное

О метафорах в тестировании и не только

Недавно с Сережей Мартыненко (http://blog.shumoos.com/) столкнулись с весьма неожиданной областью применения метафор в жизни и в тестировании. Если интересно – читайте дальше 🙂


Пример первый, простой (жизненный).

Представим трех людей, идущих по пустыне. Они идут вместе и несут топливо для ночного костра. Первый человек – силач, несет два полена. Второй – обычный человек, несет одно полено. Третий – весьма хилого сложения и ничего нести не может.
Остановившись на ночлег, путешественники разложили костер, приготовили еду, согрелись и т.п… На утро, тот, кто не нес с собой ни одного полена сказал:

– Друзья, я не мог нести ни одного полена, но вы пустили меня к костру. У меня с собой почти ничего нет, но вот есть 6 монет. Я не знаю как вы их разделите, но вот возьмите пожалуйста эти деньги.

Вопрос – как должны поделить эти деньги оставшиеся два человека?

Не будем размышлять пока о вкладе каждого в дело разжигания костра, а перейдем к метафоре. Единицей метафоры пусть будет не полено, а пиво (например темный Будвайзер ;). Так вот, представим, что я, Петя и Вася решили после работы пропустить по бутылочке пива. Петя и Вася ушли раньше, поэтому Петя купил бутылочку не только себе, но и мне. Через несколько минут я присоединился к ребятам. Кому я должен отдать деньги? По-моему ответ очевиден – рассчитываться я буду с Петей.

Ну как? Не правда ли намного проще?

А теперь рассмотрим пример с пересекающимися граничными условиями. Пусть у нас есть некий продукт, который мы хотим продвигать на рынке и для улучшения его привлекательности для клиента предлагаем некоторые скидки. Пусть единица продукта (штука, день, коробка, контейнер…) стоит 10 денег. А при покупке оптом действуют скидки:

Количество Скидка
от 100 10%
от 200 20%
от 300 30%

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

Так вот, в ходе решения, некоторые люди проявили полное непонимание специфики пересекающихся граничных условий. В частности, почему на 1000 покупается не 100 единиц нашего продукта а больше. Собственно здесь замечательно сработала та же метафора. Т.е. например наш продукт это и есть пиво, ценой 10 денег за бутылочку. Т.о. получается что за 1000 денег, непонятливый сотрудник купит именно 111 бутылок, а не 100 как он считал ранее на более абстрактном продукте (так как от 100 есдиниц у нас уже действует скидка – 9 денег за единицу, что составляет 900 денег).

Забавным фактом при такой схеме скидок является наличие “мертвых” чисел, т.е. количества единиц продукта, которые мы не сможем заказать.

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

Что касается тестового покрытия, то тут нюансом является контроль как раз пограничных значений при переходе от одной скидки к другой (0% это тоже скидка, не так ли? Только пустая). Например переход на скидку 10% у нас происходит на 900 денег. Поэтому надо взять дополнительную проверку граничных условий – 899 денег.

Write a Comment

Comment

ERROR: si-captcha.php plugin: GD image support not detected in PHP!

Contact your web host and ask them to enable GD image support for PHP.

ERROR: si-captcha.php plugin: imagepng function not detected in PHP!

Contact your web host and ask them to enable imagepng for PHP.