понедельник, 29 октября 2018 г.

State Transition на примере тортика!

Вчера в чатике моей школы был очень интересный диалог по поводу рисования State Transition. Студентка рисует его для просмотра сериала и пытается разобраться, как это сделать:

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

— Ну смотрите, Вы продолжаете описывать и смотреть на вещи, как пользователь, а надо как тестировщик. Сериалы из пустоты не берутся. Кто-то их закачивает. Значит, все же связка "сериала не существует" и "сериал загружен на сайт" — уже есть)

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

— По хорошему у тестировщиков на это есть права) и им дают необходимый доступ

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


Постановка мозгов через тортики


Тут моя коллега решила объяснить рисование карты на примере... Тортика! Дальнейший диалог был просто потрясающий, не могу не поделиться им с вами (разумеется, с разрешения коллеги, все же это ее идея, а не моя). Итак, приступаем:

— Вот смотрите...торт любите? Или другую еду какую-нибудь)
— Допустим)
— Отлично.

Чтобы приготовить торт, нам нужны ингредиенты, правильно? Это то, из чего он состоит. Как и наши объекты из параметров, но только в граммах.
Торт "не существует"
Так вот, от того, что какого-то ингредиента будет больше/меньше, состояние торта не изменится. Он будет по-прежнему "не существует".


Чтобы его состояние изменилось — надо начать что-то с ними делать. Например, смешать, залить в форму и отправить в духовку. Тогда состояние будет "В процессе готовки".

«В процессе готовки»

Потом, когда бисквит испечется, мажем его кремом и украшаем. Он становится у нас "Торт украшен".

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

А вот дальше — разнообразие)

Мы можем съесть торт, тогда он станет "Торт съеден".


Возможно, мы уедем и не съедим торт, пока его можно есть. Тогда он станет "Торт испорчен".

Кстати, в процессе приготовления могли быть и другие ответвления. Например:

  • передержали бы бисквит, состояние изменилось бы на "Торт испорчен";
  • не стали бы украшать бисквит и корж испортился бы → "Торт испорчен";

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

— Ок, изначально торта у Вас не было. Потом у Вас появилось состояние "Торт куплен". А дальше то, что происходит после "Торт готов" ¯\_(ツ)_/¯

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

— То есть, я правильно понимаю?

  1. Купила
  2. Поставила в холодильник на потом
  3. Передумала, достала, надкусала
  4. Снова передумала, решила съесть целиком, осилила половину
  5. Расстроилась и решила не доедать вообще и выкинуть

Это всё не важно и состояние торта не меняется, пока он не съеден или не стух?)

— Ну он же еще является тортом? Если его начали есть, но не закончили — можно ввести промежуточное состояние "В процессе уничтожения" =))

  • 1-2 это торт куплен
  • 3-4 это в процессе уничтожения
  • 5 выброшен

— Тогда чем это отличается от

1. Купила — добавлен на сайт/загружен на сайт/находится на сайте
2. Поставила в холодильник на потом — сохранен, чтобы посмотреть позже
3 - 4. Передумала, достала, надкусала, снова передумала, решила съесть целиком, осилила половину — в процессе просмотра/уничтожения
5. Расстроилась и решила не доедать вообще и выкинуть — просмотр прерван/торт в помойке

— 5-е он еще в процессе.
У сериалов обычно прогресс есть, и его просто так не убрать Smile :)

  • либо досмотрел
  • либо он в процессе просмотра

— Спасибо!

См также:


PS — это выдержка из моей книги для начинающих тестировщиков, написана в помощь студентам моей школы для тестировщиков

2 комментария:

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

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