менеджер проекта Отдела разработки специального программного обеспечения ООО «Сервисный центр Транстелематика», РФ, г. Москва
РОЛЬ ПРОЕКТНОГО МЕНЕДЖЕРА В ПОВЫШЕНИИ КАЧЕСТВА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЧЕРЕЗ АВТОМАТИЗАЦИЮ ТЕСТИРОВАНИЯ
АННОТАЦИЯ
В статье рассматриваются вопросы, касающиеся обоснования и характеристики роли проектного менеджера в повышении качества программного обеспечения через автоматизацию тестирования. Эта область деятельности сталкивается с рядом противоречий, сопряженных с выбором подходящих инструментов, согласованием процессов, разработкой, управлением рисками, а также эффективной организацией функционирования команды. Особое значение приобретает участие специалиста по проектному менеджменту, который должен выступать координатором и лидером, обеспечивая успешную интеграцию автоматизации. Цель исследования заключается в анализе его роли в повышении качества ПО (посредством изучаемого направления). Рассмотрены теоретические аспекты, выявлены базовые принципы, заложенные в основу характеризуемых процессов; описаны возможные инструменты, подходы, которые специалисты задействуют для успешной интеграции автоматизации тестирования (в том числе, выбор технологий, управленческих стратегий, методик взаимодействия с командами). Сформулировано авторское видение стратегии его участия на различных этапах проекта. Уделено особое внимание описанию современного инструментария, а также практическим рекомендациям. Выявлены основные задачи, которые стоят перед проектными менеджерами: планирование автоматизации, организация обучения команды, согласование процессов, управление рисками. Статья будет полезна руководителям проектов, инженерам по качеству, тестировщикам, всем специалистам, вовлеченным в процессы разработки программного обеспечения, стремящимся оптимизировать работу.
ABSTRACT
The article discusses issues related to the justification and characteristics of the role of a project manager in improving the quality of software through testing automation. This area of activity faces a number of contradictions associated with the selection of appropriate tools, process coordination, development, risk management, as well as the effective organization of the functioning of the team. Of particular importance is the participation of a project management specialist, who should act as a coordinator and leader, ensuring the successful integration of automation. The purpose of the study is to analyze its role in improving the quality of software (through the direction being studied). The theoretical aspects are considered, the basic principles underlying the characterized processes are identified; possible tools and approaches that specialists use for successful integration of test automation are described (including the choice of technologies, management strategies, and methods of interaction with teams). The author's vision of the strategy of his participation at various stages of the project is formulated. Special attention is paid to the description of modern tools, as well as practical recommendations. The main tasks facing project managers are identified: automation planning, organization of team training, coordination of processes, risk management. The article will be useful for project managers, quality engineers, testers, and all specialists involved in software development processes seeking to optimize their work.
Ключевые слова: автоматизация тестирования, инструменты тестирования, качество программного обеспечения, проектный менеджер, управление рисками.
Keywords: test automation, testing tools, software quality, project manager, risk management.
Введение
Современные информационные технологии играют определяющую роль в формировании экономической, а также социальной среды. Программное обеспечение (ПО) стало неотъемлемой частью практически всех сфер человеческой деятельности — от управления крупными производственными процессами до повседневных задач (финансовый учет, коммуникации и т. п.). При этом качество ПО остается решающим фактором, определяющим успех на рынке, удовлетворенность конечных пользователей.
Важнейшей составляющей в характеризуемой области является тестирование. Речь идет о процессе, который позволяет своевременно выявлять дефекты, минимизировать риск отказов, повысить общую надежность продукта. Однако традиционные методы требуют значительных временных и трудовых затрат. Здесь на первый план выходит автоматизация, которая обеспечивает значительное сокращение времени на выполнение рутинных задач, повышает точность диагностики, существенно ускоряет процесс обратной связи между разработкой и тестированием.
С учетом обозначенного выше проектный менеджер занимает центральное место в управлении качеством ПО. Он отвечает за интеграцию автоматизации в общий цикл разработки, координацию межфункциональных команд, выбор оптимальных инструментов, методологий.
Цель данного исследования заключается в анализе роли проектного менеджера в повышении качества программного обеспечения через внедрение, развитие автоматизации тестирования. Для ее достижения необходимо решить следующие задачи: рассмотреть теоретические аспекты, выявив базовые принципы, заложенные в основу характеризуемых процессов; описать возможные инструменты, подходы, которые специалисты задействуют для успешной интеграции автоматизации тестирования (в том числе, выбор технологий, управленческих стратегий, методик взаимодействия с командами).
Материалы и методы
Исходя из обзора современных источников [2, 5, 7-9] обнаруживается, что автоматизация тестирования — это процесс применения специализированных программных средств, технологических разработок для выполнения тестов ПО, анализа результатов, сокращения времени, затрачиваемого на ручные проверки. Базовый целевой ориентир — проверка функциональности, производительности, стабильности, а также иных параметров программного продукта в автоматическом режиме. Ключевыми преимуществами являются:
- сокращение времени (возможно одновременно запускать множество тестов, что особенно важно для крупных проектов с широким охватом);
- повышение точности (исключение человеческого фактора минимизирует вероятность ошибок, которые сопряжены с субъективностью либо усталостью специалистов);
- экономия ресурсов в долгосрочной перспективе (после создания тестового сценария его реально многократно использовать без дополнительных затрат);
- своевременное выявление дефектов (оперативная обратная связь помогает разработчикам быстро устранять ошибки);
Однако рассматриваемая сфера также характеризуется рядом серьезных ограничений, недостатков:
- высокая стоимость интеграции (подразумеваются значительные первоначальные затраты);
- сложность адаптации (автоматизированные тесты подчас оказываются неэффективными при частых изменениях требований или архитектуры ПО);
- необходимость квалифицированных специалистов (команде требуются опытные инженеры, способные разрабатывать, поддерживать тестовые сценарии) [2, 5].
Итак, весьма значим взвешенный подход, в рамках которого принимаются в учет потребности проекта, доступные ресурсы, уровень квалификации команды.
Автоматизация подходит для выполнения ряда специфических видов тестов, обеспечивающих полный охват функциональности ПО (рис. 1):
Рисунок 1. Разновидности тестов, поддающихся автоматизации (составлено автором на основе [1, 4, 9])
Так, благодаря Unit-тестам проверяется работа отдельных модулей или функций системы. Они, как правило, автоматизируются первыми, поскольку помогают обнаруживать ошибки на самых ранних стадиях разработки.
Интеграционный тип дает возможность оценивать взаимодействие между компонентами, гарантируя корректность их совместной работы.
Что касается регрессионных тестов, то они ориентированы на проверку того, что изменения в коде не влияют на уже существующий функционал. Особенно важны при частых обновлениях системы.
UI-вариант — это тестирование пользовательского интерфейса на совместимость, а также удобство применения, что позволяет оценить взаимодействие человека с программным продуктом.
Наконец, автоматизация Performance-тестов помогает проверить производительность при высокой нагрузке, определяя ее устойчивость, масштабируемость.
Обозначенные и охарактеризованные разновидности целесообразно комбинировать в рамках стратегий тестирования — из соображений обеспечения всестороннего контроля качества.
С целью успешной автоматизации в описываемой области проектные команды задействуют специализированный инструментарий, предназначенный для решения различных задач (таблица 1):
Таблица 1.
Характеристика основных инструментов (составлено автором на основе [5, 8, 10])
Название |
Описание |
Selenium |
Популярный инструмент для автоматизации тестирования веб-приложений. Он поддерживает множество языков программирования (Java, Python, C#), а также основные браузеры. |
Jenkins |
Платформа для организации процессов Continuous Integration, позволяющая автоматически запускать тесты при внесении изменений в код. |
TestNG |
Расширяемый вариант для создания и управления тестовыми сценариями, применяемый для структурирования сложных тестовых процессов. |
Appium |
Фреймворк для тестирования мобильных приложений, поддерживающий платформы iOS, Android. |
Postman |
Средство для автоматизации тестирования API, которое помогает проверять корректность запросов и ответов. |
Следует подчеркнуть, что выбор инструментов зависит от целевых ориентиров проекта, его архитектуры, используемых технологий. Комбинация нескольких из них предоставляет возможность охватить все ключевые аспекты тестирования, повысить результативность функционирования команды.
Роль проектного менеджера в анализируемой области выходит за рамки классического управления задачами. Основной обязанностью становится координация процессов автоматизации с учетом целей, ресурсов, технических ограничений. Данный специалист отвечает за:
- разработку стратегии тестирования;
- управление временными рамками, ресурсной базой;
- коммуникацию между командами;
- оценку эффективности (имеется в виду мониторинг автоматизированных тестов и их влияния на общее качество продукта) [3, 6].
Перечисленные выше обязанности требуют высокого уровня организационных навыков (в сочетании с пониманием технических сторон).
Успешное внедрение автоматизации начинается с тщательного планирования, которое проектный менеджер разрабатывает в сотрудничестве с командой. Соответствующие этапы представлены на рисунке 2.
Рисунок 2. Выделение этапов планирования внедрения автоматизации в проект (составлено автором на основе [4, 7])
Целесообразно отметить, что автоматизация тестирования не является изолированным процессом. Проектный менеджер должен интегрировать ее с прочими аспектами разработки:
- взаимодействие с командой (в тестах учитываются архитектурные особенности приложения, регулярно обновляются в соответствии с изменениями в коде);
- интеграция с процессами контроля качества (дополнение ручного тестирования, а не замена его; например, сложные сценарии пользовательского поведения уместно протестировать вручную);
- поддержка DevOps-практик (делается акцент на использовании инструментов (в частности, Jenkins, Docker) с целью обеспечения бесперебойной интеграции, а также доставки).
Описанная согласованность повышает эффективность всего проекта, улучшает взаимодействие.
Внедрение автоматизации требует, чтобы члены команды обладали необходимыми знаниями, умениями. В увязке с этим проектный менеджер организует:
- внутренние тренинги (речь идет о проведении обучающих мероприятий для инженеров по тестированию, разработчиков, других специалистов);
- использование внешних ресурсов (подразумевается привлечение кадров из консалтинговых компаний);
- создание базы знаний (в центре внимания — документирование процессов, чтобы упростить обучение новых сотрудников).
Необходимо учитывать, что автоматизация сопряжена с рядом рисков:
- недостаток навыков у команды (проектный менеджер должен предусмотреть план их устранения);
- высокая стоимость интеграции (необходимость в дорогостоящих инструментах, ресурсах требует предварительной оценки экономической эффективности);
- непредсказуемые результаты.
В целях нивелирования или смягчения этих рисков специалист разрабатывает управленческую стратегию, которая представлена регулярным мониторингом, анализом соответствующих факторов, принятием корректирующих действий.
Действенное управление качеством в проектах с автоматизацией тестирования базируется на использовании международных стандартов, проверенных методов:
- ISO 25010 (определяет качества программного обеспечения, включая функциональную пригодность, надежность, производительность, удобство; помогает оценить, насколько автоматизированные тесты содействуют достижению этих характеристик);
- TMMi (Test Maturity Model Integration) — позволяет определить уровень зрелости тестовых процессов в проекте, начиная от базового (отсутствие стандартизации) до оптимизированного (непрерывное улучшение);
- метрики (обращение к количественным показателям — процент покрытия кода, число найденных дефектов, среднее время выполнения тестов и т. п. — что дает возможность проектным менеджерам анализировать эффективность автоматизации [5].
Применение охарактеризованных подходов позволяет не только улучшить качество тестирования, но и обеспечить его объективную оценку.
Одним из ключевых управленческих методов служит интеграция практик Continuous Integration (CI) и Continuous Delivery (CD):
Так, CI помогает регулярно внедрять изменения в коде и автоматически запускать тесты после каждого коммита. Это снижает вероятность появления дефектов, ускоряет обнаружение ошибок. Инструменты — Jenkins, GitLab CI/CD, CircleCI. Основная выгода — поддержание стабильной версии кода.
CD расширяет практику CI, обеспечивая автоматизацию доставки новых функций до среды тестирования или даже до продакшена. Это позволяет сократить время выхода обновлений, существенно повысить частоту релизов. Инструментарий — Docker, Kubernetes, Ansible. В качестве ключевых достоинств выступают ускорение выхода продукта на рынок, повышение гибкости процесса разработки [4].
Проектный менеджер играет определяющую роль в успешной реализации этих практик. Он координирует команды, выбирает инструменты, а также следит за соблюдением принципов CI/CD.
Результаты и обсуждения
Для достижения высокого уровня автоматизации тестирования, повышения качества программного обеспечения необходимо применять системный и стратегический подходы. Авторское видение базируется на интеграции всех соответствующих этапов в общий жизненный цикл проекта (таблица 2).
Таблица 2.
Этапы разработки стратегии внедрения автоматизации тестирования (составлено автором)
Этап |
Содержание |
1. Анализ потребностей, определение целевых ориентиров |
Проводится анализ проекта, определяются тесты, подлежащие автоматизации, устанавливаются четкие цели (например, сокращение времени тестирования, повышение точности либо уменьшение затрат). |
2. Выбор инструментария, технологий |
Используются инструменты, оптимально подходящие для проекта. Например, Selenium для тестирования пользовательских интерфейсов, JUnit для Unit-тестов, Jenkins для интеграции процессов. |
3. Планирование, разработка тестов |
Создание тестовых сценариев, которые соответствуют требованиям проекта, а также настройка среды выполнения. |
4. Проведение пилотного проекта |
Осуществляется тестирование выбранного подхода на небольшой части системы для оценки его эффективности. |
5. Полномасштабное внедрение, мониторинг |
После успешного пилотного проекта стратегия масштабируется, а результаты постоянно отслеживаются. |
Важной составляющей стратегии является активное участие проектного менеджера на каждом этапе. Он выполняет ключевую роль в организации процессов автоматизации через:
- взаимодействие с командой (имеется в виду управление распределением задач, установление приоритетов, контроль выполнения работы). Менеджер поддерживает баланс между задачами по автоматизации и другими проектными потребностями;
- организацию коммуникации (во главу угла ставится построение действенных каналов обмена информацией между командами разработчиков, тестировщиков, прочих участников). Регулярные встречи, использование систем управления проектами, четкое документирование помогают свести к минимуму недопонимания;
- лидерство, мотивацию (специалист участвует в формировании доверительной атмосферы; это особенно важно в периоды изменений, связанных с внедрением новых технологий).
На практике проектные менеджеры активно используют современные инструменты: Selenium — для пользовательских интерфейсов, Jenkins — в целях настройки Continuous Integration, Postman — для автоматизации API-тестирования, SonarQube — при анализе качества кода и т. д. Каждый из них выбирается с учетом особенностей проекта, что позволяет оптимизировать процессы.
Среди основных проблем, с которыми сталкиваются проектные менеджеры, целесообразно выделить:
- сопротивление команды изменениям (в качестве решения выступает организация обучения, проведение воркшопов, демонстрация преимуществ автоматизации);
- высокие затраты времени, ресурсов на начальном этапе (поэтому весьма значимо проведение пилотных проектов для нивелирования рисков, снижения затрат);
- необходимость поддержки существующих тестов (важным шагом служит внедрение подходов Continuous Testing, что позволяет актуализировать их по мере изменений в коде).
В целях управления рисками задействуется комбинация следующих подходов: регулярный аудит процессов, а также результатов автоматизации, применение методологии Agile для гибкой адаптации стратегии, постоянное обучение команды новым инструментам, технологиям.
Эффективность в рассматриваемой области оценивается по ряду показателей: скорость выполнения тестов (речь идет о сокращении времени на регрессионное тестирование), качество продукта (подразумевается уменьшение числа дефектов, выявленных на поздних этапах разработки), рентабельность (снижение расходов в долгосрочной перспективе), Метрики результативности предоставляют возможность как определить успешность ввода в практику автоматизации, так и скорректировать подход при необходимости.
Заключение
В нынешних условиях качество продуктов становится одним из ключевых факторов конкурентоспособности. Автоматизация тестирования, являясь важнейшим инструментом, способствует оптимизации процессов, снижению временных и финансовых затрат, а также уменьшению вероятности появления ошибок на поздних этапах разработки.
Роль проектного менеджера в анализируемой сфере нельзя недооценивать. Он выступает связующим звеном между всеми участниками проекта, организует работу команды, планирует, контролирует внедрение автоматизации, обеспечивает согласование ключевых операций, действий. В дополнение к этому, данный специалист управляет сопутствующими рисками, устраняет возможные проблемы, интегрирует инструментарий, способствующий повышению результативности работы.
Благодаря авторскому подходу, представленному в статье, акцентировано внимание на системности, стратегическом планировании автоматизации. Предложенная стратегия внедрения, основанная на анализе потребностей, выборе инструментов, пилотировании, постоянном мониторинге, поможет эффективно интегрировать исследуемое направление в жизненный цикл проекта.
Обсуждение практических аспектов (Selenium, Jenkins, Postman, а также методы минимизации рисков) подчеркивает значимость применения новейших технологий в управлении проектами. Однако успешность находится в прямой зависимости не только от технических решений, но и от умелого руководства, обеспечения коммуникации внутри команды, а также лидерских качеств проектного менеджера.
Список литературы:
- Бевзенко С.А. Процесс автоматизации нагрузочного тестирования веб-систем: основные аспекты / С.А. Бевзенко // Universum: технические науки. – 2023. – № 8-1 (113). – С. 20-22.
- Васильева Е.А. Применение программного робота на основе RPA для автоматизации организации тестирования / Е.А. Васильева, Л.И. Папировская // Наука и образование транспорту. – 2023. – № 2. – С. 9-11.
- Владимиров А.А. Современный инструментарий проектного менеджера / А.А. Владимиров, Д.А. Спасский, Р.Р. Насыбуллин // Научное образование. – 2020. – № 2 (7). – С. 340-343.
- Громыко А.А. Роль автоматизации в обеспечении качества тестирования: преимущества и недостатки / А.А. Громыко, В.Р. Солтанов // Современные тенденции развития науки и мирового сообщества в эпоху цифровизации. Сборник материалов XXIII Международной научно-практической конференции. – Москва: 2024. – С. 163-165.
- Николаев А.В. Автоматизация тестирования в процессе разработки программного обеспечения / А.В. Николаев // Студенческий вестник. – 2022. – № 21-12 (213). – С. 6-8.
- Очаковская В.А. Компетенции проектного менеджера / В.А. Очаковская // Кадровик. – 2020. – № 10. – С. 86-91.
- Помазан Д.А. Сравнительный анализ фреймворков автоматизации тестирования пользовательского интерфейса PlayWright и Selenium / Д.А. Помазан // Задачи и возможности международного трансфера инновационных технологий. Сборник статей Международной научно-практической конференции. – Уфа: 2024. – С. 67-70.
- Рагозина М.А. Автоматизация тестирования программных систем / М.А. Рагозина, А.В. Мусина, А.А. Рагозин // Естественные и технические науки. – 2023. – № 4 (179). – С. 172-173.
- Тулфоров Д.М. Автоматизация тестирование веб-приложение используя классификатора типов элементов машинного обучение / Д.М. Тулфоров // Внедрение современных конструкций и передовых технологий в путевое хозяйство. – 2020. – Т. 16. – № 16 (16). – С. 122-129.
- Хасанов А.С. Автоматизация интеграционного тестирования программного обеспечения с повышенными требованиями к критичности / А.С. Хасанов, В.В. Шишкин // Вестник Ульяновского государственного технического университета. – 2021. – № 2 (94). – С. 61-67.
- Штатнов И.А. Автоматизация тестирования программного обеспечения: сравнение и анализ различных инструментов / И.А. Штатнов // Татищевские чтения: актуальные проблемы науки и практики. Материалы XX Международной научно-практической конференции. – Тольятти: 2024. – С. 264-269.