Всем привет!

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

На прошлых двух таких мероприятиях не раз задавался вопрос о связи Agile и автоматизации. Вот, нашёлся в закромах неплохой и не сильно большой материал, которым с вами и делимся.

Поехали.



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

Традиционное тестирование (каскадная модель) vs. Agile Тестирование



Традиционное тестирование



  • Следует нисходящему подходу: завершение одной фазы приводит к началу следующей, что затрудняет внедрение изменений.
  • Менеджер проекта является руководителем.
  • Вовлеченность клиента требуется на начальных этапах согласования требований.

Agile Тестирование



  • Каждый член команды несет ответственность в соответствии со своей ролью и работой.
  • Достаточно гибкий подход, позволяющий вносить изменения почти на любом этапе.
  • Требования клиента необходимы на всем протяжении разработки.

Best Practices в Agile Тестировании

  1. Автоматизация юнит-тестирования.
  2. Разработка через тестирование.
  3. Автоматизация регрессионного тестирования.
  4. Исследовательское тестирование.

Как Agile связан с Тестированием


  • Тестирование продвигает проект.
  • Тестирование НЕ фаза.
  • Все занимаются тестированием.
  • Сократите задержку обратной связи — начинайте тестировать как можно раньше и чаще.
  • Тестирование отражает ожидания.
  • Поддерживайте чистоту кода и фиксите баги быстро.
  • Избавьтесь от излишков документации.
  • Тестирование — часть “Критерия готовности” (“DoD”, Definition of Done).
  • От “Тестирования после Разработки” к “Разработке через Тестирование”.

Становление Agile Тестировщика-Автоматизатора

  • Обеспечивайте непрерывную обратную связь.
  • Доносите ценность до клиента.
  • Предоставляйте связь “лицом к лицу”.
  • Не усложняйте.
  • Внедряйте усовершенствования.
  • Реагируйте на изменения.
  • Занимайтесь самоорганизацией.
  • Сфокусируйтесь на людях.

Что не так с Ручным Тестированием?



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

Какие тест-кейсы стоит автоматизировать?



  • Тест-кейсы для автоматизации могут быть выбраны по критерию Окупаемости Инвестиций (ROI, Return of Investment)
  • Тест-кейсы с высоким риском — критические для бизнеса тест-кейсы
  • Повторяющиеся тест-кейсы
  • Тест-кейсы, которые слишком сложно и неудобно выполнять вручную
  • Тест-кейсы, требующие много времени.

Какие тест-кейсы не стоит автоматизировать?



  • Тест-кейсы, которые были разработаны недавно и еще не были проверены вручную.
  • Тест-кейсы, требования для которых постоянно меняются.
  • Тест-кейсы на ad-hoc основе.

Преимущества автоматизированного тестирования

  • Экономия времени.
  • Скорость.
  • Стабильность.
  • Поддержка тест-сьюта.
  • Многоразовость.
  • Увеличенный охват.
  • Снижение стоимости.

Карьера в автоматизации тестирования



Сложности:

  • Автоматизация становится критически значимой частью бизнеса в связи с постоянными изменениями в разработке ПО.
  • Для автоматизации тестирования требуется опыт в разработке ПО, а также знания основ тестирования.

Достоинства:

  • Быстрый карьерный рост.
  • Разработка ПО для тестирования ПО.
  • Сбалансированная карьера: получаете знания и в тестировании, и в разработке.

Удачи и успехов в тестировании :)

THE END

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

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


  1. Wolonter
    13.03.2018 20:42
    +1

    Разве в agile команде возможен «тестировщик-автоматизатор»?
    Текст протворечит своим же утверждениям: «Тестирование НЕ фаза. Все занимаются тестированием.»
    Это раз.

    Два.
    «Автоматизация не требует вмешательства человека. Их запуск не требует наблюдения (например, на ночь).» — смешной бред.

    Три. Вы все еще делите тестирование на ручное и автоматизированное? Почитайте определения.

    Четыре. А можно примеры если не по пунктам, то хотя бы по заголовкам? С чиселками.


    1. MaxRokatansky Автор
      14.03.2018 14:47

      Большое спасибо за вопросы!

      «Тестирование не фаза» — это действительно так. В начальных стадиях внедрения Agile методологии в команду, первые вопросы, которые возникают: «Что будет делать тестирование в первые несколько дней спринта?» и «Что будут делать разработчики, пока тестировщики тестируют в конце спринта?»

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

      Поделитесь, пожалуйста, своим опытом работы в agile команде. Когда у вас происходит тестирование и автоматизация?


  1. RationalBot
    13.03.2018 23:06

    Такое ощущение, что взяли презентацию без самого доклада. Т.е. обрывочные тезисы, взятые со слайдов, без всякого объяснения.

    Как (методология) Agile связан(а) с Тестированием

    1. Тестирование продвигает проект — каким образом? как связано с Agile?
    2. Тестирование НЕ фаза — как связано с Agile?
    3. Все занимаются тестированием — кто все? как связано с Agile?
    4. Сократите задержку обратной связи — начинайте тестировать как можно раньше и чаще — хороший лозунг, но как он связан с Agile?
    5. Тестирование отражает ожидания — чьи ожидания? как связано с Agile?
    6. Поддерживайте чистоту кода и фиксите баги быстро — как как связано с тестированием или Agile?
    7. Избавьтесь от излишков документации — и это поможет тестированию?
    8. Тестирование — часть “Критерия готовности” (“DoD”, Definition of Done) — Как процесс или активность может быть частью критериев?
    9. От “Тестирования после Разработки” к “Разработке через Тестирование” — как связано с Agile?


    Резюмируя, лучше бы материал не просто нашли в закромах, но и подготовили к публикации.
    Тема-то, и в самом деле интересная.


    1. MaxRokatansky Автор
      14.03.2018 15:22

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


      1. RationalBot
        14.03.2018 15:45

        Статья содержит только основные идеи создания автоматических тестов в Agile команде.

        Извините, не нашел, по большей части вижу только обрывки фраз. Можете привести несколько примеров идей из статьи?
        Я понимаю, что тема горячая, но за два десятка лет с начала использования Agile в разработке ПО от создателей курсов ждешь гораздо более зрелого материала.
        Надеюсь, что читатели статьи сделают правильные выводы о качестве курсов.


  1. lxsmkv
    14.03.2018 01:59

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


  1. pletinsky
    14.03.2018 14:44

    Что это было? о_О

    Best Practices в Agile Тестировании

    Автоматизация юнит-тестирования.
    Разработка через тестирование.
    Автоматизация регрессионного тестирования.
    Исследовательское тестирование.


    Автоматизация юнит-тестирования

    И как вы представляете этот процесс автоматизации? Юнит тесты что, бывают не автоматическими? Не говоря уж о том, что юнит тесты тестируют код, а не продукт.

    Разработка через тестирование

    Разработка в узком смысле. Не тестирование. Из название должно быть понятно. Использовать полноценный TDD с какими либо тестами, кроме модульных у вас не получится, я вас уверяю. Следовательно тестирование как таковое тут вообще не при чем.

    Автоматизация регрессионного тестирования

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

    Может конечно это из какой-то умной книжки взято, я не знаю. Но исходя из моего опыта звучит, простите, как-то бредовато.