пятница, 26 июня 2015 г.

Баги повсюду. «Планета самоцветов» и ежедневный бонус

Скачала игрушку от Nevosoft «Планета самоцветов». Составляешь три одинаковых по цвету самоцвета в ряд — они взрываются, ты получаешь очки. Если самоцвет стоит на ячейке, она взрывается вместе с ним.

Планета самоцветов — игра «Три в ряд»

Каждый уровень дает цель и средства: взорвать 30 ячеек за 15 ходов, набрать 1500 очков за 30 секунд... Со временем уровни усложняются, появляются неразбиваемые ячейки, самоцветы «в цепях», которые взрывать надо дважды, бомбы и пустые ячейки.

Не успел выполнить цель исходными средствами? Потерял жизнь. Потерял все жизни — жди, пока они восстановятся. Одна жизнь восстанавливается один час. Максимум может быть 5 жизней.


Я играю утром в метро, и трачу все жизни. Потом захожу в игрушку вечером после работы — уже прошло 5 часов, все жизни на месте!

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

Играешь каждый день — получаешь бонус!

Бонус — деньги, кристаллы или жизнь

Но бонус недотестирован на реальных сценариях. Расскажу историю от лица возмущенного пользователя:

Захожу в игру утром, за ночь все жизни восстановились.

С утра все жизни на максимуме. И тут я получаю 2 бонусные жизни!

Тут появляется блок ежедневного бонуса и я выигрываю... 2 жизни! Юху... Хотя нет, стойте... Плашка сверху не изменилась, там все еще 5 с подписью max... 

ЭЙ!!! ГДЕ МОЙ БОНУС?!!

Ну вот... Обещали бонус, а получаешь фигу. Конечно, я не ожидала, что у меня теперь максимум будет 7 жизней всегда. Но вот конкретно сейчас, сегодня, я выиграла 2 дополнительные попытки, где же они?

Получается, что ежедневный бонус нельзя получать, если жизни на максимуме. Возможно, стоит закрывать это окно, тратить 2 жизни и... И что? А если я его закрою, а оно больше не появится? Хочу бонус Sad :(

Вернемся в шкуру тестировщика и вообразим, что я работаю на проекте «Планета самоцветов». Надо поставить баг! И сделать это по феншую:

****************************************************************************

При максимальном количестве жизней бонус « жизнь» не начисляется


Шаги для воспроизведения
  1. Запустить игру (прим. автора — считается, что в баг-трекере есть отдельный проект «Планета самоцветов», поэтому название указывать не надо) с максимальным количеством жизней — это важно Warning (!). Если жизней будей меньше, баг не воспроизведется.
  2. Вызвать ежедневный бонус — *описание, как это сделать* (прим. автора — у тестировщика обычно есть читерские ходы, чтобы вызвать бонус. Иначе как его тестировать, раз в сутки? Если есть чит — указываем его).
  3. Выиграть 1 или 2 жизни — если выпало что-то другое, повторить шаг 2, пока не выпадет жизнь.
Результат

Ничего не изменилось, у нас по прежнему 5 жизней, см рис «Бонус не начислен.jpg».

     Бонус не начислен.jpg

Ожидаемый результат

Жизней стало 6 или 7 (смотря сколько выпало в бонусе), но это единоразовое начисление. Максимум остается прежним — в данном случае это пять жизней.

Иначе получается, что бонус вроде как есть, а вроде и нету. Если у меня мало жизней — я получаю дополнительные, а если максимум — вообще облом. Это нечестно, ежедневный бонус должен быть поощрением игрока, а не «пустышкой».

Устройство — mini ipad + ios 8.3
Версия игры — 2.3

****************************************************************************

Далее обсуждаем задачу с разработчиками. Вполне возможно, они начнут упирать всеми конечностями — «Это не баг, это фича! Неча больше 5 жизней иметь, если денег не платил.» (в игре можно увеличить максимум до 7 жизней, но только за реальные деньги, бонусами в игре этого никак не достичь).

Тогда ведем с ним диалог насчет того, что бонус должен или подразумевать «пустышку», или всегда оставаться бонусом. И единоразовое начисление вполне можно реализовать. Возможно, наш баг превратится в «финт ушами» — вместо ошибки заводим улучшение функционала.


****************************************************************************

Бонус «жизнь» должен увеличивать максимальное количество жизней

Ежедневный бонус «жизнь» всегда должен увеличивать количество жизней персонажа, даже если у него уже есть максимальный запас. Увеличение должно быть единоразовым, максимум меняться не должен.

Дополнительная информация

Шаги для воспроизведения
  1. Запустить игру с максимальным количеством жизней — это важно Warning (!)
  2. Вызвать ежедневный бонус — *описание, как это сделать* 
  3. Выиграть 1 или 2 жизни — если выпало что-то другое, повторить шаг 2, пока не выпадет жизнь.
****************************************************************************

Классы эквивалентности и проверки


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

Подумайте, как бы вы проверяли ежедневный бонус? Какие тесты провели?

Мне видятся следующие варианты — проверить, что
  1. Бонусы всех типов в принципе начисляются (деньги, бриллианты, жизни).
  2. Время начисления — если в полночь, то проверить вечерком пограничные значения. Если + сутки, то попробовать изменить в настройках айпада часовой пояс или дату-время.
  3. Отображение на разных девайсах, вдруг на айфоне слишком мелко будет?
Так-с, теперь посмотрим, где можем упереться в максимум. Жизни — яркий пример:
  1. Исходно 3 жизни, начисляем 1 — среднее значение из позитивного диапазона, при начислении в максимум не уперлись.
  2. Исходно 3 жизни, начисляем 2 — среднее значение из позитивного диапазона, при начислении уперлись в максимум.
  3. Исходно 0 жизней, начисляем 1 или 2 — нижняя граница возможных жизней.
  4. Исходно 5 жизней и это максимум пользователя, начисляем 1 или 2 — жизни начислились, но через 7 часов максимум равен 5, а не 6 или 7! Проверяем верхнюю границу из допустимого диапазона. Что, походу, сейчас и упустили Smile :)
  5. Исходно 5 жизней и это НЕ максимум пользователя, начисляем 1 или 2 — то, что пользователь докупил себе жизней для увеличения максимума, не снимает с 5 границу. Мало ли, как поведет себя система?
  6. Исходно 7 жизней и это максимум пользователя, начисляем 1 или 2 — проверяем верхнюю границу для VIP-пользователей. А то, если они бонус не получат, им будет вдвойне обидно =)
