ПРЕИМУЩЕСТВА ИСПОЛЬЗОВАНИЯ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА В ОБЕСПЕЧЕНИИ КАЧЕСТВА ПРИ РАЗРАБОТКЕ ПРОГРАММНОГО
ОБЕСПЕЧЕНИЯ
Ю.Д. Козлова1, ведущий инженер по обеспечению качества А.В. Уткин2, старший системный инженер ^шЫгёоА 2Digital-IQ
1(Россия, г. Ульяновск)
2(Соединенные Штаты Америки, г. Дирфилд Бич)
DOI:10.24412/2500-1000-2024-9-3-82-88
Аннотация. Обеспечение качества является одной из ключевых составляющих в разработке программного обеспечения. На текущий момент времени уделяется значительное количество внимания в сторону совершенствования методов контроля качества за счет интеграции инновационных технологий. Цель выполненного исследования состоит в выполнении анализа относительно использования интеллектуальных технологий в подзадачах обеспечения качества при разработке программного обеспечения. Автором рассмотрены ключевые направления и преимущества применения искусственного интеллекта и возможности повышения качества решения рассматриваемых задач. Материалы работы подтверждают целесообразность использования и необходимость развития интеллектуальных технологий применительно к задаче по обеспечению качества разработки программных решений.
Ключевые слова: обеспечение качества, искусственный интеллект, разработка, тестирование, программное обеспечение.
Актуальность развития рынка программного обеспечения (далее - ПО) остается высокой в современном цифровом мире. С постоянным ростом зависимости бизнеса и общества от информационных технологий, программное обеспечение становится неотъемлемой частью повседневной жизни. Этот рост происходит на фоне увеличения объемов данных, развития технологий и появления новых потребностей у пользователей. Одним из ключевых факторов, определяющих актуальность рынка программного обеспечения, является постоянное развитие информационных технологий. Новые технологии, такие как искусственный интеллект, облачные вычисления, интернет вещей и блокчейн, требуют новых программных решений для их реализации и эффективно-
го использования [1]. В современном бизнесе конкурентоспособность компаний напрямую зависит от их способности адаптироваться к изменяющимся рыночным условиям и быстро внедрять инновационные технологии. Поэтому спрос на разнообразное программное обеспечение, способное повысить эффективность бизнес-процессов, обеспечить безопасность данных и улучшить взаимодействие с клиентами, остается высоким [2]. Большинство отраслей и секторов деятельности сталкиваются с необходимостью цифровой трансформации, что также поддерживает спрос на программное обеспечение различного назначения. На рисунке 1 представлена динамика и прогноз роста рынка ПО в период с 2024 по 2030 годы.
Рис. 1. Динамика и прогнозы роста рынка ПО до 2030 года
Важную роль в разработке программного обеспечения и остается актуальной задачей в современной индустрии информационных технологий играет обеспечение качества (ОЛ). Оно охватывает широкий спектр деятельности, направленной на обеспечение высокого уровня функциональности, надежности, безопасности и удобства использования программных продуктов. Основная цель ОЛ состоит в том, чтобы гарантировать, что разрабатываемое программное обеспечение соответствует ожиданиям клиентов и требованиям бизнеса. Это включает в себя проверку соответствия программных продуктов спецификациям и требованиям, их тестирование на различных уровнях и в различных сценариях использования, а также выявление и устранение дефектов и ошибок.
В современном мире, где программное обеспечение играет ключевую роль во многих сферах жизни, включая бизнес, здравоохранение, образование, развлечения и многое другое, важно обеспечить высокое качество программных продуктов. Ошибки в программном обеспечении могут привести к серьезным последствиям, таким как потеря данных, финансовые потери, нарушение безопасности и утрата репутации компании. ОЛ также играет важную роль в процессе цифровой трансформации, когда компании стремятся к автоматизации бизнес-процессов, внедре-
нию новых технологий и разработке инновационных продуктов. В условиях быстрых изменений и растущей конкуренции на рынке, правильное обеспечение качества становится ключевым фактором успеха для компаний, разрабатывающих программное обеспечение.
Обеспечение качества при разработке программного обеспечения охватывает широкий спектр деятельности, направленной на обеспечение высокого уровня качества и соответствия программного продукта требованиям заказчика и стандартам отрасли. Так, рассматриваемые задачи включают в себя следующие основные направления:
- планирование качества. Этап, на котором определяются цели и стратегии ОЛ, а также разрабатывается план тестирования и анализа качества, который определяет процессы, методы и инструменты, используемые для обеспечения качества;
- тестирование. Один из основных компонентов ОЛ, включающий в себя проведение различных видов тестов, таких как функциональное тестирование, регрессионное тестирование, нагрузочное тестирование и т. д., с целью выявления дефектов и ошибок в программном продукте;
- оценка качества. Анализ результатов тестирования и оценка соответствия программного продукта требованиям и ожиданиям заказчика. Это включает в себя
проверку функциональности, производительности, безопасности, удобства использования и других аспектов качества программного продукта;
- управление ошибками. Отслеживание и управление дефектами и ошибками, выявленными в процессе тестирования, с целью их своевременного устранения и обеспечения качества программного продукта;
- процессы управления качеством. Разработка и реализация процессов и стандартов, направленных на обеспечение качества программного продукта на всех этапах его жизненного цикла, включая
анализ требований, проектирование, разработку, тестирование, внедрение и поддержку.
Важно подчеркнуть, что обеспечение качества является неотъемлемой частью процесса разработки программного обеспечения и играет ключевую роль в достижении успешных результатов, удовлетворении потребностей заказчика и обеспечении конкурентоспособности компании на рынке. На рис. 2 представлен состав основных задач, выполняющихся при обеспечении качества программного обеспечения.
Рис. 2. Состав обеспечения качества при разработке ПО
Актуальность и необходимость использования инновационных технологий в обеспечении качества при разработке программного обеспечения в 2024 году обу-
словлены рядом факторов, включая быстрое развитие информационных технологий, увеличение сложности программных продуктов, увеличение ожиданий пользо-
вателей и конкурентное окружение на рынке [3]. В условиях постоянных изменений и обновлений в технологической сфере, компании, занимающиеся разработкой программного обеспечения, вынуждены постоянно совершенствовать свои методы и инструменты обеспечения качества. Инновационные технологии, такие как искусственный интеллект (далее - ИИ), машинное обучение, автоматизированные системы тестирования и DevOps-подход, играют ключевую роль в улучшении процессов обеспечения качества и повышении эффективности работы команд разработки. Использование таких технологий позволяет автоматизировать многие рутинные задачи, ускорить процессы тестирования, улучшить обнаружение дефектов и повысить общее качество программного продукта. Кроме того, инновационные технологии способствуют более глубокому анализу данных, улучшению мониторинга и управления качеством, а также предоставляют новые возможности для оптимизации процессов разработки и доставки программного обеспечения. Благодаря этому компании могут быстрее реагировать на изменения в требованиях рынка, улучшать пользовательский опыт и обеспечивать конкурентоспособность своих продуктов. Так, использование инноваций в обеспечении качества при разработке программного обеспечения является не только актуальным, но и необходимым шагом для компаний, стремящихся оставаться на передовой позиции на рынке и обеспечить высокое качество своих продуктов.
Искусственный интеллект играет все более важную роль в обеспечении качества при разработке программного обеспечения, предоставляя ряд инновационных методов и инструментов для автоматизации и оптимизации процессов тестирования и контроля качества [4]. Одним из ключевых способов использования искусственного интеллекта в обеспечении качества ПО является автоматизация тестирования. С помощью методов машинного обучения и алгоритмов ИИ можно создавать автономные тестовые сценарии, обучать модели распознавания дефектов и проводить автоматический анализ кода на
наличие ошибок. Это позволяет значительно сократить время, затрачиваемое на ручное тестирование, и повысить эффективность обнаружения дефектов. Другим способом применения искусственного интеллекта является улучшение процессов управления качеством [5]. Системы мониторинга и аналитики, основанные на ИИ, позволяют проводить непрерывное отслеживание работы программного обеспечения, выявлять аномалии и предсказывать возможные проблемы еще до их возникновения. Это помогает компаниям оперативно реагировать на потенциальные угрозы качеству и предотвращать их влияние на конечного пользователя.
Кроме того, искусственный интеллект может использоваться для оптимизации процессов разработки и тестирования, например, путем автоматического анализа больших объемов данных, предоставления рекомендаций по улучшению кода или предсказания времени завершения проекта [6]. Как видно, ИИ открывает широкие возможности для совершенствования процессов обеспечения качества при разработке программного обеспечения, что позволяет компаниям повысить эффективность своей работы, сократить затраты и обеспечить высокое качество своих продуктов.
Примером ИИ в обеспечении качества при разработке ПО является HP ALM (рис. 3). Это набор программных средств, разработанных и продаваемых компанией Micro Focus (ранее Hewlett-Packard и Hewlett Packard Enterprise) для разработки и тестирования приложений. Он включает инструменты для управления требованиями, планирования тестирования и функционального тестирования, тестирования производительности (при использовании с Performance Center), управления разработчиками (посредством интеграции со средами разработчиков, такими как Collabnet, TeamForge и Microsoft Visual Studio) и управления дефектами. ALM предназначен для поддержки ключевых заинтересованных сторон, ответственных за доставку приложений по мере их прохождения через жизненный цикл.
Quality Management i/qm) One
- & JKE Banking (Quality Management)
Project Dashboards v Requirements -v Planning v Construction v Lab Manageme :nt ■v Builds v Execution -v Reports v Change Requests v
Manage Sections
Overview -fc
Summary
Business Objectives Test Objectives Formal Review Requirement Collection Links
Development Plan Links
Risk Assessment Test Schedules Test Estimation Test Environments Quality Objectives Entry Criteria Exit Criteria Test Suites Test Cases Test Case Execution Records Resources Attachments □ Show All Sections
Щь *2: System Verification
Щ # $ il T ^ I Cancel ][ Save
Test Plan Overview
State: =S> Draft Originator: Tammy
Snapshots Action: Owner:
History
Select State 0 Tammy [T|
Execution Progress Test Case:
Total: 104/105 h Estimated: 93%
Priority: G Unassigned [▼]
Description: Formal test plan for system verification.
Test Suite: I
i с
Estimated: 0%
Quality Objectives X 4 Work Item: Create
Defines the overall metrics for what constitutes a quality product.
^ m si r
Objective Description: Expected Actual Value Status Comment
Number of Open Sev1 Defects Objective stating that all Severity 1 defects must be closed. = 0 0 Successful See policy defining Sev
Percentage of Blocked Execution Records Objective stating that only a small percentage of Execution Records can be Blocked. <10 0 Successful
Progress on Test Automation Progress on Test Automation <=40 10 Not Started Expect value will increa over time-see Test Objectives
Requirements coverage Requirements coverage = 100 0 Not Started
i
m # s
Рис. 3. Работа в программе Rational Quality Manager
Cancel Save
Искусственный интеллект также позволяет автоматизировать задачи по обнаружению и исправлению ошибок в исходном коде [7]. С помощью специализированного программного обеспечения, работающего на базе интеллектуальных технологий, выполняется тестирование кода в широком спектре сценариев (рис. 4). В результате данных работ представляется возможным
выявлением потенциальных проблем и предложение решений по их исправлению. Примерами таких инструментов являются DeepCode и Kite. Данные решения позволяют значительно сэкономить время и усилия разработчиков, позволяя им сосредоточиться на других немаловажных аспектах backend-разработки.
Рис. 4. Анализ кода на C++ и предложение исправлений посредством DeepCode
Итак, искусственный интеллект предоставляет значительные преимущества при обеспечении качества программного обеспечения (ПО), превращая традиционные методы тестирования в более эффективные и точные процессы. Одним из ключевых преимуществ является возможность автоматизации рутинных задач, связанных с тестированием. С помощью методов машинного обучения и алгоритмов ИИ можно создавать автономные тестовые сценарии, что значительно сокращает время, затрачиваемое на тестирование, и позволяет более быстро выявлять дефекты.
Еще одним преимуществом является способность искусственного интеллекта к анализу больших объемов данных. Системы мониторинга и аналитики, основанные на ИИ, могут проводить непрерывное отслеживание работы ПО, выявлять аномалии и предсказывать возможные проблемы еще до их возникновения [8]. Это помогает предотвратить серьезные сбои в работе системы и минимизировать риск возникновения ошибок. Кроме того, использование искусственного интеллекта позволяет оптимизировать процессы разработки и тестирования ПО. Автоматический анализ данных может предоставлять ценные ин-сайты разработчикам, помогая им выявлять проблемные участки кода, улучшать его качество и ускорять процесс разработки. В целом, применение искусственного интеллекта в обеспечении качества при разработке ПО позволяет компаниям сократить затраты, повысить эффективность работы и обеспечить более высокое качество своих продуктов.
Таким образом, основной целью представленной статьи являлось выполнение анализа относительно использования тех-
нологий искусственного интеллекта в задачах обеспечения качества при разработке программного обеспечения. В результате работы рассмотрен состав ОЛ, а также определена необходимость интеграции инновационных интеллектуальных решений для исходных задач, связанных с разработкой ПО. Определено, что обеспечение качества при разработке ПО становится все более актуальной задачей, поскольку пользователи становятся все более требовательными к функциональности, производительности и безопасности программных продуктов. Искусственный интеллект играет важную роль в этом процессе, предоставляя компаниям инновационные инструменты и методы для оптимизации процесса разработки и обеспечения высокого качества продуктов.
Преимущества использования искусственного интеллекта в обеспечении качества ПО очевидны. Автоматизация рутинных задач, анализ больших объемов данных и оптимизация процессов разработки помогают компаниям сократить затраты, повысить эффективность работы и улучшить качество своих продуктов. Вместе с тем, использование ИИ позволяет выявлять потенциальные проблемы и дефекты на ранних этапах разработки, что помогает предотвратить серьезные сбои и улучшить пользовательский опыт. Так, внедрение ИИ в обеспечение качества при разработке ПО является важным шагом для современных компаний, стремящихся оставаться конкурентоспособными на рынке. Это позволяет им не только повысить эффективность своей деятельности, но и обеспечить высокое качество своих программных продуктов, соответствующее ожиданиям пользователей.
Библиографический список
1. Лазченко В.Р. Введение в тестирование программного обеспечения // Форум молодых ученых. - 2019. - №1-2 (29). - С. 495-499.
2. Красиков И.А., Симонов И.Н., Гаев Л.В. Применение искусственного интеллекта в разработке программного обеспечения // Инновационная наука. - 2023. - №6-1. - С. 37-40.
3. Бурый А.С. Тестирование качества программного обеспечения в процессе его сертификации // Правовая информатика. - 2019. - №1. - С. 46-55.
4. Бевзенко С.А. Применение искусственного интеллекта и машинного обучения в разработке программного обеспечения // Инновации и инвестиции. - 2023. - №8. - С. 187191.
5. Иламанов Б.Б. Интеграция искусственного интеллекта в разработке программного обеспечения // Вестник науки. - 2023. - №12 (69). - С. 1207-1211.
6. Цыплов Е.А., Новиков В.А., Хайитов Х.О. Интеграция системы менеджмента качества в процессы разработки программного обеспечения // Форум молодых ученых. - 2019. - №10 (38). - С. 545-549.
7. Коркин М.С., Рубан П.О., Зайцева Е.А. Использование программ искусственного интеллекта в процессе собеседования: российский и зарубежный опыт // Юридическая наука. - 2023. - №6. - С. 94-97.
8. Парамзина А.А., Тищенко Е.Н. Качество программного обеспечения // Экономика и социум. - 2022. - №3-1 (94). - С. 416-427.
ADVANTAGES OF USING ARTIFICIAL INTELLIGENCE IN QUALITY ASSURANCE
IN SOFTWARE DEVELOPMENT
I.D. Kozlova1, Lead QA Engineer
A.V. Utkin2, Senior Systems Engineer
1SimbirSoft
2Digital-IQ
1(Russia, Ulyanovsk)
2(United States of America, Deerfield Beach)
Abstract. Quality assurance is one of the key components in software development. Now, a significant amount of attention paid towards improving quality control methods through the integration of innovative technologies. The purpose of the article is to perform an analysis regarding the use of intelligent technologies in quality assurance subtasks in software development. The author considers the key directions and advantages of using artificial intelligence and the possibility of improving the quality of solving the problems under consideration. The materials of the work confirm the expediency of using and the need for the development of intelligent technologies in relation to the task of ensuring the quality of software solutions development. Keywords: quality assurance, artificial intelligence, development, testing, software.