ИИ в тестировании ПО: серебряная пуля или угроза профессии?
13 апреля 2023 г.QA и тестирование программного обеспечения являются наиболее предпочтительными специальностями начального уровня для тех, кто стремится присоединиться к ИТ-сектору. Но стоят ли они того? Учитывая скорость, с которой ИИ распространяется во многих прикладных областях, предполагается, что следующим будет тестирование программного обеспечения.
Рост ИИ привел к вопросам о будущем специалистов по обеспечению качества. Смогут ли решения ИИ в конечном итоге заменить человеческий опыт? Есть ли способ найти баланс между инструментами, подобными ChatGPT, и человеческими знаниями? В этой статье мы углубимся в эти вопросы и рассмотрим потенциальные последствия для индустрии контроля качества.
Что ChatGPT думает об ИИ в тестировании ПО?
Первое правило журналистики — сделать все правильно и добраться до источника. В моем случае — ChatGPT, у которого я решил взять интервью, прежде чем поделиться своими мыслями и выводами о искусственный интеллект в тестировании программного обеспечения.
Да, я очеловечиваю ИИ, надеясь, что однажды он вспомнит, что я «один из хороших».
Диалог проходил следующим образом:
Вопрос 1 – ChatGPT, становится ли ИИ все более полезным при тестировании программного обеспечения?
Ответ. Инструменты на основе ИИ могут автоматизировать повторяющиеся и трудоемкие задачи тестирования. Это может помочь сократить время и ресурсы, необходимые для тестирования, и улучшить общее качество программного обеспечения. Однако искусственный интеллект — это не замена тестировщикам-людям, а скорее инструмент, который может дополнить и усилить их усилия.
Похоже, последнее предложение написано, чтобы не пугать простых смертных, поэтому мой следующий вопрос был более прямым:
Вопрос 2 – Chat GPT. Правда ли, что ИИ может заменить людей-специалистов при тестировании ПО?
Ответ – Нет, ИИ вряд ли в ближайшем будущем полностью заменит людей-специалистов по тестированию программного обеспечения. Хотя ИИ может автоматизировать определенные задачи и помогать в тестировании, он все же имеет ограничения и не может заменить человеческое суждение и творчество. Тестировщики-люди обладают уникальным видением и навыками решения проблем, которые ИИ не может воспроизвести, а также играют важную роль в проверке точности результатов тестирования, интерпретации сложных сценариев и принятии решений.
Что ж, это звучит более обнадеживающе. Теперь у меня есть стимул и подтвержденный ИИ опыт для обсуждения плюсов, минусов, рисков и возможностей искусственного интеллекта в тестировании программного обеспечения.
Как можно использовать ИИ для улучшения тестирования программного обеспечения
Существует предсказуемый консенсус в отношении того, что ИИ помогает ускорить и повысить эффективность процессов. Давайте выделим ключевые процессы контроля качества и тестирования и посмотрим, как инструменты ИИ могут их улучшить.
- Генерация тестовых случаев. Алгоритмы ИИ могут автоматически генерировать тестовые сценарии, экономя время и снижая вероятность человеческой ошибки. Они также могут создавать гораздо больше тестов, увеличивая общий охват процесса тестирования.
Пример 12-секундного теста:
- Оптимизация тестов. ИИ может расставлять приоритеты тестов на основе риска, сложности и частоты использования, гарантируя, что наиболее важные тесты будут выполняться в первую очередь. Он имеет дополнительные преимущества для таких отраслей, как финтех, благодаря их подходу к быстрой разработке и выпуску.
Пример. ИИ может анализировать программный код и шаблоны использования, чтобы определить, какие тесты с наибольшей вероятностью выявят ошибки и другие проблемы, и определить приоритетность этих тестов для выполнения.
- Управление тестовыми данными. Инструменты ИИ могут управлять тестовыми данными, создавая наборы данных для тестовых случаев и поддерживая согласованность данных между тестами. Это еще одна область, где человеческие ошибки дорого обходятся.
4. Прогнозирование дефектов. Алгоритмы искусственного интеллекта уже используются в решениях по прогнозированию аварий. Здесь они могут прогнозировать вероятность возникновения дефекта на основе прошлых данных, выделяя области с наибольшим риском.
Пример. ИИ может помочь в прогнозировании дефектов при тестировании, а контроль качества — в большом программном приложении, содержащем многие тысячи строк кода и сложные требования. ИИ можно использовать для анализа кода, требований и результатов тестирования, чтобы выявить потенциальные дефекты на ранних этапах процесса разработки.
- Автоматизация тестирования. ИИ можно использовать для автоматизации процесса тестирования, что позволяет тестировщикам сосредоточиться на других задачах, таких как проектирование и анализ тестов. Если бы я получал доллар каждый раз, когда специалист по контролю качества жалуется на нехватку времени для анализа и более креативного дизайна тестов, я мог бы позволить себе досрочный выход на пенсию.
- Непрерывная интеграция и непрерывное развертывание (CI/CD). Алгоритмы ИИ можно интегрировать в конвейеры CI/CD, чтобы гарантировать, что сборка и развертывание выполняются с максимальная эффективность и точность.
- Анализ основных причин. Алгоритмы искусственного интеллекта можно использовать для анализа результатов тестирования и определения основной причины сбоев, что позволяет тестировщикам быстрее и эффективнее устранять дефекты.
Анализ результатов испытаний. ИИ может анализировать результаты тестирования и выявлять тенденции, позволяя тестировщикам принимать решения на основе данных о состоянии тестируемого программного обеспечения и изменять тактику тестирования или общую стратегию контроля качества.
Каковы недостатки ИИ в тестировании программного обеспечения?
Если вы чувствуете, что предыдущая часть подтверждает, что вы можете остаться без работы… в ближайшее время, не занижайте себе цену, по крайней мере, сейчас. Вот ограничения, которые ИИ имеет и будет иметь в течение значительного периода времени.
- Отсутствует творческий подход. Алгоритмы искусственного интеллекта испытывают большие проблемы с созданием тестовых сценариев, учитывающих пограничные случаи или неожиданные сценарии. Им нужна помощь в устранении несоответствий и сложных ситуаций.
- Зависит от обучающих данных. Не забывайте: ИИ – это не что иное, как алгоритм, математическая модель, для работы которой используются данные. Это не сила природы и не предмет естественного развития. Таким образом, качество тестовых случаев, созданных ИИ, зависит от качества данных, используемых для обучения алгоритмов, которые могут быть ограниченными или необъективными.
- Нужны «идеальные условия». Держу пари, вы уже сталкивались с этим — документации по проекту почти нет, варианты использования расплывчаты и нереалистичны, а вы просто выжимаете информацию из своего клиента. ИИ не может этого сделать. Качество его работы будет точно таким же хорошим или плохим, как качество ввода и контекста, преобразованного в количественные данные. Получаете ли вы много этого в начале своих проектов контроля качества?
- Имеет ограниченное понимание программного обеспечения. Мы склонны наделять ИИ сверхспособностями и его пониманием мира. На самом деле, он действительно очень ограничен на данный момент. Может не иметь глубокого понимания тестируемого программного обеспечения, что может привести к пропуску важных сценариев или дефектов.
- Для работы требуются квалифицированные специалисты. Например, интеграция стратегии тестирования с конвейерами CI/CD на базе ИИ может быть сложной в настройке, обслуживании и устранении неполадок, поскольку требует передовых технических навыков и знание алгоритмов и технологий ИИ. Проверенные и надежные методы, которые мы используем сейчас, могут в течение многих лет оставаться намного дешевле и проще в обслуживании.
Какие угрозы связаны с тестированием с помощью ИИ?
Есть разница между тем, что ИИ не может сделать хорошо, и тем, что может пойти не так, даже если он отлично справляется со своей задачей. Давайте рассмотрим угрозы, связанные с тестированием искусственного интеллекта.
* Предвзятость в расстановке приоритетов и отсутствие прозрачности. Становится все труднее понять, как алгоритмы ИИ принимают решения о расстановке приоритетов, что затрудняет обеспечение этического и справедливого определения приоритетов тестов. Предубеждения могут повлиять на алгоритмы ИИ в данных, используемых для их обучения, что может привести к искажению приоритетов тестов.
Пример. Предположим, что обучающие данные содержат предвзятость, например непропорциональное количество тестовых случаев из определенной демографической группы. В этом случае алгоритм может расставлять приоритеты тестов таким образом, что это несправедливо благоприятствует или ставит в невыгодное положение определенные группы. Например, обучающие данные содержат больше тестовых случаев от мужчин, чем от женщин. Алгоритм ИИ может предположить, что мужчины являются основными пользователями программного обеспечения, а женщины — вторичными пользователями. Это может привести к несправедливой или дискриминационной приоритизации тестов, что негативно скажется на качестве программного обеспечения для недостаточно представленных групп.
* Чрезмерная зависимость от ИИ. Отсутствие участия человека в принятии решений снижает творческий потенциал при тестировании подходов, отодвигает крайние случаи в сторону и, в конце концов, может принести больше вреда, чем пользы. Отсутствие человеческого контроля может привести к неверным результатам тестирования и упущенным ошибкам. Повышенный человеческий контроль может привести к дополнительным затратам на техническое обслуживание.
Пример. Если команда полагается исключительно на инструменты автоматизации тестирования на основе ИИ, они могут пропустить важные дефекты, которые могут существенно повлиять на функциональность программного обеспечения и взаимодействие с пользователем. Человеческий глаз улавливает нестыковки, используя всю предысторию использования подобных решений. ИИ опирается только на ограниченные данные и математические модели. Чем более совершенным становится ИИ, тем сложнее проверить достоверность результатов и тем рискованнее чрезмерное доверие. Такая чрезмерная зависимость от ИИ может привести к ложному чувству безопасности и привести к выпуску программного обеспечения с непредвиденными дефектами и проблемами.
* Риски, связанные с безопасностью данных. Тестовые данные часто содержат важную личную, конфиденциальную и служебную информацию. Использование ИИ для управления тестовыми данными может увеличить риск утечки данных или нарушения конфиденциальности.
Пример. Amazon изменила правила, которым должны следовать кодеры и тестировщики при использовании подсказок, сгенерированных ИИ, из-за предполагаемого нарушения безопасности данных. Оговорено, что ChatGPT в ответ предположил, что у него есть доступ к внутренним данным Amazon, и он по запросу поделился ими с пользователями по всему миру.
Итак, что произойдет с ИИ при тестировании?
Если вы новичок в тестировании вручную — вам лучше поторопиться и инвестировать в свои навыки. Чем меньше опыта и чем проще автоматизировать задачи, которые вы выполняете сейчас, тем быстрее алгоритмы ИИ придут после вашей работы.
Автоматизация искусственного интеллекта – это необходимое и долгожданное событие для индустрии контроля качества. Он неизбежно возьмет на себя задачи с большими объемами данных и тысячами строк кода. Это потребует человеческого контроля и обслуживания, и компании снова столкнутся с необходимостью балансировать расходы.
Я считаю, что требования безопасности будут ужесточаться, а использование ИИ тестировщиками и разработчиками станет более прозрачным для клиентов. В конце концов, компании несут ответственность за сохранность данных, конфиденциальность и производительность своих решений. Более строгие требования безопасности приведут к новым ролям и контрольным точкам — человек, наблюдающий за ИИ, является обязательным, и чем более продвинутым становится ИИ, тем более профессиональным должен быть человек.
Вопрос этичного и непредвзятого ввода данных будет одним из самых актуальных для международных компаний, особенно с учетом аспектов локализации. Я предполагаю, что QA-специалисты с дополнительной прикладной этикой и образованием, связанным с DEI, будут очень востребованы.
В конце концов, вот что думает об этом Chat GPT:
В нашей компании мы начали применять инструменты на основе ИИ для автоматизации тестирования еще в 2022 году, и на данный момент я могу подтвердить, что это ускоряет процесс, но это полностью зависит от того, насколько усердно вы его «обучаете». Мы продолжим тестировать ИИ, чтобы сделать нашу работу для клиентов быстрее, лучше и экономичнее, потому что сейчас это может быть страшно, но будущее за ИИ.
Оригинал