Как стать автором
Обновить

AI/ML в автоматизации тестирования программного обеспечения

Время на прочтение9 мин
Количество просмотров7.6K
Автор оригинала: Blake Norrish

Создатели инструментов заявляют о 1000-кратном увеличении производительности. Альтернативный взгляд и несколько важных советов при изучении применения инструментов автоматизации тестирования AI/ML.

Невероятно оптимистичные заявления о преимуществах AI/ML инструментов автоматизации трудно игнорировать: пишите автоматические тесты в 3 раза быстрее! На 90% дешевле! Получите повышение производительности в 1000 раз! (да, в тысячу)

Несмотря на то, что маркетологи всегда преувеличивают, улучшения, заявленные разработчиками инструментов AI / ML, кажутся беспрецедентными. Если бы эти заявления были правдой, ни один руководитель не смог бы закрыть на это глаза.

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

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

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

Для контекста мы привели некоторые рекламные материалы, используемые разработчиками этих инструментов. Эти цитаты взяты дословно с веб-сайтов или рекламных объявлений разных производителей. Мы не вставляли ссылки, так как не хотим выделять какой-либо конкретный инструмент.

Иногда бывает трудно отделить заявленные улучшения, связанные с AI/ML, от других функций (low-code и т. д.), но все приведенные ниже примеры относятся к инструментам, которые каким-то образом явно рекламируют свое использование AI/ML.

Вот они:

[этот инструмент] создает тесты несколькими щелчками мыши: выберите пользовательский сценарий в своем приложении — наш искусственный интеллект предварительно создаст тест для вас. Добавьте операторы, измените тестовые данные, измените сценарий и запустите его за считанные минуты. Тесты полностью настраиваемые, практически не требуют кода.

Разработка E2E-тестов на 90 % быстрее благодаря стабильности на основе ИИ.

Создавайте автоматизированные тесты, которые выдерживают практически любое изменение пользовательского интерфейса и буквально «нерушимы». Создавайте тесты с виртуальным и постоянным retestID, который заменяет уродливые CSS селекторы или XPATH. Нет page-object, нет ручной абстракции.

[этот инструмент] позволяет командам тестировщиков легко создавать в геометрической прогрессии больше тестов, чем они могут с текущими инструментами. AL скрипты: повышение производительности в 1000 раз, тест-дизайн: повышение производительности в 10 раз, все виды тестирования в целом: повышение производительности в 3 раза.

[этот инструмент] использует искусственный интеллект, чтобы наделить каждого специалиста по обеспечению качества эквивалентом усилий 100 человек. Будь то инженеры, аналитики или другие, [этот инструмент] делает их значительно более продуктивными по сравнению с их возможностями и инструментами. Таким образом, [этот продукт] позволяет создавать больше тестов с гораздо меньшим количеством ресурсов или гораздо больше тестов с нынешними ресурсами.

Получите до 250% ROI за 2 года. Сократите на 92% количество человеко-часов на тестирование. Сократите время, затрачиваемое на регрессионное тестирование, на 87%.

Увеличение покрытия тестами в среднем на 90%. Создание тестов в 3 раза быстрее. На 40% меньше ошибок в production.

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

Во-первых: Избегайте инструментов, которые явно не описывают, как они используют AI/ML и какую проблему инструмент решает с помощью AI/ML.

В тестировании и автоматизации тестирования есть много проблем, которые потенциально могут решить AI/ML. Некоторые разработчики явно описывают, как они используют AI/ML для решения конкретных проблем, другие лишь туманно связывают AI/ML со своим продуктом, не предоставляя дополнительной информации. Например: «Боты с искусственным интеллектом генерируют для вас ваши тесты в кратчайшие сроки!».

Конкретные области, в которых используется AI/ML, включают:

  • Скриншотные тесты: выявление визуальных различий между страницами после изменения кода.

  • Анализ логов (AI-Ops): обработка больших объемов данных логов для выявления аномальных событий.

  • Нахождение элемента: использование AI/ML для идентификации определенных элементов пользовательского интерфейса на HTML-странице вместо использования селекторов или XPATH.

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

  • Разработка тестов: использование естественного языка или записанных действий пользователя для автоматического создания тестов для приложения.

