Реферат по теме выпускной квалификационной работы

Выпускная квалификационная работа посвящена системному анализу методов автоматизации тестирования программного обеспечения и разработке инструментария, поддерживающего обоснованный выбор средств автоматизации тестирования при реализации малых и средних проектов с учётом экономической эффективности и требований к качеству программных систем [1–4].

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

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

Введение

Развитие программной инженерии сопровождается ростом сложности создаваемых программных систем, ужесточением требований к качеству и сокращением сроков вывода продукта на рынок. В этих условиях тестирование играет ключевую роль в обеспечении надёжности и сопровождаемости программного обеспечения, что подчёркивается в классических работах по тестированию и программной инженерии [1–4, 13].

Автоматизация тестирования позволяет повысить воспроизводимость проверок, ускорить регрессионный контроль и улучшить качество продукта. Для малых и средних проектов, работающих в Agile-подходах и практиках DevOps, важно не просто применять инструменты автоматизации, а выбирать их осознанно с учётом ограничений по ресурсам и необходимости интеграции в конвейеры CI/CD .

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

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

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

1. Актуальность и постановка проблемы

На рынке представлено большое количество инструментов автоматизации тестирования: фреймворки модульного тестирования, средства тестирования пользовательского интерфейса, инструменты для тестирования API, нагрузочного и регрессионного тестирования. Каждый инструмент ориентирован на определённый уровень тестирования, технологический стек и модель процесса разработки, что подтверждается многочисленными обзорами и практическими руководствами .

В малых и средних проектах команды обычно невелики, совмещают роли разработчиков и тестировщиков и работают в условиях жёстких ограничений по времени и бюджету. В таких условиях выбор решений по автоматизации тестирования часто осуществляется интуитивно, без формализованного анализа альтернатив и оценки совокупной стоимости владения [1, 2, 5].

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

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

Дополнительную сложность создаёт высокая динамика технологического ландшафта: регулярно появляются новые фреймворки и сервисы, ориентированные на автоматизацию отдельных аспектов тестирования (UI, API, нагрузка, безопасность). Без наличия формальных критериев и процедуры переоценки используемых средств команда рискует либо «застыть» на устаревшем стеке, либо, наоборот, слишком часто менять инструменты, теряя накопленные артефакты и повышая стоимость владения.

Актуальность исследования усиливается и тем, что многие организации переходят на модель разработки, предполагающую частые релизы и непрерывную поставку ценности. В таких условиях ошибки в выборе средств автоматизации проявляются очень быстро: удлиняются конвейеры CI/CD, снижается доверие к результатам автотестов, растёт число «горячих» исправлений. Системно выстроенный подход к подбору инструментов позволяет заранее избежать подобных сценариев.

2. Цель, задачи и объект исследования

Цель работы заключается в разработке методического и программного инструментария для системного анализа методов автоматизации тестирования и обоснованного выбора средств автоматизации с учётом экономической эффективности и требований к качеству, задаваемых современными стандартами [5–7].

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

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

Объект исследования — процессы автоматизированного тестирования программного обеспечения в малых и средних проектах, реализуемых в условиях ограниченных ресурсов и высокой динамики требований [13].

Предмет исследования — методы, критерии и программные средства, обеспечивающие выбор и комбинирование инструментов автоматизации тестирования таким образом, чтобы достигать заданного качества программного продукта при ограниченных ресурсах [5–7, 17].

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

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

3. Анализ методов и средств автоматизации тестирования

В процессе исследования выполнен обзор основных типов тестирования и соответствующих им методов автоматизации. Для систематизации результатов была сформирована таблица соответствия между уровнями тестирования, типичными целями и примерами инструментов, опирающаяся на классификации, представленные в литературе и материалах ISTQB [3, 10, 18].

Таблица 1 — Связь уровней тестирования и средств автоматизации
Уровень тестирования Основная цель Типичные средства автоматизации
Модульное Проверка отдельных функций и классов pytest, JUnit, NUnit, xUnit-фреймворки
Интеграционное Проверка взаимодействия между компонентами JUnit + Testcontainers, Postman/Newman, собственные фреймворки
Тестирование API Проверка корректности и устойчивости интерфейсов Postman, Newman, RestAssured, SoapUI
UI-тестирование Проверка пользовательских сценариев Selenium, Playwright, Cypress
Нагрузочное Оценка производительности и устойчивости JMeter, Gatling, k6
Регрессионное Контроль неизменности критичного функционала Наборы автоматизированных тестов на основе вышеперечисленных средств

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

Дополнительно для каждого инструмента оценивались параметры лицензирования, наличие бесплатных редакций, сложность обучения и сопровождения. Эти данные используются на следующем этапе для формирования критериев выбора и оценки совокупной стоимости владения средствами автоматизации [4, 13, 17].

