Рейтинг: 5.0/5. на основе 1 оценки.
Пожалуйста, подождите...

Приход новой эпохи

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

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

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

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

Ручное тестирование

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

Такой подход отчасти имеет множество недостатков, в том числе и в плане постоянного финансирования группы тестирования. Постоянная работа по созданию и поддержке таких тестов отвлекает разработчиков и тестировщиков от базовой цели, возложенной на них – непосредственной работы с веб-продуктом.

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

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

Усложнение проверок: почему ручные тесты не подходят

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

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

Что очень сильно расстраивает в ручном тестировании – оно затрагивает только конкретные группы кейсов и ничего более. Если в продукт добавится новая функция или группа параметров, то ранее созданный тест-кейс все равно завершится успешно, несмотря на то, что новые дополнения возможно не в исправном состоянии.

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

Есть ли польза от ИИ?

Методология использования наработок ИИ для тестирования заметно побеждает в тех случаях, когда разработчики сталкиваются с большим количеством проблем при ручном тестировании. Если бы на практике можно было оперировать простым ИИ, параметры которого спокойно могли бы выполнять и записывать пользовательские метрики при взаимодействии с веб-продуктом, он мог бы спокойно вносить до нескольких десятков тысяч текст кейсов на регулярной основе всего за 10-15 минут.

А представьте, если бы можно было «познакомить» программу с 1001 ошибкой и продемонстрировать примеры правильной проверки продукта? ИИ смог бы быстро предугадать, где именно проектной группе придется хорошо потрудиться.

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

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

ИИ в тестировании: мнение «оппозиции»

Козырь №1 – мое приложение уникально, зачем мне наработки ИИ?

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

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

Козырь №2 – человек всегда умнее любой запрограммированной машины!

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

Боты ИИ, как легендарный Терминатор: никогда не ведают усталости, ничего не забывают, без страха и потерь идут напролом к конечной цели. Вы правда думаете, что умнее 100 роботов, связанных в единую экосистему и анализирующих работу вашего веб-продукта? Даже если вы в чем-то лучше – не появился бы у вас соблазн получить в свое распоряжение нескольких запрограммированных ботов, которые бы делали за вас все, что нужно. А вы бы спокойно себе решали иные творческие вопросы!

Козырь №3 – Может боты это и хорошо, но откуда ИИ знает какие данные для тестов использовать?

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

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

Козырь №4 – Отлично, но как ИИ узнает, что приложение функционирует верно?

Прекрасный вопрос. В самом деле, как вы сможете понять, что приложение работает правильно? Вы никогда этого не делали (не проверяли его работоспособность). Да, у вас есть набор каких-то тестов, к примеру, 100 автоматизированных проверочных скриптов, они выполняются хорошо, но их функциональность заточена исключительно под проверку всего лишь небольшого пространства или структуры.

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

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

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

Краткий обзор уже доступного инструментария ИИ

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

Applitools

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

Приложение позволяет быстро подстраивать формат тестов под необходимые формы отображения (адаптивный вид, декстопное разрешение). Если в вашем продукте используется анимация, вы можете запрограммировать утилиту находить ее.

Sauce Labs

Одна из первых программ, которая позволила проводить запуск тестов в облаке. Сервис каждый день запускает до 1 миллиона автоматизированных тестов. На основе наработок машинного обучения разработчики компании Sauce labs проводят работу над созданием мощного инструментария по аналитике качества веб-продуктов.

Test.AI

С его помощью можно выполнить объединение ИИ и Selenium. Тесты создаются в простом формате, который визуально очень похож на Gherkin. Не требуется ничего кодить и разбираться в массе локаторов.

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

Mabl

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

ReTest

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

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

Оставить комментарий