Эту статью я написала в рабочем конфлюенсе в 2013 году. И на момент написания этой статьи (2019 год) она все еще была актуальна.

Исходно чек-лист записала как напоминание, в том числе и себе. Потому что к задачам приходится возвращаться, в том числе людям, которые их НЕ проверяли. Например, во время регрессии надо хотя бы базово проверить функционал.

И вот ты открываешь задачу, листаешь до последнего комментария посмотреть, какая документация, что как работает, а там… Пусто. Или скромное «Все проверено, все ок». А документация где? Я же не в теме задачи, я хочу прочитать побольше!

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

image

Так и появился чек-лист закрытия задачи:

  1. Проверить задачу (здравствуй, кэп). Используйте готовые чек-листы для типовых задач + избегайте типовых ошибок в автотестах.
  2. Написать по ней документацию (min — пользовательскую, max — пользовательскую и «для коллег»).
  3. В JIRA оставить комментарий «проверил на сборке core ***, customer ***, посмотрел то, то и то, дока вот она».
  4. Приложить к задаче тестовые данные, если что-то проверялось вручную.

Он вроде как «про нас», но на самом деле универсальный. Ну разве что в вашей компании тестировщик не пишет документацию, тогда второй пункт меняем на «проверить, что вся нужная документация написана или актуализирована».

Разберем каждый пункт отдельно.

Документация


Если документации никакой по задаче нет (неважно, баг это или improvement), она переоткрывается.

Если документация есть, но в JIRA нет на нее ссылки в последнем комментарии — задача переоткрывается. (суровые времена, суровые меры)

Минимально надо написать / исправить пользовательские требования.

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

Если добавлялась задачи миграции — сразу написать общую инструкцию по обновлению релиза.

Комментарий


Если придется возвращаться к задаче позднее, иногда бывает полезно узнать, на какой версии тестировал тестировщик и что он проверял (вкратце).

Записываем версии из mercurial, даем ссылку на документацию и краткое описание: Проверил вручную через интерфейс / SOAP / буфер.

Тестовые данные


Если задача проверялась вручную, обязательно прикладываем к ней тестовые данные (если они не весят 3Тб)

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

Иногда кажется, что это все фигня, одного контрагента создали или выборки по view собрали.

Но если через полгода у Заказчика всплывет проблема и будут подниматься старые задачи для воспроизведения, эти файлики очень помогут, проверено и не раз. А вот актуальные данные из хранилища уже устареют.

Помните — взять готовый sql-запрос и проверить по базе займет 1 минуту. А снова сидеть и составлять этот запрос — это может и час занять, если не больше. Экономьте свое время!

Поэтому:

  1. Создали БД из dbStart — аттачим dbStart (экселька, в которой сохранен срез базы для тестирования).
  2. Загружали тестовые данные из хранилища — аттачим загруженный файл.
  3. Загружали их откуда-то еще — добавляем в хранилище и аттачим к задаче.

См также:

Как в Maven быстро создать БД по шаблону? — о том, как мы делаем dbStart для тестирования.

Коммент с тестами, докой и данными должен быть заключительным. А не так, что «я написал такие-то тесты, нашел такие-то проблемы» и потом переписка с разработчиком на 20 комментов, а твой «заключительный» затерялся где-то в середине. Если затерялся — продублируй (старый можно удалить).

Примеры


Когда мы набрали новых тестировщиков, этой статьи стало мало. Потому что задачи джуниоров я переоткрывала и рассказывала, как надо исправить завершающий комментарий, чтобы он был понятным. А они, в свою очередь, просили примеры «как правильно».

Так в статье появился еще один блок — «Примеры». Тут важно дать ссылки на реальные задачи в рабочей jira + какие-то доп статьи в конфлюенсе. Примеры должны быть разные: как на огромные комментарии, когда по задаче написано 200 автотестов, так и на небольшие задачи, с которыми ребята будут сталкиваться каждый день.

Я ссылки давать не буду, но смысл, надеюсь, понятен. Выглядит раздел примерно так:


Примеры больших задач, где много доки и тестов:

  • TEST-679 — Доработки JMS
  • TEST-760 — Обратный поток в разные JMS-источники

Примеры небольших задач: TEST-816 — расширили модель согласий.

При тестировании «добавить функционал в Демо» обращайте особое внимание на рефакторинг — выносите документацию к core, тесты все в Демо, а остальное через инклюд итд. Пример: TEST-4519 — Добавить кросс-сверку ФЛ-ИП в Демо.

Примеры полезных комментов «как я это тестил», к которым возвращаешься повторно (их лучше в HOWTO выносить, но и в задаче надо оставить): TEST-812 — Сделать перестроение индекса неблокируемым (куда ставить бряку*, чтобы проверить)