Некоторые из этих областей лучше поддаются AI/ML, чем другие. По нашему мнению, природа скриншотных тестов и анализа логов делает их удобными для обработки алгоритмами AI/ML, и многие разработчики предлагают интересные решения для этих случаев.

Хотя нахождение элементов — это проблема, которую можно решить с помощью AI/ML, применение AI/ML в этой ситуации не устраняет первопричину. Это подорожник поверх перелома. Если ваши автотесты не могут найти детерминированные и простые селекторы для важных элементов, решите эту проблему в ее источнике. Такой же критике подвергаются и «самовосстанавливающиеся» селекторы. Мы не уверены в ценности использования AI/ML для идентификации элементов.

Приоритизация и разработка тестов — это области, в которых использование AI/ML иногда граничит с фантастикой. Немногочисленные хорошие инструменты в этой области позиционируют себя как дополняющие человеческую деятельность, а не заменяющие её. Определение того, что тестировать, всегда будет вопросом контекста, основанным на субъективных ценностных суждениях и понимании человеческого поведения. Это не те вещи, для которых AI/ML хорошо подходят.

Независимо от того, к каким конкретным областям применяются инструменты, все хорошие компании прямо заявляют вам, как именно они применяют AI/ML. Скептически относитесь ко всем продуктам, которые не могут точно объяснить, для решения какой проблемы используется AI/ML и как он используется.

Во вторых: Сомневайтесь в квалификации автора

Заявления о преимуществах AI/ML при тестировании программного обеспечения следует принимать соразмерно с опытом автора. К сожалению, если исключить маркетинг, большая часть контента о применении AI/ML в тестировании программного обеспечения, по-видимому, написана людьми, которые не разбираются в AI/ML или не имеют опыта профессионального тестирования ПО.

Например, запрос в поисковой строке выдаст много ссылок на ученых, которые хорошо разбираются в AI/ML, но очень слабо разбираются в индустрии разработки и тестирования программного обеспечения. Они могут обладать большой экспертизой о глубоких нейронных сетях или моделях линейной регрессии, но не пытаются объяснить или полностью игнорируют вопросы, почему эти подходы лучше, поскольку они не знают о реальных вызовах и проблемах, с которыми сталкиваются автоматизаторы.

Еще одним крупным источником контента по AI/ML являются авторы блогов, журналисты и другие эксперты. Эти люди заинтересованы в создании популярного контента, чтобы генерировать клики и привлекать трафик. У них мало опыта (или даже заинтересованности) в области, которую они освещают, а статьи обычно не содержат оригинального анализа. На самом деле, некоторые из них являются просто повторением маркетинговых буклетов.

Однако тот факт, что информацию предоставил от разработчик, ученый или журналист, не делает её неправильной или бестолковой. Как мы уже говорили, есть хорошие компании, пытающиеся использовать AI/ML для улучшения автоматизации тестирования. Например, Джейсон Арбон и Тарик Кинг из Test.ai являются экспертами как в области искусственного интеллекта и машинного обучения, так и в тестировании программного обеспечения и регулярно публикуют информативный и интересный контент как о своем конкретном инструменте, так и об отрасли в целом. Мы рекомендуем верить им, даже если мы не согласны с некоторыми их выводами.

Независимо от того, откуда берется контент, уточните какой опыт есть у автора, прежде чем принимать его утверждения о преимуществах AI/ML в автоматизации тестирования за чистую монету.

В-третьих: Вы занимаетесь QC или QA?

Существует большая разница между тестированием программного обеспечения после его разработки — в качестве внешней стороны, ответственной за ответ на вопрос: работает ли это? — и участием в активной разработке программного обеспечения в качестве QA. Первое — это quality control, второе — quality assurance.

В первом случае тестируемое программное обеспечение принимается как есть, и тестировщику нужно только оценить это программное обеспечение максимально эффективно и экономично.

Во втором случае тестирование связано с разработкой малыми петлями обратной связи. Если придерживаться этих практик, между теми, кто занимается тестированием, и теми, кто занимается разработкой, существует тесное сотрудничество. Цель quality assurance состоит не только в том, чтобы ответить на вопрос «работает ли это», но (что более важно) в обеспечении качества программного обеспечения по мере его создания.

Почему это различие важно при оценке инструментов автоматизации тестирования AI/ML?

