| сохранено

H Автоматизация тестирования и Agile Перевод

Всем привет!

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

На прошлых двух таких мероприятиях не раз задавался вопрос о связи 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

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

комментарии (8)

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

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

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

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

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

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

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

Увеличение количества рабочих центров и специализация это прямое противоречие Agile. Кроме того, описанная система предельно медленная и неустойчивая к флуктуациям.

У меня в команде автоматизация не отделяется от разработки, аналитики и тестирования. Чем по вашему agile команда отличается от не-agile?
0
RationalBot ,   * (был изменён)
Такое ощущение, что взяли презентацию без самого доклада. Т.е. обрывочные тезисы, взятые со слайдов, без всякого объяснения.

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


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

Извините, не нашел, по большей части вижу только обрывки фраз. Можете привести несколько примеров идей из статьи?
Я понимаю, что тема горячая, но за два десятка лет с начала использования Agile в разработке ПО от создателей курсов ждешь гораздо более зрелого материала.
Надеюсь, что читатели статьи сделают правильные выводы о качестве курсов.
0
lxsmkv ,  
Если вы ссылаетесь на материал, значит считаете что он вполне раскрывает тему. Оригинал, к сожалению, не выдерживает никакой критики. Такое впечатление, что автора заставили сделать презентацию на тему к которой он имеет отдаленное отношение и он просто скидал все в кучу что нашел в поисковике. Тот кто на собственном опыте подтвердил или опроверг какие либо тезисы об автомтизации и agile, поделился бы опытом, а не «лозунгами» которми кормят заказчиков, чтобы продать им больше часов.
0
pletinsky ,   * (был изменён)
Что это было? о_О
Best Practices в Agile Тестировании

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


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

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

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

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

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

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

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