10.5281/zenodo.8430125
Автор(-ы):
Архипов Иван Сергеевич
16 октября 2022
Секция
Информационные технологии
Ключевые слова
Аннотация статьи
Область разработки программного обеспечения быстро растет и распространяется, сопровождаясь увеличением сложности программных проектов и это отражается в приложениях реального времени. В соответствии с этим эта статья представляет глубокое исследование проблем и решений, связанных с масштабированием автоматизированных тестов в крупных проектах разработки программного обеспечения. Введение подчеркивает неотъемлемую значимость масштабируемости в тестировании автоматизации для повышения эффективности и надежности крупных проектов. Основной целью работы является анализ сложностей, с которыми сталкиваются организации при выполнении автоматизированных тестов в масштабных проектах, и предоставление практических решений для обеспечения эффективности и надежности тестирования. Методология работы включает в себя рассмотрение вызовов, связанных с инфраструктурой и ресурсами, управлением тестами и контролем версий, параллельным выполнением и управлением данными и окружением. Представлены ценные практические советы и лучшие практики, такие как использование сильных фреймворков автоматизации, внедрение непрерывной интеграции и непрерывного тестирования, а также эффективное управление тестовыми данными и использование облачных решений для тестирования. Статья начинается с общего введения, затем исследуется актуальность данного исследования, объясняются основные проблемы и возможные решения. Работа завершается с выводами, подчеркивающими стратегическое значение данного исследования для обеспечения надежности программных систем в масштабных проектах, а также влиянием на профессиональные навыки специалистов и стимулированием дальнейших исследований и инноваций в области разработки программного обеспечения, обеспечивая стабильность и надежность в информационных технологиях.
Текст статьи
Введение
В настоящее время сфера разработки программного обеспечения подвергается быстрому и постоянному развитию, сопровождаемому увеличением сложности программных проектов. В этом контексте автоматизированное тестирование становится неотъемлемой частью процесса разработки, с целью обеспечения надежности и качества программных продуктов. Однако, с ростом масштабов проектов и объемов кода, возникают сложности, связанные с масштабированием автоматизированных тестов. Исследование проблем и поиск соответствующих решений в области масштабирования автоматизированных тестов представляют значимую задачу для профессионалов в области разработки и тестирования программного обеспечения. Эта статья направлена на исследование и анализ основных проблем, с которыми сталкиваются при масштабировании автоматизированных тестов в рамках крупных программных проектов. Кроме того, в статье представлены методы и решения, которые могут быть применены для эффективного управления и решения данных проблем [1, 2].
Цель. Целью данного исследования является анализ основных проблем, связанных с масштабированием автоматизированных тестов в рамках крупных программных проектов, а также предоставление методов и решений, применимых для эффективного управления данными проблемами. Более того, целью данного исследования является обеспечение более глубокого понимания сложностей и путей их преодоления в контексте масштабирования автоматизированных тестов в больших программных проектах.
Актуальность статьи. Актуальность данной темы обосновывается значительными изменениями в сфере программирования и разработки программного обеспечения в последние десятилетия. Развитие технологий и изменение требований рынка приносят новые вызовы и возможности, которые влияют на процессы создания программных продуктов. Ниже приведены несколько ключевых факторов, подчеркивающих актуальность темы масштабирования автоматизированных тестов [3, 4]:
Рис. 1. Архитектура микросервиса с базами данных
Масштабирование автоматизированных тестов имеет непосредственное отношение к успешной разработке и поддержке программного обеспечения в современном мире.
Обзор литературы. В [5], авторы проводят множественное кейс-исследование с участием семи крупных компаний по системной инженерии, рассматривая вызовы, с которыми они сталкиваются в процессе адаптации циклов разработки аппаратных и программных средств в рамках методологии Agile. Исследование представляет результаты 20 качественных интервью, пяти фокус-групп и восьми межкомпанийских сессий, направленных на сбор и верификацию результатов. Всего выделено 24 вызова, объединенных в шесть тематических групп, и далее сопоставленных с потенциальными решениями из фреймворков SAFe® и LeSS, а также практиками, специфичными для компаний. Этот всесторонний обзор вызовов инженерии требований в контексте разработки крупномасштабных Agile-систем не только оценивает степень их решения, но также выявляет научные пробелы, предлагая ценные инсайты для практиков, ответственных за разработку процессов, методов или инструментов для крупномасштабной Agile-разработки, а также для научных исследований в данной области.
В [6], авторы проводят анализ сверхъявленного и эффективного использования методов Agile на уровне команд и рассматривают желание многих организаций в области разработки программного обеспечения повторить успех на уровне организации, внедряя крупномасштабные agile-методологии, такие как SAFe, Scrum-at-Scale и другие. Однако это представляет собой значительную трудность. Анализ существующей литературы показывает разнородный набор исследований по каждому отдельному методу, без межметодового сравнения на основе эмпирических данных. Данное систематическое обзорное исследование сравнивает основные крупномасштабные agile-методологии, а именно SAFe, LeSS, Scrum-at-Scale, DAD и модель Spotify. Это первое исследование, которое анализирует и сравнивает принципы, практики, инструменты и метрики каждого метода в стандартизированной форме. Для каждого метода оно представляет не только оригинальные спецификации метода, но и все расширения и модификации, предложенные в последующих исследованиях. В данное сравнение включены как коммерческие крупномасштабные методологии, так и те, которые были созданы на заказ в организациях, таких как Nokia, Ericsson и другие. На основе результатов, изложенных в данном исследовании, практикующие специалисты могут принимать более обоснованные решения относительно того, какая коммерческая методология или ее компонент, а также созданная на заказ методология наилучшим образом соответствует их потребностям. Исследование выявляет ряд теоретических и практических вопросов в существующей литературе, таких как акцент на практиках коммерческих фреймворков за счет их основных принципов, а также на примере создания собственных методологий.
Проблемы
A. Проблемы с инфраструктурой и ресурсами.
B. Управление тестами и контроль версий. По мере увеличения числа автоматизированных тестов в проекте их эффективное управление становится все более сложной задачей. Задачи по поддержанию тестов, такие как обновление тестовых скриптов для учета изменений в тестируемом приложении или добавление новых тестовых случаев, могут стать трудоемкими и подверженными ошибкам.
Проблемы контроля версий и риск устаревания тестовых скриптов: Эффективный контроль версий играет решающую роль в поддержании целостности автоматизированных тестовых скриптов. Неспособность должным образом управлять версиями может привести к устареванию тестовых скриптов или их несовместимости с текущей системой, что приводит к неточным результатам тестирования и ухудшению способности обеспечить качество программного обеспечения. Решение проблем, связанных с контролем версий, существенно для сохранения актуальности и надежности автоматизированных тестов.
C. Параллельное выполнение и выполнение тестов.
Методы
А. Фреймворки автоматизации тестирования.
B. Непрерывная интеграция и непрерывное тестирование.
1. Обсуждение роли CI/CD-пайплайнов в автоматизации выполнения тестов и развёртывания. Непрерывная интеграция и непрерывное развертывание (CI/CD) предоставляют мощные инструменты для автоматизации процесса выполнения тестов и автоматической поставки.
Рис. 2. CI/CD пайплайн
2. Объяснение, как непрерывное тестирование способствует поддержанию надежности тестирования. Непрерывное тестирование играет важную роль в обеспечении стабильности и достоверности тестирования на всех этапах разработки.
C. Инструменты управления тестовыми данными. Управление тестовыми данными имеет решающее значение для эффективного проведения автоматизированных тестов.
Обсуждение стратегий для поддержания целостности данных. Поддержание целостности тестовых данных при масштабировании является вызовом, который требует специфических стратегий и подходов. Допустим, у нас есть тестовая база данных, которая используется для проведения автоматизированных тестов в большом проекте разработки. Сначала, для обеспечения целостности данных, можно регулярно создавать резервные копии базы данных, сохраняя предыдущие состояния данных. Это позволит нам восстанавливать базу данных в случае необходимости. Далее, при разработке новых функциональных модулей или изменении схемы базы данных, можно разрабатывать сценарии обновления данных и применять их к резервным копиям. Таким образом, проверять, что обновления не нарушают целостность данных.
D. Облачные решения для тестирования. Облачные ресурсы предоставляют гибкую и масштабируемую среду для выполнения тестов в больших проектах.
Рис. 3. Облачные решения для тестирования
Обсуждение того, как облачные решения могут помочь в решении проблемы масштабируемости. Облачные решения могут эффективно решать проблемы масштабируемости в автоматизированном тестировании. Они предоставляют гибкий доступ к вычислительным ресурсам, позволяя создавать и масштабировать тестовые среды по запросу. Это обеспечивает доступность необходимой инфраструктуры и предотвращает возникновение ограничений ресурсов. Кроме того, облачные решения позволяют параллельно выполнять множество тестов на различных виртуальных машинах или контейнерах, что сокращает время выполнения тестов и повышает их эффективность. Распределенное тестирование через облачные среды также улучшает покрытие тестами, особенно в крупных проектах с глобальными командами. Все это делает облачные решения важным инструментом для успешного масштабирования автоматизированных тестов в больших проектах разработки программного обеспечения.
Заключение
В данной статье были рассмотрены ключевые аспекты масштабирования автоматизированных тестов в больших проектах. Обсудили вызовы, с которыми сталкиваются организации, и представили решения, способствующие их преодолению. От фреймворков автоматизации до использования облачных ресурсов, были рассмотрены разнообразные стратегии и инструменты. Согласно цели данной статьи, были проанализированы вызовы и решения в полезном для организаций с крупными проектами способе.
Список литературы
Поделиться
Архипов И. С. Проблемы и решения при масштабировании автоматизированных тестов в больших проектах // Актуальные исследования. 2022. №41 (120). URL: https://apni.ru/article/7168-problemi-i-resheniya-pri-masshtabirovanii-avt