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

Всем привет!

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

Поехали.

janqzqzi_vusukpigjufpikih-i.jpeg

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

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

axoe428rh99i9di4vm-khnnzwag.png

Традиционное тестирование
0qkzmp9mbut-79dg88qxm-bdmqm.gif

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

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

ev8gwdglczsw13gyqfckr5f8pzy.gif

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

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

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

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

65e7ga8l3uasvmls2cva0utyu1q.png

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

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

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

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

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

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

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

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

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

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

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

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

Сложности:

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

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

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

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

THE END

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

© Habrahabr.ru