Мир тестирования постоянно меняется. Тенденции, заметные в этом году и позволяющие бизнесу добиться успеха в эпоху “новой нормальности”, хорошо отражены в статье, которую я взялась перевести - Stepping into the future: QA and software testing trends to thrive in 2022. Год подходит к концу и хочется посмотреть насколько тенденции актуальны. Но в моей компании тренды далеко не всегда могут быть применимы, по крайней мере пока.
Поэтому попытаюсь к переводу добавить и отношение со стороны своего опыта.
Пандемия COVID-19 ускорила внедрение цифровых технологий. Компании были вынуждены быстро перенести свой бизнес в онлайн и продолжать работу, несмотря на то, что пришлось внедрять прорывные технологические новинки — от искусственного интеллекта и IoT, до блокчейна и дополненной реальности. Однако путь в цифру оказался непростым. По оценкам экспертов BCG 70% крупномасштабных трансформаций потерпели неудачу, так и не достигнув своих целей (детали можно найти тут)
Учитывая такую высокую долю провалов, напрашивается вопрос - как бизнесу обеспечить успех этого процесса и окупить все свои усилия?
Автор оригинальной статьи утверждает, что среди прочих мер стоит уделить внимание обеспечению контроля качества. Когда этот контроль сфокусирован на соответствии требованиям и ускорении TTP (time-to-production), он помогает наладить безошибочную работу ПО, делая его более безопасным и надежным.
Чтобы эффективно организовать процессы тестирования в 2022 году и добиться успеха в эпоху «новой нормальности» предприятия могут ориентироваться на 5 тенденций, которые выделены в этой статье:
продолжить внедрение Agile и DevOps;
заняться инжинирингом качества (QE);
попытаться использовать ИИ;
автоматизировать разумно;
помнить о безопасности и защите данных.
Я проанализировала каждую тенденцию, упомянутую в статье, и прокомментирую их. Отмечу, что моя компания не занимаемся внедрением железа или IoT, а с блокчейном работаем только как с инструментом вывода, поэтому некоторые детали для нас не актуальны. Однако общаясь с коллегами по работе и цеху, в том числе в закрытых профильных сообществах, могу предположить куда движется рынок - у меня есть возможность сравнить, что и как организовано в разных компаниях.
Тенденция №1 – Продолжайте внедрять Agile и DevOps
Чтобы быстро реагировать на меняющиеся потребности и создавать ИТ-продукты с улучшенным CX (customer experience, пользовательский опыт), компании продолжают внедрять Agile и DevOps. Эти аспекты культуры ориентированы на сокращение сроков поставки ПО с одновременным улучшением его качества.
Несмотря на сохраняющуюся популярность этих подходов, в Отчете о мировом качестве за 2021-22 годы (WQR) говорится, что проблема нехватки скиллов по-прежнему актуальна. Треть из 1750 опрошенных испытывают нехватку тестовой среды, контейнеризации и навыков подготовки тестовых данных. В то время как остальные 44% участников опроса отметили недостаток у тестовых команд экспертизы в agile.
Для оптимизации процессов тестирования и упрощения внедрения гибких методологий и DevOps, компании могут:
Тестировать программное обеспечение как можно раньше (подход shift-left).
Автоматизировать больше, чтобы быстрее создавать хороший код.
Оптимизировать тестовые примеры с помощью искусственного интеллекта.
Используйте автоматизированные дашборды, чтобы получать подробное представление о качестве.
Чтобы добиться максимальной эффективности от внедренного подхода, стоит поставить бизнес-приоритеты на первое место и быть более открытыми к изменениям.
На мой взгляд, совет дельный и тенденция стоящая. Именно она меня с первого прочтения и зацепила в переведенной статье. Мы сами используем Gitlab CI/CD, и реальность такова, что если ты хочешь интеграцию в общий процесс разработки, с этим надо работать самим, а не сваливать задачу на отдел DevOps. И, кстати, мы как раз сталкиваемся с упомянутой нехваткой тестовой среды. Создание и поддержка тестового окружения, полностью дублирующего dev или прод, требует очень много ресурсов. И если в проде заинтересована вся команда, то окружение для тестирования объёмной логики и автотестов имеет меньший приоритет. Разворачивая его, мы сталкиваемся с самыми различными сложностями. Например, на одном из проектов база настолько большая, что мы можем себе позволить держать только один тест с полным набором данных. Каждый раз на разных проектах мы выкручиваемся из этого по-разному, и зачастую это требует навыков DevOps. Пока мы недостаточно сильны в этом, навыков нам недостаёт, но в этом направлении точно надо двигаться.
Если вы, как профессионал в тестировании, думаете, куда развиваться, идите в сторону DevOps. Даже если в компании этим занимается выделенный отдел для грамотного тестирования нужно понимать, как все организовано. В этом, наверное, и состоит суть Agile. Разделение ролей гибко, и ты можешь поучаствовать во всех процессах, раз уж твоя задача - довести все до конца. А чем больше знаний в смежных областях - тем эффективнее будет участие.
Оригинальная статья упоминала еще некоторые детали. В частности, подход shift-left. Я считаю, что это самый правильный подход. Если в задаче есть хоть какая-то неопределенность, то почему бы не обсудить её с самого начала тем составом, который будет участвовать в ее решении (как со стороны разработки, так и со стороны тестирования). В нашей компании я стараюсь максимально придерживаться этого подхода, если его в принципе возможно применить в контексте задачи. Во многих компаниях на первом этапе про тестировщиков часто забывают. Но мне кажется правильным это менять. Такой подход помогает сэкономить много времени разработки на багах, которые можно было предусмотреть или решить ещё до начала.
И меня особенно порадовал тезис про автоматизированные дашборды, так как мы придерживаемся такой практики достаточно давно. Сами организовываем небольшие дашборды с мониторингом тестовых сред и насколько позволяет время погружаемся в поддержку системных дашбордов в redash и grafana.
Тенденция №2 – Достигайте целей цифровой трансформации с помощью инжиниринга качества
С начала 2020 года и по настоящее время мир переживает цифровой бум (хорошая статья, которая неплохо пояснит, что это в целом такое ). Statista упоминает, что к 2025 году глобальные расходы на цифровую трансформацию достигнут почти 3 триллионов долларов! Одна из основных причин такого высокого спроса - пандемия, которая значительно ускорила трансформацию примерно для двух третей из 2569 опрошенных (пруфы тут).
Однако путь к цифровой трансформации неразрывно связан с внедрением передовых технологических новинок, таких как embedded ПО, блокчейн, edge computing и многие другие. Для обеспечения высокой защиты и эффективности предоставляемых ИТ-решений компании полагаются на инжиниринг качества.
О чем пишет Павел
Направленный на предотвращение программных сбоев, а не на их исправление, QE отдает приоритет качеству во всем жизненном цикле ПО, оптимизирует затраты времени и денег и улучшает пользовательский опыт. И несмотря на отсутствие навыков кибербезопасности, столь необходимых для обеспечения хорошей защиты данных в эпоху увеличения числа изощренных атак, индустрия цифровой трансформации уже развивается. Организации прилагают все больше и больше усилий для создания малых цифровых сред.
Ковид действительно подтолкнул в цифру даже те компании, которые туда не собирались. Инжиниринг качества (QE) - понятие более широкое, нежели QA, охватывающее в целом контроль и обеспечение качества продукции и услуг. И это важно. Бизнес, который никогда не сталкивался с серьезной разработкой, попробовал уйти в цифру и получил проблемы. Маленькие оффлайновые магазины попытались сделать себе CMS с двумя товарами, а потом замахнулись на приложение, сайт с корзиной и рекомендации - все, что сейчас модно. Это вылилось в гораздо большие сложности, чем казалось на старте. И даже если есть ресурсы все это преодолеть, надо не забыть об инжиниринге качества. Так что с этим трендом я полностью согласна.
Тенденция №3 – Полагайтесь на искусственный интеллект для получения продуктивных результатов тестирования
Внедрение ИИ набирает обороты во всем мире. Эксперты подчеркивают, что к 2024 году объем мирового рынка искусственного интеллекта превысит 500 миллиардов долларов.
Проникая в различные отрасли, искусственный интеллект уже применяется для обслуживания клиентов через чат-ботов, диагностики опасных заболеваний, таких как сепсис, или даже для выставления баллов на конкурсе красоты (http://beauty.ai/).
WQR утверждает, что индустрия контроля качества также может пожинать плоды этой технологии, особенно когда речь идет о беспроигрышном тандеме с автоматизацией тестирования. Компании могут применять его для создания автоматизированных сценариев, а также для повышения их качества и надежности, чтобы сократить время выхода на рынок и повысить точность тестирования за счет устранения человеческого фактора.
Другие приоритетные варианты использования ИИ в тестировании ПО связаны с прогнозированием проблем (42%), приоритезацией тестов (43%) и созданием тестовой среды (44%).
С моей точки зрения ИИ - действительно перспективен. Но мы не можем получить готовые инструменты из воздуха. Чужих продуктов именно для тестирования пока не так много, а если не ограничиваться их рамками, потребуется полноценная собственная разработка. На данный момент это стоит того, если речь идет о генерации тестовых данных (ты подаешь на вход некие данные, а сеть генерирует варианты, о которых ты не подумал). Это вполне применимый кейс с понятным результатом. Но даже здесь нужна разработка, поэтому мы пока не добрались до применения ИИ в этом контексте.
В то же время по сети ходит много очень уж абстрактных советов про ИИ именно в тестировании, после прочтения которых не ясно, как их применять. Поэтому на мой взгляд до реального широкого применения ИИ в тестировании пока далеко.
Тенденция №4 – Автоматизируйте разумно, чтобы быстрее получить выгоду
Автоматизация тестирования уже несколько лет подряд удерживает лидирующие позиции среди самых востребованных QA-сервисов — эксперты утверждают, что к 2026 году объем мирового рынка автоматизации тестирования вырастет до почти $50 млрд.
Фактически, автоматизация - основное средство сокращения времени поставки решения, и это жизненно важно в постпандемическую эпоху. Она повышает качество обнаружения дефектов и в целом безопасность программного обеспечения, улучшает процесс тестирования, благодаря росту прозрачности и мониторингу.
Еще одно важное преимущество внедрения автоматизации - ROI. По данным WQR 50% опрошенных представителей ИТ отметили, что их усилия в этом направлении окупаются.
Не секрет, что все больше компаний полагаются на автоматизированные рабочие процессы контроля качества в своих стратегиях тестирования. За счет этого расширяется диапазон вариантов ее прикладного использования. Сегодня среди них непрерывная автоматизация, самовосстановление, роботизация процессов, headless автоматизация, scriptless подход и многие другие.
Однако, чтобы получить максимальную отдачу от автоматизации тестирования, компаниям стоит помнить о балансе, поскольку 100% автоматизация — недостижимая и бессмысленная цель.
От себя добавлю, что автоматизацию я понимаю в более широком контексте. Это не просто автотесты, но и небольшие инструменты (скрипты), которые помогают избавить рядового тестировщика от рутины. Мы пришли к этому подходу около года назад. Если тебе нужен какой-то небольшой инструмент с прямолинейным сценарием, который не тянет на полноценную разработку, а выполняет всего одну функцию (пусть даже в ограниченных условиях), его очень быстро можно сделать своими силами. И это экономит массу времени прямо сейчас.
К примеру, у нас есть некоторая часть задач, связанных с проверкой счетчиков метрик на странице. Мы получаем табличку со списком ID-метрик, которые должны быть установлены на страницах. Их надо проверить. Простейший скрипт, в который можно загрузить этот список, выполняет задачу за несколько минут, в то время как раньше на ручную проверку уходило по полдня. А сама по себе эта задача еще и мотивацию подтачивала - мало кому нравится такое делать.
Конечно, во время разработки инструмента (тем более силами тестировщика) основные задачи простаивают. Но получается, что это время вкладывается в развитие специалиста. Он пробует разные языки и технологии. И даже не доведя работу над инструментом до конца, он лучше понимает саму разработку как таковую. Это в любом случае идет на пользу.
Тенденция №5 – Безопасность и защита данных
Пандемия не только затронула все отрасли промышленности и ускорила цифровые преобразования, но и вынудила сотрудников работать из дома. Это привело к постоянному сокращению использования традиционных окружений и переходу к облачным, которыми в настоящее время пользуются 23% опрошенных WQR. Набирает обороты использование виртуальных, контейнеризированных и временных тестовых окружений. И, несмотря на существующие препятствия на пути, например, необходимость обеспечения синхронизации облачных и устаревших приложений, более половины участников опроса с оптимизмом смотрят на реальность.
Что касается управления тестовыми данными, то число ИТ-руководителей, которые отметили, что их команды соблюдают правила безопасности и конфиденциальности данных, увеличилось до 55%. И это при том, что все больше опрошенных копируют продакшн, а не синтезируют тестовые данные из-за связанных с этим процессом проблем.
При копировании каких либо данных в тестовые среды мы заменяем персональную информацию специальными алгоритмами и в целом следим за безопасностью. Я рада, что той же стратегии придерживаются многие другие компании. И соглашусь с тем, что нужно обращать на это внимание.
В двух словах
Выводы оригинальной статьи
Быстрая адаптация к меняющейся ситуации стала важнейшим приоритетом для предприятий, стремящихся опередить конкурентов в современном мире. Для этого они могут повысить качество программных продуктов с помощью QA и сосредоточить свои усилия на тестировании в Agile и DevOps. Одновременно они могут поддерживать цифровую трансформацию с помощью проектирования качества, использования ИИ для повышения эффективности контроля качества, автоматизировать для ускорения развертывания в рабочей среде и улучшать управления тестовыми данными и средой.
От себя добавлю, что почти все тенденции, упомянутые в тексте, находят отражение в реальных проектах вокруг меня. Единственное, куда мы не успели зайти, - это использование ИИ. Как идея это интересно. Но на данный момент мы гораздо больше профита можем получить от автоматизации в широком смысле (и автотестов, и инструментов, сокращающих рутину тестировщика). А с точки зрения бизнеса логичнее двигаться именно в том направлении, где профит заметнее.