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

Выпускная квалификационная работа посвящена системному анализу методов автоматизации тестирования программного обеспечения и разработке инструментария, поддерживающего обоснованный выбор средств автоматизации тестирования при реализации малых и средних проектов с учётом экономической эффективности и требований к качеству программных систем [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).