2015-12-03 1 views
3

Я не могу заставить себя заставить каждое совершение почти сразу развертываться для производства, поэтому у меня недостаточно времени для его проверки, у меня нет «власти», чтобы сказать, что что-то есть я не уверен, может быть, я пропустил какую-то ошибку и так далее и так далее, у меня нет собственной тестовой среды ...Роль QA Engineer в подходах непрерывного развертывания

До сих пор (в предыдущем проекте) Я работал в непрерывной доставке (город команды), сейчас это GO CD (чтобы свести к минимуму время выполнения), где трубопровод делится на этапы (один из этапов - автоматизированные тесты), я знаю, что автоматизация в этой методологии очень важна для прохождения этого трубопровода, НО мы не может автоматизировать все, и иногда возникают неожиданные ошибки.

Я знаю, что мое описание может быть немного chatoic byt. Я действительно смущен тем, что является моим долгом. Может ли anoyone объяснить, какая именно роль QA в процессе разработки программного обеспечения для непрерывного развертывания?

ответ

1

Интересный вопрос, так как мы подвергаемся аналогичным изменениям в нашей организации. Что мы понимаем, так это то, что компакт-диск подразумевает гораздо более автоматическое тестирование и гораздо меньшее ручное тестирование, но это не значит, что специалисты по QA больше не нужны. Вместо этого QA следует более активно участвовать на более ранней стадии процесса, понимая требования пользователя, как он будет доставляться в коде и как его следует проверять с помощью кода, прежде чем писать код. Однако, как вы говорите, есть также признание того, что автоматические тесты при непрерывном развертывании не могут охватывать все, и требуется некоторое тестирование на Production, но серьезность ошибок, которые могут возникнуть там, должна быть сведена к минимуму благодаря вниманию, которое уделяется тестированию на ранней стадии процесса , Кроме того, время для исправления должно быть намного меньше с CD.

Если вы ожидаете, что код будет выполнен (основная ветка в любом случае), чтобы протестировать его полностью, его слишком поздно ... CD без TDD/BDD - это просто катастрофа, ожидающая своего появления; принять участие ранее, помочь определить требования к охвату тестирования и при необходимости принять участие в кодировании некоторого уровня этих тестов, чтобы быть уверенным в том, что покрывается. Разрыв после CD будет гораздо меньше, и ваше доверие, а также все вернулись на Родину будет выше :)

Мартин Фаулер имеет некоторые интересные статьи вокруг этих тем ... начать с этим и читать - http://www.martinfowler.com/bliki/SelfTestingCode.html

3

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

  1. В самом начале требования вы должны участвовать в создании и определении критериев приемки. Поэтому вы в основном определяете тесты, которые должны быть включены в набор тестов. Прочтите описание по примеру.

  2. Даже если у вас есть конвейер компакт-диска, у вас может быть ступень, на которой система развернута в тестовой системе, и тестер должен идти по ней. И когда они одобряют систему (или, может быть, через какое-то определенное время, не найдя (релевантную) ошибку), версия будет повышена до производства.

  3. Альтернатива 2. тестовая система может быть создана параллельно с производством, поэтому вы можете протестировать систему, хотя она уже находится в производстве. В конце концов, в то время как получение материала в производство быстро имеет определенную ценность, поиск ошибок в быстром производстве также имеет серьезную ценность.

Для пунктов 2. + 3.исследовательское тестирование действительно полезно, и если вы не знаете об этом, вы должны прочитать книгу «Исследуйте это»

1

Часть вашей работы может состоять в том, чтобы выполнить Test Gap Analysis, сравнивая, какой код изменен на какой код проверен. Цель состоит в том, чтобы найти код, который был изменен, но не распространяется на какие-либо тесты. Ваша роль может заключаться в том, чтобы внедрить анализ пробных пробелов, отслеживать результаты и решать, какие меры могут быть приняты для уменьшения потенциального пробела в тестировании.

0

IMHO Роль QA Engineer становится еще более важной: кто собирается разрабатывать и поддерживать все эти автоматизированные тестовые сценарии и тестирование на инфракрасном уровне, от которых зависит CI/CD?

Одна из вещей, которую вы можете сделать, - это работать над сценарием настолько, насколько это возможно, из того, что вы все еще делаете вручную, чтобы его можно было включить в CI/CD, тем самым получая гораздо больше пользы от ваших усилий.

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

Повышение эффективности автоматического тестирования (продолжительность, охват, использование ресурсов) также чрезвычайно важно для производительности CI/CD.