Мы используем файлы cookie для вашего удобства пользования сайтом и повышения качества. Нажимая на кнопку «Согласен» вы принимаете пользовательское соглашение.

Сегодня выходной
Summary

Если у вас нет времени читать детально, но нужно понять что же было сделано

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

Число багов на этапе релиза сократилось на 98%, все тесты были автоматизированы, время на покрытие нового функционала автотестами сократилось на 62%.

Понравилось, но хочется больше деталей?

Читайте далее, там больше подробностей
Продолжаем продолжать
О проекте

Клиент — компания по разработке ПО в сфере информационной безопасности

Разрабатываемый продукт— комплексная система для администрирования сетей и сетевого оборудования. Помимо этого, в задачи разрабатываемого ПО входит контроль и распределение трафика, авторизация пользователей, проверки на уязвимости узлов и проверки на несанкционированный доступ к данным.

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

Технологии

Что мы использовали

  • С#

  • Microsoft .NET

  • NUnit

  • Visual Studio

  • Selenium

  • AzureDevOps

  • Git

  • PostgreSQL

  • Swagger

  • Postman

  • Portainer.io

  • Baretail

Предпосылки

Проблематика проекта

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

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

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

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

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

Задачи

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

  • Обеспечить своевременное тестовое покрытие растущего функционала продукта, а также ввести процесс актуализации существующей тестовой базы.
  • Тестировать новый функционал и составлять отчетность о качественном состоянии ПО при каждом итерационном срезе.
  • Разработать фреймворк для автоматизации тестирования, имеющий необходимый функционал проверок, а также инструмент отчетности, способный интегрироваться в комплексную среду управления разработкой, поддерживающий все виды интеракции с частями системы, включая: UI, API всех её отдельных модулей, API внешних интегрируемых систем, БД и системы конфигурации внешних модулей.
  • Произвести автоматизацию имеющейся тестовой базы и внедрить выполнение автотестов в цикл поставки ежедневных версий, а также разработать график их исполнения для специализированных веток.
  • Синхронизировать актуализацию автотестов с доработками тестовой базы продукта.
  • Обеспечить объединение автоматизированного модульного, интеграционного и тестирования UI в один фреймворк и разработать инструмент общей отчетности между ними, чтобы централизованно получать целостную информацию о состоянии разрабатываемой системы.
  • Своевременно доносить информацию о дефектах, возможных уязвимостях, предложениях к доработке до остальных команд разработки проекта.
Наш вклад

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

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

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

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

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

Результат

Были автоматизированы все имеющиеся в тестовой модели кейсы

Вот к каким результатам мы пришли

  • -46%

    Снижение времени на покрытие тестами нового функционала

  • на 78%

    Сократилось среднее время от создания тест кейса до его автоматизации

  • -97%

    Сократилось количество багов на этапе релиза

  • 100%

    Сценариев автотестов было переработано и оптимизировано

Также в результате проведенной работы увеличилась скорость выполнения автотестов на 64%, что позволило существенно сократить время на прогоны и запускать их дважды в день. Это также повлияло на общую скорость проведения тестирования на проекте, а скорость анализа состояния продукта после сборки билда увеличилась на 44%, а среднее время обнаружения бага в ветке разработки уменьшилось на 61%

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

Подписывайтесь на наш канал в Telegram

Канал компании QA Service Lab про жизнь в неидеальном мире, но в стремлении к качественным программным продуктам и сервисам

Подписаться
qr-code
Обратный звонок

    0из 150
    Облако

    Данные отправлены

    Скоро с вами свяжется наш специалист