julia_v_iluhina

Untitled

Jan 7th, 2017
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 20.10 KB | None | 0 0
  1. /*
  2.     у тебя - разработан сценарий для е2е
  3.     почитай условие задания -
  4.     https://docs.google.com/document/d/14VNBSVuTY0xGFI_OYSxDCae02BQG_yr68DLoNcll08Q/edit
  5.  
  6.     в этом задании - я чуть больше обычного помогаю
  7.     так что - сначала - разбор - что нам нужно
  8.  
  9.     а нужно нам - перечень основных операций (не сценарий, а просто список действий, которые возможны)
  10.     причем разумно его детализировать до каждого из фильтров
  11.  
  12.     а затем - разберем и твой сценарий
  13. */
  14. /*
  15.     Для All фильтра - что мі можем сделать с тасками
  16.         create
  17.         edit
  18.         complete
  19.         complete all
  20.         reopen
  21.         reopen all
  22.         clear completed
  23.  
  24.     reopen = еще раз кликнуть, на включенном чекбоксе .toggle -
  25.     и ранее закомпличеная таска станет активной, переоткроется
  26.  
  27.     reopen all - аналог complete all
  28.     когда все таски закомпличены - нажатие на этом чекбоксе приведет к пререоткрытию всех тасок
  29.     http://joxi.ru/5md7jYwtkkXJvr
  30.  
  31.     вот это действие - reopen all - можно в списке main use cases - не указывать
  32.     из соображений более низкого приоритета по сравнению с другими операциями
  33.  
  34.     а можно и указать
  35.     чтоб список был полным
  36.     я бы советовала именно так
  37.     возможно - как-то пометить - что не есть высокоприоритетным - это нам поможет в дальнейшем при планировании е2е сценария
  38.  
  39.     с операциями над тасками на All фильтре - разобрались
  40.     еще - аналогично - нужно составить список операций для Active и Completed фильтров
  41.  
  42.     тут - учти, что не все выше перечисленные операции можно на этих фильтрах выполнить
  43.     а кроме того - на Completed фильтре - некоторые операции выполнять нет смысла (например, добавлять таску)
  44.  
  45.     тут - смотри сама
  46.     можно и тут включить в перечень все, что можно выполнить
  47.     и пометить не высокоприоритетное
  48.     думаю, это оптимальная стратегия
  49.  
  50.     кроме этого - нужно в отдельной подгруппе - например General - выделить проверку items left
  51.     Она (и ее приоритет) не зависит от фильтра, но зависит от предідущих віполненніх операций
  52.     Так что - разумно вынести это как отдельную подгруппу с одним подпунктом
  53.  
  54.     еще одна подгруппа - переходы по фильтрам
  55.     опиши - с какого на какой фильтр можно переключиться
  56.  
  57.     и еще одна подгруппа - Additional edit operations
  58.             найди еще дополнительные юз кейсы
  59.  
  60.             юз кейс edit мы уже описали
  61.             он реализуется так
  62.                 даблклик на таске
  63.                 ввод нового значения
  64.                 энтер
  65.             его уже рассматривать не будем
  66.             но есть еще похожие варианты )
  67.  
  68.             поэкспериментируй и найди другие варианты развития событий при редактировании
  69.             например, если новое введенное значение = пусто
  70.             или в конце - нажимаем не энтер, а ..., или делаем еще что-то
  71.  
  72.  
  73.             сформулируй отдельную подгруппу - для дополнительных операций редактирования
  74.             (именно дополнительных, т к стандартное редактирование - уже в нашем списке есть
  75.             и не надо его в новом подпункте дублировать)
  76.  
  77.  
  78.             будешь формулировать названия пунктов - старайся быть лаконичным и точным
  79.  
  80.             строй фразы так - что получим + как получим
  81.             т е начинай с описания результата и продолжай описанием пути его достижения
  82.  
  83.             пример - если при редактировании текст изменить на пустую строку, то таска удалится
  84.             такой пункт формулируем - delete by emptying text
  85.  
  86.             есть еще варианты -
  87.             для 2-ух способов подтверждения редактирования(не с помощью нажатия на Enter)
  88.             и одного способа отмены редактирования
  89.               начали редактировать, внесли новый текст для таски,
  90.               ____что-то-сделали___ (найди - что),
  91.               результат - у таски старый текст - именно потому отмена редактирования
  92. */
  93. ****************************************************
  94. /*
  95.     дальше - разбор сценария
  96.     перед тем как  приниматься за автоматизацию е2е - прочитай задание
  97.     https://docs.google.com/document/d/17ZU5K7BGVfJKdJS8LQiFDExzHjChietETMxhZLk7A6Q/edit?usp=sharing
  98.  
  99.     и учти общие рекомендации - я их приведу после разбора сценария
  100. */
  101.  
  102. E2E flow:
  103.     at all filter(default)
  104.         create 4 tasks
  105.         verify: tasks texts
  106.         /*
  107.             не торопись добавлять сразу 4 таски
  108.             это тебе перекроет возможность использовать неявные проверки через действия - см ниже - будет подробнее
  109.             а такие проверки - позволят улучшить эффективость
  110.             на уровне Smoke coverage - это очень важно
  111.         */
  112.         edit 1 task
  113.         delete 1 task (the one which was edited)
  114.         /*
  115.             в случае, если в списке тасок - только вот эта одна таска - да
  116.             можно было бы без проверок выполнить сначала edit 1 task ( так проверили создание таски)
  117.             потом delete 1 task )так проверили редактирование таски)
  118.  
  119.             но у нас - несколько тасок
  120.             потому - каждая из последующих операций - не проверяет предыдущую
  121.             потому что - касается лишь одной из нескольких тасок
  122.  
  123.             также - для повышения эффективности - советую удаление тасок - откладывать на конец сценария
  124.             так можно сэкономить и на этом
  125.             меньше тасок понадобится - менье их создавать придется
  126.             тоже эффективность повысим
  127.         */
  128.         "items left" counter should have (3)
  129.         /*
  130.             проверка items left - не заменит проверки текстов тасок
  131.             проверка текстов тасок - более высокоприоритетная проверка
  132.             т к более важное проверяет - состояние списка тасок
  133.  
  134.             items left -можно покрыть лишь еиножды в рамках е2е
  135.             он будет длинным
  136.             чтоб не загромождать его лишними подробностями
  137.  
  138.             а дальше - разберем - в каких обстоятельствах разумнее покрывать items left
  139.         */
  140.  
  141.         *switch to active (also is a test step)
  142.         /*
  143.             согласна, это тоже шаг
  144.  
  145.             и как другие шаги - должен быть проверен
  146.  
  147.             тут у нас -
  148.                 было = таски 2 3 4
  149.                 перешли
  150.                 стало = таски 2 3 4
  151.  
  152.             если переход на фильтр не будет работать вообще - тоже такая картинка будет
  153.             и чтоб точно установить - что
  154.                 переход на другой фильтр работает = нужно чтоб состояние списка тасок менялось
  155.                 переход на другой фильтр работает правильно = нужно чтоб состояние списка верно отражало логику фильтра
  156.  
  157.             чтоб такое получить - нам нужна немного другая тестовая ситуация
  158.             пример
  159.                 на all
  160.                 добавили таску
  161.                 отредактировали ее
  162.                 закомплитили
  163.                 проверили - в списке - есть такая таска
  164.                 перешли на active фильтр
  165.                 проверили - в списке нет ни единой видимой таски
  166.  
  167.             было-стало для списка тасок - разное
  168.                 закомпличивание таски - проверили
  169.                 что на all - таски видимы в любом состоянии - тоже проверили
  170.                 да и неявные проверки использовали очень эффективно
  171.  
  172.         */
  173.  
  174.     at active
  175.         verify: there are 3 tasks
  176.         add 1 more task
  177.         /*
  178.             не стремись добавлять таски раньше чем они нужны
  179.             хорошая стратегия - на all добавить одну
  180.             и тут - одну
  181.         */
  182.         edit 1 previous task
  183.         /*
  184.             раз редактирование покрыто выше - все
  185.             уже не надо
  186.             т к - мы реализуем smoke покытие - мы покрываем
  187.             только высокоприоритетное
  188.             и только на одном из контекстов
  189.  
  190.             про это ниже подробнее напишу
  191.  
  192.             т к тасок - в списке - не одна
  193.             неявные проверки через действия - тут не подойдут
  194.         */
  195.         verify: tasks texts
  196.         mark 2 tasks completed+
  197.         /*
  198.             дважды делать одно и то же - не стоит
  199.  
  200.             вот  - как я в примере выше приводила
  201.             допустим - на all - покрой complete
  202.             а тут - complete all
  203.         */
  204.         "items left" counter should have (2)
  205.         /*
  206.             как писала выше - тексты тасок - проверять обязательно
  207.             это - наиболее точная и важная проверка логики приложения
  208.         */
  209.  
  210.         *switch to completed
  211.  
  212.     at completed
  213.         verify: there are 2 tasks
  214.         make 1 task active again
  215.         /*
  216.             это то что я назвала reopen
  217.         */
  218.         "items left" counter should have (3)
  219.         clear completed
  220.         verify: list is empty
  221.  
  222.         *switch back to active
  223.         /*
  224.             на active - мы уже переключались
  225.             правда, с другого фильтра
  226.             но этого для smoke покрытия достаточно
  227.         */
  228.  
  229.     at active (again)
  230.         mark all completed
  231.         clear completed
  232.         /*
  233.             уже покрывали - больше не нужно
  234.         */
  235.         verify: list is empty
  236.  
  237.         *switch back to completed
  238.         /*
  239.             та же история
  240.             на этот фильтр - мы уже переключались
  241.             да, контекст был другой - переключались с другого фильтра
  242.  
  243.             но - для smoke этого достаточно - покрываем действие = переход на completed filter
  244.             единожды, на одном из контекстов
  245.  
  246.             а вот на all перейти в конце сценария - было бы ок
  247.             переход на all - еще не покрыт
  248.             для всех переходов с фильтра на фильтр - реализуй удачую тестовую ситуацию
  249.             чтоб поточнее проверить фильтеринг
  250.         */
  251.  
  252.     at completed (again)
  253.         verify: list is empty+
  254. **************************************************
  255. /*
  256.     сценарий - уже неплох - покрыто многое высокоприоритетное, операции распределены по разным фильтрам сравнительно равномерно
  257.     но - его можно и нужно улучшить
  258.  
  259.     посмотри - на описание задания, на комментарии ниже, и на текст самого задания
  260.  
  261.     думаю, станет проще
  262.  
  263.     далее - поправляй список юз кейсов (фактически, это текущее задание)
  264.     и сразу - приступай к следующему - разработай е2е тест-метод
  265.     думаю, сведений уже достаточно чтоб браться за это)
  266. */
  267. /*
  268.   Мы реализуем е2е сценарий для smoke покрытия
  269.     это значит - что достаточно покрыть высокоприоритетный юз кейс лишь единожды, на одном из контекстов
  270.  
  271.     т е - покрыли edit на active - все, этого достаточно
  272.     конечно, с добавлением таски так не получится )
  273.     но - и того количества тасок, что ты создал - не нужно
  274.  
  275.     но с остальными операциями - это получится вполне
  276.  
  277.     задача smoke покрытия - быстро дать нам фидбек = все высокоприоритетные операции работают
  278.     не все высокоприоритетные операции работают на всех контекстах
  279.     а именно вот так - что они работоспособны
  280.  
  281.     дальше - если smoke тестирование пройдено - можно глубже тестировать приложение
  282.     а если нет - так нет смысла продолжать тестировать - есть серьезные проблемы и надо их устранять
  283. */
  284. /*
  285.     Приоритет действия высокий если
  286.             - нерабочее действие не позволяет использовать приложение
  287.             - у действия нет альтернативы
  288.             - действие - часто используемое
  289.             - действие - стандартное для многих приложений
  290.  
  291.                 Примеры высокоприоритетного
  292.                         - добавление задачи - высокоприоритетная штука, потому что если отвалится - приложение не работает
  293.                         - отмена редактирования с помощью esc - во-первых, стандартное поведение, во-вторых - нет альтернативы
  294.                         - закомпличивание/раскомпличивание одной задачи - часто используемое и критично чтоб работало - важный функционал
  295.  
  296.                 Так вот - низкоприоритетные вещи - в smoke-тесте не нужно покрывать.
  297.                 Чтобы оставить smoke тест эффективным
  298.  
  299.                 А вот Reopen All - уже имеет приоритет пониже - т к реже будет использоваться, чем тот же reopen
  300.                 потому - reopen - стоит покрыть, а Reopen All - уже не стоит
  301.  
  302.                 Проверку счетчика Items left - стоит покрыть лишь единожды. В общем-то - это не высокоприоритетная штука.
  303.                 Т к даже если это не будет работать - приложение будет все равно функционально.
  304.                 С другой стороны, на состояние этого счетчика влияет любая выполненная операция.
  305.                 Ввиду этого - в рамках е2е покроем его лишь единожды.
  306.     http://www.tutorialspoint.com/software_testing_dictionary/priority.htm
  307. */
  308. /*
  309.     про использование неявных проверок через действие
  310.           вариант 1
  311.           add("task1"");
  312.           edit("task1", "task1 edited");
  313.           delete("task1 edited");
  314.  
  315.           вариант 2
  316.           add("task1", "task2");
  317.           edit("task2", "task2 edited");
  318.           delete("task2 edited");
  319.  
  320.        Вариант 1 = правильное использование таких проверок через действие
  321.  
  322.        Вариант2 = не правильное использование
  323.        Т к последующие действия не проверяют состояние ВСЕХ тасок в списке
  324.  
  325.        Таким образом - ты сможешь эффективно использовать неявные проверки через действия только в случае,
  326.        если в списке тасок будет видима лишь одна таска
  327.  
  328.        Также не забывай - после каждого действия должна быть выполнена проверка
  329.        Сразу
  330.        Не получается использовать неявную проверку через следующее действие - используй явную
  331.        Но - действие должно быть обязательно проверено сразу
  332. */
Advertisement
Add Comment
Please, Sign In to add comment