В случае QC - для инструментов тестирования и автоматизации вполне разумно использовать тестирование черного ящика. На самом деле, это предпочтительнее, поскольку увеличивает количество специалистов, способных выполнять эту работу. Инструменты no/low code, использующие функции AI/ML, могут быть очень эффективными для упрощения автоматизации и доступности.

Это огромное преимущество для большинства инструментов AI/ML, и в этой конкретной ситуации эти инструменты могут быть полезны.

Однако, вслучае quality assurance вы не хотите разделять разработку и тестирование, вводя специализированный набор инструментов AI/ML или инструментов no/low code только для тестирования или путем упрощения этих инструментов для не инженера.

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

Если вы используете QA подход, использование AI/ML и инструментов с no/low code будет контрпродуктивно для достижения этой цели. По своей конструкции эти инструменты пытаются разделить создание программного обеспечения на разработку и тестирование.

Инструменты AI/ML, которые хвастаются тем, насколько простыми и нетехническими они делают автоматизацию тестирования, предполагают, что вы занимаетесь QC, в то время как большинство технологических или продуктовых компаний с собственной разработкой предпочитают QA.

Прежде чем инвестировать в какой-либо инструмент, поймите, какой именнно подход использует ваша команда. Если ваша команда создает новое программное обеспечение, мы настоятельно рекомендуем разработать стратегии автоматизации с использованием инструментов с открытым исходным кодом, таких как Playwright, Cypress.io, Webdriver.io, Puppeteer, Selenium или аналогичных инструментов, а не AI/ML, low/ инструментов.

В-четвёртых: скептически относитесь к преувеличениям

Если что-то кажется слишком хорошим, чтобы быть правдой, вероятно, так оно и есть. Это особенно верно, если что-то включает в себя AI/ML. Скептически относитесь к продуктам, презетующих улучшение на порядок или гарантированный возврат инвестиций. Хорошие разработчики понимают, что тестирование программного обеспечения и автоматизация тестирования — это сложная деятельность, на которую влияет множество переменных, и даже новаторские инструменты, использующие AI/ML, обычно обеспечивают лишь постепенное повышение эффективности или результативности. К сожалению, до сих пор не существует серебряной пули, обеспечивающей высокое качество всего программного обеспечения.

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

Это тактика продаж для привлечения потенциальных клиентов, и вам следует избегать этих компаний.

В качестве примера инструмента на основе AI/ML, который делает разумные заявления и предоставляет адекватную информацию о том, что он делает и как он работает, ознакомьтесь с Eyes SDK для скриншотных тестов от Applitools. К сожалению, это похоже на исключение из правил.

Заключение:

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

Однако все ещё есть сознательные компании, использующие AI/ML для улучшения тестирования программного обеспечения и автоматизации тестирования. Задача всех лидов, архитекторов и руководителей будет состоять в том, чтобы отделить ложные обещания и маркетинговые ухищрения от хороших продуктов, которые обеспечивают реальные преимущества, и при этом обеспечить, чтобы преимущества инструментов действительно соответствовали потребностям и задачам их команд. Во многих случаях ответ на этот вопрос будет «нет».

Не бойтесь прослыть старомодным, потому что вам нужны доказательства пользы AI/ML и инструментов, использующих эти алгоритмы. AI/ML — захватывающая технология, и ее применение в области тестирования программного обеспечения и автоматизации тестирования, несомненно, принесет пользу. К сожалению, как и в случае с любой новой технологией, эта ценность растворена в океане сомнительных идей, преувеличений, фальстартов и людей, которые просто используют вау эффект для зарабатывания денег.

Теги:
Хабы:
Всего голосов 5: ↑5 и ↓0+5
Комментарии1

Публикации

Истории

Работа

Ближайшие события

19 августа – 20 октября
RuCode.Финал. Чемпионат по алгоритмическому программированию и ИИ
МоскваНижний НовгородЕкатеринбургСтавропольНовосибрискКалининградПермьВладивостокЧитаКраснорскТомскИжевскПетрозаводскКазаньКурскТюменьВолгоградУфаМурманскБишкекСочиУльяновскСаратовИркутскДолгопрудныйОнлайн
3 – 18 октября
Kokoc Hackathon 2024
Онлайн
24 – 25 октября
One Day Offer для AQA Engineer и Developers
Онлайн
25 октября
Конференция по росту продуктов EGC’24
МоскваОнлайн
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань