За последние несколько лет разработчики ПО и мобильных приложений очень четко осознали важность тестирования. Его популярность непрерывно растет. Только в США этот рынок услуг должен вырасти на 55,76 миллиарда долларов в течение 2022-2026 годов.
В этом материале мы приведем основные тезисы из обзора рынка тестирования программного обеспечения в крупном российском бизнесе, который подготовлен редакцией портала TAdviser. Исследование подробно описывает подходы российских заказчиков к выбору технологий и инструментов тестирования, а также модели их использования, дает представление о трендах рынка и потребности его игроков в кадрах.
Главные потребители услуг
Подавляющее большинство тех, кто обращается к тестированию ПО, приходят из финансового сектора. Объясняется это в первую очередь репутационными рисками и, конечно же, экономическими. Опрошенные участники рынка тестирования единогласно подтвердили, что именно проекты для банков были одними из самых масштабных.
Вот, например, затраты одного из самых крупных представителей финсектора в России на тестирование ПО: расходы 2021 года в 2,3 раза больше по сравнению с 2020 годом.
Это не единичная история. Не менее активными потребителями услуг на этом рынке являются ритейл, телеком, производственная и сырьевая отрасль. Ну и, конечно же, госсектор.
Сейчас на рынке практически не осталось ПО, которое было бы выпущено без тестирования. В первую очередь, это касается таких фронтальных продуктов, как интернет‑банки, маркетплейсы, порталы и др., а также бизнес‑приложений, которые напрямую отвечают за непрерывность функционирования компании.
Автоматизированное тестирование применяется для систем дистанционного обслуживания, интеграционных и фронт‑офисных решений, ручное функциональное тестирование ― для сложных процессов и продуктов, где бизнес‑заказчик должен видеть весь жизненный цикл реализованного изменения на всех задействованных системах.
Тестирования требуют все вновь внедряемые программные продукты или приложения, которые существенно дорабатываются или перерабатываются в процессе промышленной эксплуатации.
Эксперты «ЛАНИТ Экспертизы» считают, что основными критериями для проведения тестирования являются критичность системы для бизнеса, большое количество пользователей, частые изменения и доработки в системе. Отдельно хотелось бы отметить важность тестирования сквозных бизнес‑процессов. Это позволит избежать несовместимости при разработке комплекса систем разными подрядчиками.
Цели и задачи заказчиков
TAdviser опросил основных потребителей услуг тестирования и выяснил, что подавляющее большинство сейчас смотрит в сторону его автоматизации. Это позволяет выпускать обновления чаще, что дает преимущества среди других игроков рынка. Так, например, в одном из банков свыше 85% от тестирования приходится на автоматизацию.
Поставщики услуг отмечают, что все чаще к ним приходят с запросом на тестирование производительности. Это уже история не про разовую нагрузку, а про устойчивость всей системы в целом.
Ниже перечислен еще ряд задач, которые опрошенные отнесли к наиболее актуальным в области тестирования:
внедрение CI (continuous integration ― непрерывная интеграция) / CD (continuous delivery или continuous deployment ― непрерывное развертывание) и развитие DevOps практик,
организация дополнительных полностью интегрированных со всеми системами тестовых сред,
формирование прозрачного и эффективного интеграционного тестирования со смежными командами и построение коммуникаций для сквозного интеграционного тестирования,
создание внутреннего центра обучения персонала для повышения компетентности команд, получения знаний в области современных технологий тестирования, подходов к его автоматизации и др.,
сокращение числа ошибок как в коде, так и в архитектуре.
Тренды
Опросив различных игроков рынка, TAdviser составил список наиболее популярных инструментов для тестирования ПО. Эти данные отражают как мнение экспертов, предоставляющих свои услуги другим, так и тех, кто своими силами занимается тестированием.
Фреймворки/инструменты:
Charles – инструмент для мониторинга HTTP/HTTPS трафика, используется для тестирования мобильных приложений, работающих с удаленными серверами;
JMeter – инструмент для проведения нагрузочного тестирования, разрабатываемый Apache Software Foundation;
IntelliJ IDEA – среда разработки для Java, JavaScript, Python и других языков программирования от компании JetBrains;
LoadRunner – программный инструмент нагрузочного тестирования приложений от компании MicroFocus;
Postman — инструмент тестирования API;
Qase – облачная система управления тестированием;
Swagger — набор инструментов, который позволяет автоматически описывать API, в том числе с помощью автогенерации на основе кода;
Swagger UI — инструмент, который позволяет не только просматривать документацию API, но и интерактивно отправлять запросы;
Selenium – инструмент для автоматизации действий веб-браузера, который используется в том числе для тестирования веб-приложений;
SoapUI – приложение с открытым исходным кодом для тестирования веб-сервисов сервис-ориентированных архитектур и передачи состояний представлений;
Sonar – платформа с открытым исходным кодом для непрерывного анализа и измерения качества программного кода;
Splunk – позволяет агрегировать машинные данные об использовании приложений, их доступности и производительности;
1С TestCenter – инструмент для нагрузочного тестирования решений «1С»;
RestAssured - библиотека для автоматизации API;
XCUITest\kaspresso\UIAutomator - нативные фреймворки для автоматизации мобильных приложений.
Эксперты «ЛАНИТ Экспертизы» отмечают увеличивающуюся популярность самостоятельной разработки инструментов для автоматизации тестирования. Этому способствуют платформы low-code, которые делают процессы быстрее и, что важно, значительно дешевле.
Самостоятельная разработка инструментов тестирования для многих крупных игроков рынка уже давно является реальностью. Так, некоторые ИТ-компании разрабатывают свои TMS (Test Management System), мобильные фермы для удалённой работы с тестовыми устройствами и системы краткосрочной аренды физических устройств. В одном из операторов мобильной связи специалисты используют как классические инструменты (баг-трекинговая система, система управления тестированием), так и свои собственные решения ― «Портал тестирования», «Кросс-системный поиск тестовых данных» и т.д.
«ЛАНИТ Экспертиза» создает инструменты для тестирования не только современных, но и legacy-систем. Например, у компании есть решение NeuroControl, которое позволяет автоматизировать тестирование мобильных и desktop-приложений. Платформа распознает элементы UI-интерфейса с использованием методов компьютерного зрения и нейросетей.
Важным трендом в тестировании сейчас является тестирование API. Процесс тестирования здесь не ограничивается проверкой бизнес-логики ― тестируются узкие места производительности, отказоустойчивость и не только.
Эксперты считают, что для API нужно создавать два типа тестирования ― ручное и автоматизированное. Второе, как показывает практика, быстрее и устойчивее по сравнению с автоматизацией тестирования UI.
По данным TAdviser, большим спросом в области тестирования ПО пользуются Open Source решения. Еще одним трендом, который удалось выделить среди опрошенных, стала роботизация. Некоторые крупные компании уже внедрили у себя такие решения и отметили их универсальность на фоне популярных фреймворков.
За последние пару лет тестирование ПО стало одним из важнейших этапов в создании продукта. Оно позволяет избавиться от многих дефектов, которые могут негативно сказаться не только на конечном продукте, но и на пользовательском опыте. Поэтому так важно подключать QA-инженеров на самых ранних этапах разработки, считают эксперты.
Сейчас тестирование ― это не просто один из этапов проекта, а самостоятельный процесс, который требует определенных специалистов (тестировщики, аналитики, разработчики, инженеры DevOps).
На Западе же уверенно формируется тренд на TestOps. По названию нетрудно догадаться, что это методология DevOps, но только применимая к области тестирования, а не разработки. На отечественном рынке пока не так много компаний использует этот подход, хотя уже есть те, кто применяет TestOps у себя. Эксперты считают, что через пару лет эта методология укрепит свои позиции на российском рынке. Как минимум потому, что она уменьшает время тестирования и его стоимость.
Еще одним важным трендом, который выделили опрошенные, является хаос-инжиниринг (chaos engineering). Он позволяет исследовать production-систему, чтобы определить потенциальные сбои, найти слабые места и повысить отказоустойчивость. По сути, вы получаете возможность исправить сбои до того, как они перерастут в простои. Данный подход формирует у специалистов понимание того, чем опасны турбулентные ситуации, избежать которых так важно для крупного бизнеса. Эксперты уверены, что совсем скоро хаос-инжиниринг станет обычной практикой на рынке тестирования ПО и не будет восприниматься как что-то инновационное.
Еще одним формирующимся трендом является и security testing. Тема информационной безопасности очень остро встала в начале 2022 года, поэтому неудивительно, что этот тип тестирования стал популярным. Отчасти этот тренд сопряжен и с тем, что сейчас различные устройства и облачные сервисы связаны с собой в одну общую большую экосистему. Обилие первых несет за собой определенные риски с точки зрения безопасности.
В «ЛАНИТ Экспертизе» считают перспективным внедрение ML-технологий в процесс тестирования. Технологии CV (computer vision) применимы для распознавания графических интерфейсов, а технологии NLP (natural language processing ― обработка естественного языка) в функциональном тестировании позволяют автоматически выделять требования, формировать проверки и др. В нагрузочном тестировании с помощью нейронных сетей могут быть решены задачи корреляции и предиктивной аналитики.
Полную версию исследования можно прочитать на сайте TAdviser.