Особое внимание уделено сопоставлению «записывающих» средств автоматизации (record-and-playback) и фреймворков, ориентированных на кодоцентричный подход к написанию тестов. Первые позволяют быстро получить начальный набор сценариев, но часто страдают хрупкостью и высокой стоимостью сопровождения. Вторые требуют более высокой квалификации команды, зато обеспечивают лучшую масштабируемость и интеграцию в процессы разработки. Понимание этих компромиссов важно при формировании рекомендаций для проектов с разным уровнем зрелости.

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

4. Модель выбора инструментов и разработка инструментария

На основании проведённого анализа предложена модель выбора средств автоматизации тестирования, основанная на многокритериальном подходе. Для каждого проекта задаётся набор характеристик: технологический стек, тип разрабатываемой системы, размер команды, предполагаемый срок жизни продукта, бюджет на внедрение и сопровождение. Модель опирается на принципы управления качеством программных систем и процессов тестирования [20].

Критерии оценки инструментов сгруппированы в три категории: технические, организационные и экономические. Для каждого критерия задаётся вес, отражающий его важность для конкретного проекта. В качестве основы используются структуры процессов тестирования и документации, определённые в международных стандартах [12].

Таблица 2 — Пример системы критериев выбора
Критерий Группа Описание Типовая значимость для малого проекта
Поддержка используемого языка/стека Техническая Наличие нативной поддержки основных технологий проекта Высокая
Простота интеграции в CI/CD Техническая Наличие плагинов и готовых решений для Jenkins, GitLab CI, GitHub Actions и др. Высокая
Кривая обучения Организационная Сложность освоения инструментов командой Высокая
Наличие документации и сообщества Организационная Качество документации, активность сообществ и форумов Средняя
Стоимость лицензий Экономическая Разовые и периодические платежи за использование инструмента Высокая
Затраты на внедрение Экономическая Время и ресурсы, необходимые для начальной настройки и интеграции Высокая
Затраты на сопровождение Экономическая Поддержка тестов в актуальном состоянии, обновление инфраструктуры Средняя

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

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

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

5. Экономическое обоснование внедрения автоматизации

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

В работе используется модель совокупной стоимости владения (TCO) инструментами автоматизации, включающая прямые затраты на лицензии и инфраструктуру, затраты на внедрение и сопровождение, а также экономию за счёт сокращения ручного тестирования и уменьшения количества дефектов в эксплуатации [13, 17, 20].

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

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

6. Практическая апробация и результаты

Практическая апробация разработанного подхода проводилась на ряде типичных сценариев малых и средних проектов: веб-приложения с трёхзвенной архитектурой, REST-сервисы и внутренние корпоративные системы. Для каждого сценария были заданы исходные условия: размер команды, длительность итераций, выбранный технологический стек и требования к уровню автоматизации регрессионного тестирования [14–17, 21–23]..

На первом этапе фиксировалось «базовое» состояние процесса тестирования: доля ручных проверок, наличие автотестов, используемые инструменты, фактическое время выполнения регрессионного набора и количество дефектов, обнаруженных на стадиях приёмочного тестирования и эксплуатационного использования. Затем выполнялся выбор инструментов с помощью разработанного прототипа, формировался целевой профиль автоматизации и план перехода, учитывающий организационные и технические ограничения .

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

Таблица 3 — Сводные результаты апробации подхода
Показатель До внедрения После внедрения
Доля автотестов в регрессионном наборе 10–20 % 45–60 %
Время выполнения регрессионных тестов перед релизом 1–2 рабочих дня 2–4 часа при ночном прогоне в CI/CD
Трудозатраты на подготовку к релизу 100 % (базовый уровень) ≈70–80 % от базового уровня
Критичные дефекты, выявленные после релиза 3–5 на релиз 1–2 на релиз
Оценочная окупаемость затрат на автоматизацию — 6–9 месяцев при регулярных релизах

Анализ показал, что использование предложенной модели выбора инструментов позволяет избежать типичных ошибок, связанных с неправильно выбранным уровнем автоматизации и несоответствующими инструментами. В ряде пилотных проектов удалось заменить тяжёлые коммерческие решения сочетанием более лёгких и доступных инструментов, лучше соответствующих масштабу проекта и компетенциям команды [14–17, 21–24].

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

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

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

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

Заключение

В ходе выполнения выпускной квалификационной работы решена задача разработки методического и программного инструментария для системного анализа методов автоматизации тестирования и обоснованного выбора средств автоматизации при реализации малых и средних проектов [13].

На основе анализа литературных источников и практического опыта были выявлены особенности малых и средних проектов, влияющие на организацию процесса тестирования: ограниченные ресурсы, совмещение ролей в команде, высокая динамика требований и необходимость быстрого вывода продукта на рынок. Показано, что в таких условиях особенно важны осознанный выбор инструментов автоматизации и корректное сочетание уровней тестирования, соответствующих моделям качества программных систем [3, 5–7].

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

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

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

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

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

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

