ИИ и машинное обучение как метод оптимизации тестирования ПО

Тестирование и контроль качества (QA) быстро изменяющихся систем – распространённая, но непростая задача программной разработки. Оптимальным подходом в этом случае является автоматизация тестирования. Но в то время как около 60% коммерческих проектов используют в своей работе Agile-разработку, только 16% автоматизируют процесс контроля качества. В одной из публикаций интернет-издания ReadItQick проведён анализ указывающий, что ведущую роль в процессе автоматизации разработки и тестирования играют современные исследования в области искусственного интеллекта и машинного обучения.

В условиях цифровой экономики решающую роль в коммерческом успехе играет скорость взаимодействия. На уровне разработки ПО Agile-подход позволяет минимизировать сроки выхода продукта. За счёт чего достигается начальное завоевание лидерских позиций на рынке.

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

Agile-разработка в крупных фирмах

Согласно данным последнего Мирового отчёта о качестве (World Quality Report 2017-2018), около 60% североамериканских и европейских компаний применяют Agile-разработку. При этом только 16% из них  автоматизируют тестовые мероприятия. Другие исследования показывают, что ручное тестирование препятствует внедрению гибкой методологии разработки. Замедляет процесс перехода компаний к использованию компьютерных технологий. Очевидно, что автоматизация контроля качества является одной из основ достижения успеха в современном цифровом мире. На данный момент уровень внедрения такого подхода остаётся довольно низким. Бизнес остро нуждается в новых быстрых способах проведения автоматического тестирования программного обеспечения.

На самом деле проблема ускорения современных бизнес-процессов и необходимости автоматизации testing/QA появились довольно давно. Но новейшие разработки в области искусственного интеллекта и машинного обеспечения позволяют массового автоматизировать процессы тестирования без какого-либо ущерба для конечных целей программной разработки.

В то время как многие компании пытаются оптимизировать цикл оценки качества своего ПО, по некоторым практическим данным, использования машинного обучения и искусственного интеллекта могут повысить эффективность тестирования на 35%. Результатом реализации такого подхода является появление систем, которые более быстрые, гибкие и дешевые в сравнении с традиционными аналогами.

Превосходство ИИ и машинного обучения в QA

Согласно тому же Мировому отчёту о качестве, тестирование имеет слишком большие издержки в парадигме Agile-разработки. Процесс разработки во многих компаниях сильно тормозится  из-за отставания на этапе тестирования и обеспечения качества. Применение ИИ и машинного обучения позволяет устранять человеческие ошибки и повысить прозрачность всех этапов создания ПО. Такой подход уже сейчас помогает повысить уровень автоматизации и конкурентоспособности наиболее передовых предприятий.

При этом искусственный интеллект проводит тестирование не только быстрее, но и качественнее. Контролируемые ИИ системы на практике показывают более высокий процент качества тестовых кейсов. А QA-мероприятия под руководством искусственного интеллекта не только экономят время и деньги, но также эффективнее решают проблему масштабированности процесса оценки качества.

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

Некоторые примеры реализации такой методологии:

  • Крупный банк использует автоматизированое тестирование для обнаружения и удаления учётных дел всех неактивных клиентов из 150-тысячной базы данных. При этом накладные расходы снижаются на 30%. В процессе тестирования применяется метод семантического сравнения, который сокращает необходимость в человеческом труде на 30-40%. В результате программное обеспечение банка работает гораздо быстрее, что, в свою очередь, повышает качество обслуживания клиентов.
  • Компания цифрового здравоохранения реализовала методы логического программирования, что позволило автоматизировать 90% всех тестовых процессов. При этом применялся прогностический анализ, сокративший время многоканального тестирования на 92%. Такая оптимизация повысила качество конечных услуг настолько, что была одобрена Управлением по санитарному надзору за качеством пищевых продуктов и медикаментов США (FDA).
  • Ведущая компания по обработке платежей реализовала в своей QA-отделе методы интеллектуального обнаружения дефектов, повысив уровень автоматизации тестирования более чем на 60%. Благодаря использованию методологии инженерии знаний (knowledge engineering) было повышено качество программного обеспечения компании, что ускорило выход апдейтов и внедрение новых функций. Также с помощью когнитивных вычислений около 15 тыс. тестовых случаев были перенесены из нескольких фреймворков в одну модель. Все эти меры позволили компании добиться роста числа транзакций на 34%, а также дали возможность выйти на рынки общим объёмом 95 млрд долларов.

Выводы

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

Те компании, для которых качество и скорость разработки программного обеспечения играет ключевую роль, с каждым днём всё активнее интегрируют в схему своей работы методы автоматического тестирования. Для предприятий, которые пытаются в полной мере быть вовлечёнными в парадигму цифровой экономики, автоматизация QA&Testing становится одной из ключевых задач на пути к достижению этой цели. И эти усилия не проходят зря: внедрение искусственного интеллекта и машинного обучения даёт практически результаты и реально влияет на прибыль.