Методы машинного обучения для прогнозирования усилий по тестированию программного обеспечения

Введение

Тестирование программного обеспечения является важным компонентом разработки программного обеспечения, который гарантирует, что программное обеспечение соответствует заданным требованиям и работает должным образом. Однако тестирование может занимать много времени и средств, поэтому важно точно предсказать объем усилий, необходимых для тестирования данной программной системы. Точное прогнозирование усилий по тестированию программного обеспечения может помочь в распределении ресурсов, планировании и составлении бюджета, среди прочего (López-Martín, 2022, стр. 70).

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

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

II. Литературный обзор

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

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

Несмотря на многообещающие результаты методов машинного обучения в прогнозировании усилий по тестированию программного обеспечения, существует несколько проблем, связанных с их использованием. Одной из проблем является потребность в высококачественных данных для обучения моделей, поскольку неточные или неполные данные могут привести к плохим прогнозам. Еще одной проблемой является необходимость в экспертных знаниях в предметной области для интерпретации результатов моделей и принятия обоснованных решений Мурильо-(Морера, 2017, стр. 15).

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

III. Методология

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

Первым шагом в методологии вторичного исследования будет проведение всестороннего обзора литературы для выявления и анализа существующих исследований и исследовательских работ, связанных с прогнозированием усилий по тестированию программного обеспечения с использованием методов машинного обучения. Обзор литературы будет охватывать соответствующие рецензируемые журналы, материалы конференций и онлайновые базы данных, такие как IEEE Xplore, ACM Digital Library и Google Scholar. Вторым шагом будет определение соответствующих наборов данных, которые можно использовать для оценки эффективности методов машинного обучения для прогнозирования усилий по тестированию программного обеспечения. Наборы данных будут отобраны на основе их актуальности для вопросов исследования и доступности данных. Выбранные наборы данных будут предварительно обработаны для удаления любых выбросов и отсутствующих данных, а также для обеспечения согласованности данных.

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

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

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

IV. Как ИИ применяется для тестирования программного обеспечения

Исторически сложилось так, что тестирование программного обеспечения отставало от разработки программного обеспечения. Он долгое время был аутсайдером процесса разработки программного обеспечения. Но ИИ позволяет ему догнать и даже обогнать остальную часть SDLC. Машинное обучение в тестировании программного обеспечения выгодно по трем основным причинам. (Марьян, 2020 г.)

· Создание теста

Создавайте и запускайте тесты как часть автоматизированного тестирования. В прошлом это означало применение фреймворка вроде Selenium. Selenium имитирует взаимодействие реального пользователя с интерфейсом. Это достигается за счет использования как селекторов элементов, так и действий. Он может найти нужный элемент на экране благодаря селекторам. Затем он может выполнять такие действия, как щелчок, наведение курсора, ввод текста или даже просто проверка наличия элемента. Вы можете управлять всем этим, написав подробный тестовый сценарий.

· Что не так с тестовыми сценариями?

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

· Как ИИ улучшает процесс

Просто шаг за шагом просматривая свой тестовый пример, ИИ позволяет создавать тесты. Из-за того, что вы фактически выполняете тест напрямую, в то время как базовая система автоматизирует его, создание тестов этого типа занимает несколько минут, а не часов. Система собирает огромное количество данных, поскольку строит модели ML того, как ваш сайт работает в фоновом режиме. Используя такие методы, как НЛП, он может обнаружить, какая кнопка нажата и почему, чтобы понять, что эта кнопка делает. Создание модели имеет решающее значение, поскольку оно гарантирует, что тест будет работать правильно в любом браузере или на любом устройстве. (Эй и др., 2017 г.)

V. Тенденции автоматизации тестирования ИИ

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

· Пошаговое тестирование для пользователей

Во-первых, тестирование происходило непосредственно перед публикацией. После этого он переместился влево, чтобы можно было проводить более раннее и более частое тестирование. Тестирование недавно сместилось вправо из-за таких стратегий, как Canary Testing и Dark Launching. Они не позволяют оценить удобство использования вашего приложения, но позволяют увидеть, как новые функции влияют на надежность вашего бэкенда. Благодаря производственному тестированию, проводимому с помощью ИИ, ситуация вот-вот изменится. В настоящее время все используют пассивный мониторинг для тестирования используемых систем. Производительность и реактивность — единственное, на что нужно обращать внимание. Реальному опыту потребителя уделяется очень мало внимания. По сути, вы предполагаете, что все проблемы были решены во время предварительного тестирования. Более того, не предпринимается никаких усилий, чтобы проверить, работает ли какой-либо сторонний контент. (Кац и др., 2017 г.)

· Анализ пробелов

Вы, наверное, слышали, как люди утверждают, что современный калькулятор мощнее лунной миссии «Аполлон» с точки зрения вычислений. Тем не менее суперкомпьютеры CRAY, выпущенные несколько десятилетий назад, уступают нынешним ноутбукам. Аналогичное увеличение сложности программного обеспечения было замечено с этим увеличением мощности. Просто сравните Candy Crush Saga с оригинальной аркадной игрой Pong. Конечным результатом является то, что практически невозможно протестировать каждый аспект этих приложений. Несомненно, будут потоки пользователей, которые вы упустите из виду, даже если протестируете наиболее очевидные. Это нормально, если такие потоки не используются, но что, если каждый пользователь делает неожиданное движение, которое приводит к ошибке? Слава богу, скоро машинное обучение позволит нам слишком активно. (мерши, Бегель и Берд 2019)

VI. Полученные результаты

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

VII. Обсуждение

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

VIII. Заключение

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

Использованная литература:

Лопес-Мартин, К., 2022. Методы машинного обучения для прогнозирования усилий по тестированию программного обеспечения. Журнал качества программного обеспечения, 30(1), стр. 65–100.

Менса, С., Кеунг, Дж., Макдонелл, С.Г., Босу, М.Ф. и Беннин, К.Е., 2018. Изучение значения эффекта вожака для улучшения прогнозирования трудозатрат на программное обеспечение: дальнейшее эмпирическое исследование. Транзакции IEEE по надежности, 67(3), стр. 1176–1198.

Мурильо-Морера, Дж., Кесада-Лопес, К., Кастро-Эррера, К. и Дженкинс, М., 2017. Основанная на генетическом алгоритме структура для прогнозирования работы программного обеспечения. Журнал исследований и разработок в области разработки программного обеспечения, 5(1), стр. 1–33.

Умар, С.Н., 2013. Модель прогнозирования дефектов тестирования программного обеспечения — практический подход. Международный журнал исследований в области инженерии и технологий, 2(5), стр. 741–745.

Макдонелл, С.Г. и Шепперд, М., 2010 г., сентябрь. Накопление данных и прогнозирование работы программного обеспечения. В Материалы Международного симпозиума ACM-IEEE 2010 по эмпирической разработке и измерению программного обеспечения (стр. 1–4).

Локан К. и Мендес Э., 2012 г., декабрь. Исследование использования движущихся окон на основе продолжительности для улучшения прогнозирования трудозатрат на программное обеспечение. На 19-й Азиатско-Тихоокеанской конференции по программной инженерии, 2012 г. (том 1, стр. 818–827). IEEE.

ei, K., Y. Cao, J. Yang и Jana. 2017. «Deepxplore: автоматизированное тестирование систем глубокого обучения методом «белого ящика». ». n Symp.on Oper. Сист. Принцип 1–1.

Кац Г., К. Барретт, Д. Дилл и К. Джулиан. 2017. «Reluplex: эффективный решатель smt для проверки глубоких нейронных сетей». n Компьютерная проверка. 97–117.

Мариян, Душица и Готлиб, Арно. (. 2020. «Конференция AAI по искусственному интеллекту». Тестирование программного обеспечения для машинного обучения.34.

Мерши, С., А. Бегель, Кристиан и Бёрд. 2019. «Разработка программного обеспечения для машинного обучения: тематическое исследование. В Междунар.Конф. на Софт. англ.:.” Нажмите IEEE 291–300. .