* Бряка: Breakpoint (жаргонное) — точка остановки кода. Это когда вы запускаете исходный код в режиме отладки, такие точки помогают отследить параметры, локализовать ошибку.

P.S. — другие статьи по тестированию см в моем блоге

Комментарии (30)


  1. rboots
    27.08.2019 16:32

    Почему на КПВ менеджер представлен человеком, а программист — белкой?


    1. tvr
      27.08.2019 18:29

      Ну тут ещё вопрос кем лучше быть — антропоморфной говорящей белкой с носом или человеком без оного.
      Кстати, интересно, как Зелёный пис смотрит на эксплуатацию этих милых, явно разумных, созданий?


    1. Leadmonkey
      27.08.2019 20:29

      Это не программист, это тестировщик.


      1. Molechka Автор
        27.08.2019 20:30

        Да, это диалог двух тестировщиков. Белка — неразумный тестировщик (новичок), Катька — более опытный товарищ


      1. hudson
        27.08.2019 22:48

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


        1. Molechka Автор
          27.08.2019 22:51

          Требовать с разработчика документацию и «что ты проверял» — хех, мечты мечты ))


          1. raptors
            30.08.2019 16:17

            Если документация есть, но в JIRA нет на нее ссылки в последнем комментарии — задача переоткрывается. (суровые времена, суровые меры)

            А кто тогда переоткрывает задачу, если там нет ссылки на документацию?
            Это же как раз тестировщик задачу и закрывал.


            1. Molechka Автор
              30.08.2019 16:18

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


              1. raptors
                30.08.2019 17:14

                Спрошу по-другому. Зачем вы как тестировщик закрывали задачу, если там не было ссылки на документацию?


                1. Molechka Автор
                  30.08.2019 17:18

                  Что вы понимаете под «вы»? Вы — это лично я? Или «вы» — это все наши тестировщики? Я не закрывала задачи без ссылок на документацию, только если забыв ее вложить. Или если я думала, что документация тут не нужна. Иногда это было правильно, а иногда нет, просто я про какую-то документацию не подумала / забыла о ней


                  1. raptors
                    30.08.2019 17:24

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


                    1. Molechka Автор
                      30.08.2019 17:28

                      Да, я как санитар ходила по чужим задачам и переоткрывала. Причины других разные — подумал, что документация не нужна. Доку написал, ссылку не дал. Забыл, что нужно пополнить доку «вот тут». Дока нужна, но не было времени ее сделать…

                      Написать чек-лист ? все сразу начали работать по нему. «Да, да, это очень хороший чек-лист и мы будем по нему работать, обязательно… Когда-нибудь потом»


  1. dimkrayan
    28.08.2019 10:44

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


    1. Molechka Автор
      28.08.2019 14:24

      В смысле «дублировать документацию»? Документация пишется не в джире, а в вики. В джире дается на нее ссылка.

      А вот по поводу «сиди, копайся во вкладке коммитов и сам ищи» — это как раз неуважение к чужому времени. Тебе лень написать закрывающий коммент, а другие должны искать, тратить на это время. Нет, если у вас на работе всем в кайф тратить время впустую — кто ж против. У нас даже те, кто сначала отмахивается «да посмотри в коммитах» раз сам с таким столкнется, два, и тоже скажет «Ага, с комментарием то удобнее и быстрее»


      1. dimkrayan
        28.08.2019 15:04

        если честно, очень давно не видел актуальной вики.

        А документация может писаться в коде, например — javadoc.

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


        1. Molechka Автор
          28.08.2019 15:12

          Это статья для тестировщика, который закрывает задачу, проверив, что:
          а) все работает
          б) документация написана
          в) автотесты тоже есть и написаны

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

          javadoc заказчику тоже отдавать? У нас заказной продукт и есть внутренняя документация «для своих» и внешняя для заказчиков. И всю стараемся поддерживать в актуальном состоянии. Да, разумеется, документация устаревает, ну так она и в вики, и в коде устареет. Увидел старье? Поправь, на худой конец поставь задачу на улучшение.

          Ну и плюс генерация из кода, но в красивом виде )


          1. dimkrayan
            28.08.2019 15:22

            >javadoc заказчику тоже отдавать?
            оно автоматически из него генерится. Но речь идет, конечно же, о конкретном уровне документации. Какую кнопочку нажимать, тут не напишешь.
            >Это статья для тестировщика
            Из статьи это не очевидно.
            >Увидел старье? Поправь, на худой конец поставь задачу на улучшение.
            В коде я вижу и код и документацию к нему одновременно. Следовательно, с многократно большей вероятностью поправлю, чем вики. А документацией «для своих» в 99% случаев являются названия классов, методов и переменных.


            1. Molechka Автор
              28.08.2019 15:40

              > Из статьи это не очевидно.
              По хабам разве что. Хотя в разных компаниях этим разные люди занимаются. Где-то разработчики сами задачи закрывают, где-то только аналитики доку правят. У всех свои процессы, но при закрытии задачи этот чек-лист никому не повредит, если не лень будет сделать.

              > А документацией «для своих» в 99% случаев являются названия классов, методов и переменных.
              Ну, у нас не так)


              1. dimkrayan
                28.08.2019 15:46

                Повредит. Как минимум, займет время.
                Принесет ли соразмерную пользу? Вот это ведь и обсуждаем. Мне пока-что это кажется односторонним пожеланием. «Чтобы другие сделали так, как удобно мне». А для тех, кто это должен делать, я это вижу лишь очередной «бюрократией», которую все так не любят.


                1. Sanchek
                  28.08.2019 17:54

                  Завтра ваш коллега заболеет/уйдет в декрет/выйграет в лоттерею и уйдет из компании со словами: «Все, я богат. Пока, неудачники, я вас всегда ненавидел!».
                  Вам отдадут на доработку его недокументированный код. Что вам останется делать в такой ситуации? Переписывать с нуля?


                  1. Molechka Автор
                    28.08.2019 17:57

                    Бюрократия — это когда надо 100500 всего сделать, причем никому не нужного. Обязательно документацию «по феншую» написать и прочее. Никто не предлагает заниматься бюрократией. Если ты ЧТО-ТО сделал, дай ссылку в закрывающем комментарии.

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

                    Если же в компании не принято писать документацию, автотесты… Ну да, ссылку будет некуда давать, увы и ах. У нас принято


                  1. UnclShura
                    28.08.2019 18:01

                    Ну останетесь вы с неполной, устаревшей и неструктурированой документацией и что? Так лучше?

                    И еще: даже самая подробная, хорошо структурированая докуметация бесполезна если о ее существовании не знаешь. Это камень в вики (Confluence в частности), которая фактически write-only.


                    1. Molechka Автор
                      28.08.2019 20:38

                      Если вы вообще не пишите документацию на проекте ибо «фи фи фи вики, только код, только хардкор» — да, ссылку давать некуда.

                      Если автотесты тоже нигде не описываются, потому что они написаны на простом и понятном коде и все их сразу понимают, даже джуны (ню-ню, но допустим) — да, тогда вам не на что давать ссылки.

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


                  1. dimkrayan
                    28.08.2019 18:02

                    ни разу при вхождении в проект не рассчитывал на документацию. Тем более в вики. Код — сам по себе документация. И надо его писать так, чтобы он легко читался. Описано, например, в «чистый код».


                    1. Molechka Автор
                      28.08.2019 20:39

                      Надо, кто ж спорит. Но в чистоту кода верится еще меньше, чем в чистоту документации


                      1. dimkrayan
                        29.08.2019 12:14

                        хз, на всех проектах, где я работал, за чистотой кода следили. Даже периодически приводили в порядок старый код.


                        1. Molechka Автор
                          29.08.2019 12:26

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


                1. UnclShura
                  28.08.2019 17:57

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

                  Заставлять кого-то другого делать «как правильно» — неправильно.

                  Вики тут хороший пример. Мы ведем вики (не системно), но она всегда устаревшая. Но когда приходит кто-то с вопросом и тебе влом отвечать на одно и то-же десятый раз — вот тогда вики обновляется и отдается. А самим нам она не нужна вообще-то. Делать что-то, что не помогает в работе смысла нет даже если оно «правильно» и «все знают что...».


  1. shockable
    30.08.2019 06:39

    Необычайно удивительно узнать, что такая проблема существовала в 2013 году и тем более осталась актуальной в 2019. Чем, собственно говоря, занимается отдел контроля процессов? По какому процессу в целом осуществляется разработка?


    1. Molechka Автор
      30.08.2019 11:17

      1. Я написала «статья актуальна», а статья про чек-лист, а не про проблему. Чек-лист остался актуальным, только примеры для новичков дописали. А что в нем должно было устареть? Документацию перестали писать? Нет. Автотесты перестали писать? Тоже нет.

      2. Отдел контроля процессов? Как я счастлива, что живу не в столь бюрократическом мире)) Это мне про статью то говорят что «бюрократия жеж, целых 2 минуты тратить ссылки вставлять, о кошмар!!!», а тут целый отдел, который рассказывает тебе, как строить процессы в твоем отделе))

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