Идем дальше. Деньги игровые можно купить за реал, поэтому стоит поискать границу там — поначислять себе максимум, который влезает/отображается/в принципе допустим. И «выиграть» бонус. Аналогично с самоцветами. Но, если тут найдем баг — он будет ооооочень минорный, потому что столько бабла в игру мало кто втюхает. 

А вот проблемы с жизнями вполне себе реальны, поэтому ставим баг или улучшение и доарабтываем начисление бонусов. И все довольны и счастливы Smile :)

См также:

Шаблон бага → использовался в статье
Как заводить задачи в баг-трекер → подробнее о том, как ставить задачу и заполнять обязательные поля.

PS — добавила пост в общую копилку багов.

9 комментариев:

  1. Также часто любят в играх делать покупки для пополнения какого-нибудь расходного ресурса до максимума; причем покупка сработает, даже если уже накопили максимум ресурса.
    Получается, что, тратя деньги в игру мы и так покупаем воздух, а тут мы ещё покупаем воздушный воздух.

    ОтветитьУдалить
    Ответы
    1. А все почему? Потому что плохо тестировали! Вот поможем разработчикам и тестировщикам, будем постить баги + «как можно было это найти» :)

      Удалить
  2. Это не баг Оля.
    Это фича.)))
    Так во всех играх сделано. Если у тебя максимум - то получить сверху ты не можешь. (я говорю именно про бонусы, влияющие на ключевой функционал)
    И это - особенности игр.

    Ты должна потратить 2 жизни и перезайдя в игру получить свой бонус.
    Хотя тут тоже нюанс, если забито в код, что считается 1 заход в сутки, то повторно он доступен не будет.

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

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

    :)

    Вуаля. Игры такие игры :)

    ОтветитьУдалить
    Ответы
    1. И да, в Nevosoft эта практика всех их игр.
      т.е. об этом просто надо почитать в описании игр.

      Но да, пользователи " я твой труба шатал" читать не хотят никакие FAQ и особенности, и считая что-то багам, пишут в поддержку.

      Так что тут, извини, надо быть или опытным пользователем (ты теперь будешь знать, например, что во всех играх Nevosoft так устроено и в большинстве мобильных -социальных также), или идеальным пользователем (которые читают FAQ и особенности игры )

      Удалить
    2. То есть ты считаешь, что теперь я побегу читать FAQ? :)
      FAQ для тех, у кого есть вопросы, у меня их, в целом, не было. Я описала историю пользователя и шаблон бага/улучшения. Разумеется, не факт, что это вообще баг и тут что-то улучшат. Об этом и в статье написано — "примем тот вариант, что это таки баг и его починили" :)

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

      Удалить
    3. Ну твой ответ, кажется, относился именно к данной игре:
      " А все почему? Потому что плохо тестировали! Вот поможем разработчикам и тестировщикам, будем постить баги + «как можно было это найти» "

      Удалить
    4. Ну да, я считаю, что если постить такие баги, то можно как минимум подкинуть идей для других тестировщиков "что можно еще потыкать" :)
      То, что в итоге найденный баг может оказаться для команды разработки не багом — это правда. В каждой компании свои критерии, это вполне может оказаться фичей. Мне этот кейс показался интересным с точки зрения "а если бы это было багом, что тестировать, чтобы его найти"? Небольшое исследование пограничных значений :)

      Удалить
    5. Кстати, Рина, ты не права. Разработчики исправили этот баг :) Сделали, как написано в моем посте. Теперь, если у меня максмальное количество жизней — 5 штук, и я выигрываю еще 1 или 2, они мне начисляются :)

      Удалить
  3. Я в стакан, наполненный водой до краев не могу налить ещё воды!
    Получается, что я зря покупаю ещё бутылку воды и выливаю её в стакан - в стакане воды не прибавляется. За что я плачу свои деньги?
    Даже если отопью из стакана 100 грамм, то всё равно не могу вылить полную бутылку в него. Что за обман. На бутылке же написано "0.5", а бокал объёмом 0.25.

    Надеюсь, что производители бокалов пофиксят это.

    ОтветитьУдалить