Список использованных источников

  1. Канер С., Фолк Дж., Нгуен Х. Тестирование программного обеспечения. Фундаментальные концепции качества программных систем. — СПб.: Питер, 2017. — 640 с.
  2. Майерс Г. Дж., Баджетт Т., Сандлер К. Искусство тестирования программ. — 3-е изд. — М.; СПб.: Диалектика, 2020. — 272 с.
  3. Савин Р. А. Профессиональное тестирование программного обеспечения. Базовый курс. — М.: Питер, 2019. — 416 с.
  4. Климов А. Н. Автоматизация тестирования программного обеспечения: учеб. пособие. — М.: БХВ-Петербург, 2020. — 352 с.
  5. Кулиш В. Ю. Управление качеством программного обеспечения. — М.: ИНФРА-М, 2018. — 320 с.
  6. ГОСТ Р ИСО/МЭК 25010–2015. Системы и программная инженерия. Модели качества систем и программного обеспечения. — М.: Стандартинформ, 2016. — 34 с.
  7. ГОСТ Р ИСО/МЭК 29119-1–2019. Тестирование программного обеспечения. Часть 1. Общие положения. — М.: Стандартинформ, 2020. — 28 с.
  8. ГОСТ Р ИСО/МЭК 9126-93. Информационная технология. Оценка программной продукции. Характеристики качества и руководства по их применению. — М.: Изд-во стандартов, 1994. — 36 с.
  9. ISTQB. Certified Tester Foundation Level Syllabus. — Version 2018. — ISTQB, 2018. — 92 p.
  10. ISTQB. Certified Tester Advanced Level – Test Automation Engineer Syllabus. — Version 2.0. — ISTQB, 2024. — 80 p.
  11. IEEE Std 829-2008. IEEE Standard for Software and System Test Documentation. — IEEE, 2008. — 94 p.
  12. ISO/IEC/IEEE 29119-2:2021. Software and Systems Engineering — Software Testing — Part 2: Test Processes. — Geneva: ISO, 2021. — 84 p.
  13. Pressman R. S., Maxim B. R. Software Engineering: A Practitioner’s Approach. — 8th ed. — New York: McGraw-Hill, 2019. — 944 p.
  14. Акимов В. В. Методы и средства автоматизированного тестирования веб-приложений // Безопасные информационные технологии. — 2019. — № 1. — С. 267–274.
  15. Ткачёв А. В. Методика автоматического тестирования развивающегося веб-приложения // Автоматизация и информационные технологии. — 2019. — № 2. — С. 45–52. [Электронный ресурс]. — Режим доступа: https://cyberleninka.ru/article/n/metodika-avtomaticheskogo-testirovaniya-razvivayuschegosya-veb-prilozheniya (дата обращения: 05.12.2025).
  16. Климов Н. Д. Методологии автоматизированного тестирования в Agile-разработке // Актуальные проблемы науки и образования. — 2024. — № 3. — С. 56–63.
  17. Климов Н. Д. Применение автоматизации в регрессионном тестировании программного обеспечения // Современные информационные технологии. — 2024. — № 2. — С. 112–119.
  18. Кулаков К. А. Основы тестирования программного обеспечения: учеб. пособие. — Петрозаводск: ПетрГУ, 2018. — 180 с.
  19. Макконнелл С. Совершенный код. Мастер-класс. — М.: Русская редакция; СПб.: Питер, 2005. — 896 с.
  20. Дмитрюк Т. Г. Математическая модель планирования производственной программы предприятия // Проблемы искусственного интеллекта. — 2020. — № 2 (17). — С. 32–48.
  21. Jenkins Project. Pipeline: Getting Started [Электронный ресурс]. — Режим доступа: https://www.jenkins.io/doc/book/pipeline/ (дата обращения: 05.12.2025).
  22. Jenkins Project. Creating your first Pipeline [Электронный ресурс]. — Режим доступа: https://www.jenkins.io/doc/pipeline/tour/hello-world/ (дата обращения: 05.12.2025).
  23. SeleniumHQ. The Selenium Browser Automation Project [Электронный ресурс]. — Режим доступа: https://www.selenium.dev/ (дата обращения: 05.12.2025).
  24. SeleniumHQ. WebDriver. Official Documentation [Электронный ресурс]. — Режим доступа: https://www.selenium.dev/documentation/webdriver/ (дата обращения: 05.12.2025).
  25. Fowler M. Continuous Integration [Электронный ресурс]. — 2006. — Режим доступа: https://martinfowler.com/articles/continuousIntegration.html (дата обращения: 05.12.2025).