Навыки тестирования программного обеспечения должны меняться с помощью AI
Искусственный интеллект (AI) касается многих частей нашей жизни и карьеры. Рама Анем обсуждает влияние ИИ на тестирование программного обеспечения и то, как необходимо адаптировать навыки тестировщиков.
У каждой технической революции были свои последователи и те, кто ее не приветствовал. Страх перемен, неизвестности и потери работы вполне понятен. В этом нет ничего нового, и мы надеемся, что эта история не повторится, и не возникнет новая волна луддитов, как в Англии 19-го века.
Революция начинается не с изобретением новой технологии, а с широким внедрением в отрасль. Изобретение, которое лежит на полке и не приносит никакой пользы обществу, никогда ничего не изменит, даже если это «Ответ на главный вопрос жизни, Вселенной и всего остального»
Машинное обучение - форма искусственного интеллекта, которая существует около 60 лет и используется в основном в областях, которые были слишком рутинными или слишком сложными для людей (высокий риск человеческой ошибки). Даже экспертные системы, которые не являются ИИ в нашем нынешнем понимании (не могут учиться), могли бы дать ответ или диагноз, который является более точным, чем ответ от среднего эксперта. Одним из самых ранних примеров является MYCIN, который был создан более 40 лет назад для выявления бактерий, вызывающих тяжелые инфекции.
Что такое искусственный интеллект?
Слово «ИИ»(AI) все чаще появляется в технологиях, газетах и веб-сайтах, а также в дискуссиях в обществе. AI уже здесь, не в виде Скайнета, конечно, но это тоже то, что помогает людям.
AI или искусственный интеллект - это моделирование человеческих когнитивных функций машинами. Это включает в себя обучение (возможность принятия нового решения на основе обрабатываемой информации), рассуждение (использование правил для достижения приблизительных или определенных выводов), самокоррекция (изменение поведения на основе результата).
Существует много приложений AI , но есть те, которые имеют активное развитие сейчас:
- Компьютерное зрение
- Распознавание речи
- Экспертная система
- Игровые боты
- Машинное обучение
- Сбор данных
- Обработка естественного языка
Конечно, это разделение не является строгим, все эти приложения взаимосвязаны, и одно невозможно представить без другого. Машинное обучение уже широко используется, особенно при обработке изображений (обработка медицинских изображений, распознавание лиц), распознавании голоса и переводе. Машины могут обучать себя новым навыкам, зная каков ожидаемый правильный результат.
Как быстро сегодня развивается ИИ
Любая форма ИИ требует вычислительной мощности, хранения данных и для ее использования людьми, определенного типа интерфейса. Существует несколько идентифицируемых причин, по которым ИИ совершил такие скачки развития за последнее десятилетие:
- Закон Мура (4). Вычислительная мощность удваивается каждые 2 года, что делает операции более дешевыми для конечных потребителей, что позволяет использовать компьютеры и автоматизацию во всех отраслях.
- Спрос на рабочих. Существует более высокий спрос на работников практически в любой отрасли, и это требует повышения эффективности процессов. Подходы, основанные на использовании компьютера или AI, могут сэкономить много времени и денег и освободить некоторые ресурсы для работы с новыми продуктами.
- Доступность интернета. Доступ в Интернет может быть полезен в обоих направлениях: он обеспечивает неограниченный доступ к данным для ИИ и делает AI более доступным для конечных пользователей.
- Big data. Еще один новый термин. Анализ больших объемов данных практически невозможен для человека, поэтому именно здесь приходит на помощь ИИ, чтобы найти в данных шаблоны.
Эти требования вовлекают развитие новых услуг и приложений. Основная цель - повысить эффективность и производительность, оставляя больше места для творчества.
Другим новаторским новым подходом является ИИ, который сам строит ИИ и делает это лучше, чем люди: AutoML (5) Google. Зачем нужен такой ИИ? Промышленность продвигается слишком быстро, а специалистов недостаточно для удовлетворения потребностей рынка.
Как AI повлияет на тестирование программного обеспечения?
AI не проникнет в QA (контроль качества), поскольку многие люди думают и говорят в эти дни (по крайней мере, в наблюдаемом будущем), но это окажет огромное влияние на процесс и методы QA. Инженеры QA либо должны будут изучать новые навыки, либо искать профессии в более консервативной области работы.
Уже существуют некоторые структуры и службы, которые могут генерировать и выполнять тестовые сценарии без какой-либо или минимальной вовлеченности человека (Appdiff, ReTest , myWizard). Это еще не тесты алгоритмов предметной области, потому что AI не может знать, что является правильной логикой, не обладая никакой дополнительной информацией (например, QA). Тем не менее, AI понимает жесты (для приложений для мобильных телефонов), требования к вводам для каждого типа поля и общие сценарии ввода пользователей. Все, что нужно сделать, это найти все поля и запустить все комбинации тестов. Возможно, с опытом поиска ошибок, он мог бы сделать некоторые тесты раньше, чтобы быстрее находить ошибки.
ИИ с другим опытом (базой знаний) будет иметь другие навыки и, к сожалению, результат с использованием того или другого инструмента не будет предсказуемым.
Что это значит для тестеров?
Их работа изменится. Большая часть скучных повседневных задач будет автоматизирована, и QA должен будет сосредоточиться на постоянном совершенствовании процессов, креативных тестах и анализе алгоритмов предметной области. Самой важной задачей будет обучение ИИ с использованием нового опыта. Это новый навык, который QA должен будет изучить.
«Вы должны быть умнее программиста, чтобы найти проблемы в коде» - сказал кто-то в Интернете. Это уже должно быть так. Тестеры уже должны знать приложение наравне с разработчиками, а в некоторых случаях даже лучше:
- Профессионально разбираться в алгоритмах предметной области
- Знать интерфейс DB / API приложения
- Знать тесты безопасности
- Уметь тестировать нагрузку
- Понимать отраслевые стандарты проектирования
- Создавать тесты автоматизации
- И многое другое.
Внедрение ИИ добавит больше требований в этот список: новые рамки, новые способы мышления и новые навыки.
Вопрос в том, как это сделать. В настоящее время не так много людей, которые являются экспертами в создании ИИ. Это будет новый навык выбора правильных фактов, данных и «подачи его» на движок AI.
Одна вещь не изменится: тестерам нужно будет подумать, чтобы идти выше и дальше, чтобы найти ошибки в дизайне и требовании, чтобы обеспечить превосходство в продукте, которое еще не может быть сделано AI.
Какие преимущества будут получены при адаптации этих изменений?
Существует несколько способов, с помощью которых процессы QA могут извлечь выгоду из использования ИИ: помощь в выполнении вашей работы, выполнение работы вместо вас и проведение анализа, чтобы сделать вашу работу более эффективной.
Как это могло бы помочь вам выполнить свою работу? AI может помочь организовать тестовые наборы: проанализировать охват и удалить дубликаты и перекрывающиеся области, что в конечном итоге приведет к сокращению затрат на автоматизацию и поддержание наборов тестов.
Анализ данных поможет выявить области с высокой концентрацией дефектов, создавая тепловые карты дефектов для приложения, которые помогут в выборе более эффективной стратегии тестирования. Это также может помочь улучшить процесс разработки путем выявления слабых мест приложений и наиболее распространенных ошибок.
А как насчет того, чтобы ИИ работал вместо вас? Существующие структуры ИИ уже могут обеспечить автоматическое создание и выполнение тестов. Что это означает для QA? Больше времени для творческих тестов, тестов бизнес-логики и других проектов.
AI работает быстро, имеет практически неограниченную память и неутомим. Это идеальный работник для проверки всех комбинаций действий пользователя, проверки поведения каждого элемента управления и проверки всех комбинаций входных данных. Это может увеличить охват тестирования без увеличения времени выполнения.
Еще одно преимущество использования аппаратных платформ с поддержкой AI - сокращение затрат на техническое обслуживание для автоматизации, что в настоящее время является проблемой для компаний, которые пытаются сбалансировать покрытие тестирования и обслуживание тестовых наборов после изменения UI / API / данных. AI должен иметь возможность отображать желаемые результаты с новыми входами и проверять, попадает ли изменение результатов в приемлемый диапазон.
Автоматизация с помощью ИИ также могла бы нести кардинальную перемену приложениям с негативными реакциями, которые сложно автоматизировать. Одним из примеров является автоматизация IoT (интернет вещей). Датчики отображают диапазоны значений, поэтому ИИ будет полезен при проверке допустимых диапазонов и ухудшении изменений.
Подводя итог:
Будет меньше работы для сотрудников QA на строку кода, но будет больше кода и продуктов.
- Покрытие будет увеличиваться: AI может автоматически создавать тестовые сценарии для каждого скучного тестового сценария, часто опускаемого вручную тестерами / автоматическими тестами, созданными людьми
- Поскольку программное обеспечение становится менее детерминированным, обычная автоматизация и тестовые случаи (TC) не будут работать - для проверки необходим интеллект и база знаний. Пример. Вы не можете создавать утверждения для данных из сенсора, потому что вы не можете знать точные значения, отправленные устройством в данный момент. Другой пример - тестирование интеграции с поисковыми системами: результаты могут отличаться в зависимости от новой информации, поступающей в систему
- Разница между ИИ и современной автоматизацией проста: автоматизация в настоящее время следует за сценариями, создаваемыми пользователями, но ИИ может разрабатывать сценарии, чтобы выполнить работу, чтобы выполнить какую-то задачу, обеспечив меры успеха.
Что должны изменить тестеры программного обеспечения, чтобы справиться с этим?
Тестеры должны будут принять новую реальность, как это видно с помощью автоматизации, devops и другого. Некоторые изменения будут похожи на те, которые необходимы для автоматизации.
- Новые инструменты. Бар для эффективности тестирования будет повышен. Чтобы конкурировать с другими, тестировщики должны будут принять новые инструменты, научиться эффективно их использовать и понять, где можно использовать новые инструменты.
- Объем детерминированных тестов будет уменьшаться. Программное обеспечение становится менее предсказуемым и более связным с миром и может изменить поведение в течение времени. Классические тесты if-then-assert больше не смогут работать.
- AI возьмет на себя часть самой тестовой нагрузки. И это хорошо. Нет более скучных тестов, охват стал больше и времени для творчества стало более чем достаточно.
- Тестирование ИИ будет проводиться с новыми навыками, которые потребуют понимания основ ИИ и способа обработки информации.
- «Клики» обязательно вымрут полностью. Даже сейчас Google предлагает услуги, которые предоставят список улучшений и ошибок на веб-странице. С более продвинутыми инструментами AI задачи, такие как проверка подлинности UI, тесты нагрузки и тесты скорости приложений с пользовательским интерфейсом, будут и должны выполняться машинами. Парадоксально, но тестеры будут проводить меньше испытаний. То же самое произошло с принятием автоматизации: тестеры больше работают с кодом. Это не означает, что тестеры полностью “вымрут”, но характер их работы снова изменится.
Совет состоит в том, чтобы изучить эти навыки, прежде чем станет слишком поздно, чтобы прыгать в поезд, принимая AI.
Резюме
Как многие технологии, которых люди боялись, ИИ становится еще одним очень полезным инструментом, который приносит пользу обществу в повседневной жизни (личная помощь, услуги по переводу и т. д.), здравоохранении (например, оценка состояния тканей на изображениях компьютерной томографии или МРТ) или на профессиональных уровнях (автоматическое QA). Как и в случае с любым инструментом, это бесполезно без цели, и будущие профессионалы QA будут теми, кто ставит перед собой цели, улучшают его и выбирают соответствующие материалы для тестирования бизнес-логики. Люди не будут невостребованы, они смогут работать быстрее и эффективнее. Тестирование станет более интересным для людей, поскольку машины будут выполнять большинство рутинных, скучных задач.