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