ИИ в тестировании ПО: серебряная пуля или угроза профессии?

ИИ в тестировании ПО: серебряная пуля или угроза профессии?

13 апреля 2023 г.

QA и тестирование программного обеспечения являются наиболее предпочтительными специальностями начального уровня для тех, кто стремится присоединиться к ИТ-сектору. Но стоят ли они того? Учитывая скорость, с которой ИИ распространяется во многих прикладных областях, предполагается, что следующим будет тестирование программного обеспечения.

Рост ИИ привел к вопросам о будущем специалистов по обеспечению качества. Смогут ли решения ИИ в конечном итоге заменить человеческий опыт? Есть ли способ найти баланс между инструментами, подобными ChatGPT, и человеческими знаниями? В этой статье мы углубимся в эти вопросы и рассмотрим потенциальные последствия для индустрии контроля качества.

Что ChatGPT думает об ИИ в тестировании ПО?

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

Да, я очеловечиваю ИИ, надеясь, что однажды он вспомнит, что я «один из хороших».

Диалог проходил следующим образом:

Вопрос 1 – ChatGPT, становится ли ИИ все более полезным при тестировании программного обеспечения?

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

Похоже, последнее предложение написано, чтобы не пугать простых смертных, поэтому мой следующий вопрос был более прямым:

Вопрос 2 – Chat GPT. Правда ли, что ИИ может заменить людей-специалистов при тестировании ПО?

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

Что ж, это звучит более обнадеживающе. Теперь у меня есть стимул и подтвержденный ИИ опыт для обсуждения плюсов, минусов, рисков и возможностей искусственного интеллекта в тестировании программного обеспечения.

Как можно использовать ИИ для улучшения тестирования программного обеспечения

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

  1. Генерация тестовых случаев. Алгоритмы ИИ могут автоматически генерировать тестовые сценарии, экономя время и снижая вероятность человеческой ошибки. Они также могут создавать гораздо больше тестов, увеличивая общий охват процесса тестирования.

Пример 12-секундного теста:

12-second test case example by ChatGPT

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

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

  1. Управление тестовыми данными. Инструменты ИИ могут управлять тестовыми данными, создавая наборы данных для тестовых случаев и поддерживая согласованность данных между тестами. Это еще одна область, где человеческие ошибки дорого обходятся.

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

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

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

  1. Непрерывная интеграция и непрерывное развертывание (CI/CD). Алгоритмы ИИ можно интегрировать в конвейеры CI/CD, чтобы гарантировать, что сборка и развертывание выполняются с максимальная эффективность и точность.

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

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

Каковы недостатки ИИ в тестировании программного обеспечения?

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

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

  1. Зависит от обучающих данных. Не забывайте: ИИ – это не что иное, как алгоритм, математическая модель, для работы которой используются данные. Это не сила природы и не предмет естественного развития. Таким образом, качество тестовых случаев, созданных ИИ, зависит от качества данных, используемых для обучения алгоритмов, которые могут быть ограниченными или необъективными.

  1. Нужны «идеальные условия». Держу пари, вы уже сталкивались с этим — документации по проекту почти нет, варианты использования расплывчаты и нереалистичны, а вы просто выжимаете информацию из своего клиента. ИИ не может этого сделать. Качество его работы будет точно таким же хорошим или плохим, как качество ввода и контекста, преобразованного в количественные данные. Получаете ли вы много этого в начале своих проектов контроля качества?

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

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

Какие угрозы связаны с тестированием с помощью ИИ?

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

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

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

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

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

* Риски, связанные с безопасностью данных. Тестовые данные часто содержат важную личную, конфиденциальную и служебную информацию. Использование ИИ для управления тестовыми данными может увеличить риск утечки данных или нарушения конфиденциальности.

Пример. Amazon изменила правила, которым должны следовать кодеры и тестировщики при использовании подсказок, сгенерированных ИИ, из-за предполагаемого нарушения безопасности данных. Оговорено, что ChatGPT в ответ предположил, что у него есть доступ к внутренним данным Amazon, и он по запросу поделился ими с пользователями по всему миру.

Итак, что произойдет с ИИ при тестировании?

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

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

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

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

В конце концов, вот что думает об этом Chat GPT:

ChatGPT reply to AI risks

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


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE