[Перевод - recovery mode ] Традиционное тестирование скоро умрет
Рутинные задачи в разработке ПО автоматизируются посредством приложений Continuous Delivery и DevOps. Разработчики берут на себя все больше и больше ответственности. Мне стало интересно какова будет роль традиционного тестирования и тестировщиков если посмотреть немного вперед.
Этот вопрос беспокоил меня с тех пор как я посмотрел на пирамиду тестирования, концепт придуманный Mike Kohn в его книге «Succeeding with Agile». Ее суть состоит в том, что у вас должно быть 70–80% юнит-тестов, затем 10% интеграционных тестов, затем 5% системных тестов и наконец 5% GUI тестов.
Процентный разброс может различаться. Вся суть в том, что у вас должно быть намного больше низкоуровневых юнит-тестов, чем высокоуровневых тестов через GUI.
Если вы взгляните на это немного глубже, это становится возможно только если тестировщик так же обладает программистскими навыками. Просмотром исходного кода он сможет понять роль юнит-тестирования в понижении рисков по отношению к end-to-end (неразрывному) тестированию.
Сейчас команды двигаются по направлению к Acceptance Test Driven Development (ATDD). Где опять же играет роль программирование.
Когда бы я ни услышал историю успеха пирамиды тестирования, в ней всегда есть ключевой фактор успеха. Это либо программисты проводили все тестирование, либо тестировщики научились программированию для того чтобы тестировать.
Люди избавляются от ручной работы как замечено в LeSS queuing theory. В процессе они отходят от роли тестировщика полностью. Это становится достаточно распространенным во многих стартапах в эти дни.
По моему мнению, двигаясь вперед, обе роли обретут возможность к программированию как предпосылку в части развития. Разница будет только в том, что тест-инженеры на первый план поставят тестирование, а разработку на второй. Они будут тратить добрую долю своего времени программируя в форме написания скриптов и кода для автоматизированных сценариев.
Тест-инженерам суждено стать продуктовыми экспертами, советниками по качеству и риск аналитиками.
В заключении:
Ушли в прошлое те времена, когда ручного тестирования было достаточно, и тестовый цикл мог занять месяцы. Тестерам необходимо стать хорошими программистами для того чтобы двигаться вперед. Просто быть знакомым с программированием уже не достаточно. Они должны быть способны изучать и развивать последние фреймворки автоматизации и работать со скриптовыми технологиями чтобы быть конкурентно способными.