Автор: Центр разработки программного обеспечения Промышленно-коммерческого банка Китая.
1. Трудности, с которыми сталкиваются при тестировании
Благодаря быстрому обновлению бизнеса ICBC и постоянному развитию «Проекта трансформации ИТ-архитектуры» финансовые продукты стали сложными и разнообразными, а работа по тестированию сталкивается со многими проблемами с точки зрения эффективности и качества.
Во-первых, это развитие бизнеса. Трансформация моделей НИОКР способствует быстрой реализации и обеспечению более высоких требований к качеству и эффективности.Центр разработки продвигает модель разработки продукта от каскадной модели НИОКР на основе проектов до“маленький, но красивый”Гибкая трансформация модели исследований и разработок для товаров спроса,Сосредоточьтесь на ценности и сократите отходы,Доставляйте ценную продукцию непрерывно, быстро и с высоким качеством.,Это выдвигает более высокие требования к обеспечению качества и эффективности испытаний.,Как выполнить тестовое задание в кратчайшие сроки,Существуют ли количественные показатели для измерения полноты и эффективности теста?
Во-вторых, сложность системы возросла, трансформация Синьчуана ускорила трансформацию архитектуры, и существует проблема неполной оценки масштабов разработки и модификации.С распределенным центром разработки、Распространенные приложения микросервисной архитектуры,Атомарные сервисы разделены сильнее,Это позволяет системе обладать большей гибкостью, масштабируемостью, изоляцией и отказоустойчивостью, возможностью повторного использования и непрерывной доставки.,Зависимости между сервисами становятся более сложными,Это приведет к проблеме неполной оценки объема модификации.
В-третьих, сценарии становятся более сложными и диверсифицированными, цифровая трансформация способствует финансовой сценаризации, а полное регрессионное тестирование неэффективно.После нескольких лет накопления разработок на основе финансовых сценариев и системных услуг центр разработки,Уже существует большое количество вариантов использования трафика и автоматизации, которые можно вернуть для повышения эффективности. Однако,Когда приходится сталкиваться с большим количеством вариантов использования,Как выбирать эффективные варианты использования более научным способом, а не на основе человеческого опыта,Это стало сложной проблемой, которую необходимо решить с помощью автоматизированной регрессии.
2. Исследование и практика точного тестирования в центре разработки.
Чтобы реализовать трансформацию тестирования из опыта в технологию и использовать данные для количественной оценки качества всего процесса тестирования, центр разработки осуществил построение точной системы тестирования, то есть с использованием компьютерной системы анализа с помощью тестирования для контролировать процесс тестирования и анализировать собранные данные мониторинга, получать точные количественные данные, использовать количественные данные для оценки качества и использовать эти аналитические данные для постоянного улучшения процесса тестирования, образуя замкнутый цикл измерений и анализа. В частности, система в основном включает в себя точный анализ тестового покрытия, точный анализ ссылок на вызовы и интеллектуальные рекомендации наборов регрессионных тестовых примеров.
(1) Точный анализ тестового покрытия
Основные функции,Инструмент покрытия собирает информацию о программном покрытии приложений в тестовой среде в режиме реального времени.,объединить git Отправляйте записи для идентификации программ изменения версий, анализируйте охват программ изменения версий, в дальнейшем отображайте программы, не затронутые изменениями версий, и напоминайте тестировщикам о необходимости дополнительного тестирования. Определите проблемные места качества в основных приложениях и измените процедуры. 100% Охват является важным показателем для достижения цели отсутствия упущений в предпусковых испытаниях и достижения хорошо документированного качества продукции системы. Платформа покрытия показана на рисунке 1.
Поддержка языков программирования,Включая JAVA, PLSQL, Mybatis, JSP и т. д.
Принцип реализации,На основе технологии байт-кода,Инструменты покрытия выполняют внедрение байт-кода в тестируемый код приложения.,Закопать «щупы» во всех ветках,Зонд записывает выполнение целевой ветки кода. Инструменты покрытия открывают темы внутри приложения.,Установите сокетное соединение со службой внешней системы покрытия.,«Зонд» можно рассылать регулярно,Таким образом, система покрытия может собирать информацию о покрытии кода целевого приложения. Система покрытия может получать одну и ту же информацию о покрытии от разных филиалов в разное время.,Фон будет использовать соответствующий алгоритм (будет использовано самое позднее время),Охват филиалов для слияния) Обработка данных слиянием.
Рисунок 1 Платформа покрытия
(2) Точный анализ ссылок на вызовы
Основные функции,Система анализирует связи между приложениями и вызовы между приложениями посредством сочетания статического и динамического анализа.,Определить изменения версии на основе программы записей коммитов git,Показывает масштаб влияния изменений модификации программы.,Помощь разработчикам в оценке объема изменений.,Человеческий анализ и объем выполнения теста,Это уменьшает проблемы, вызванные упущениями в анализе или упущениями в исполнении.
Поддержка языков программирования,JAVA-JAVA, включая структуру разделения внешнего и внутреннего интерфейса.,JSP-FLOWC-OPG-Save/JAVA платформы CTP и т. д.
Принцип реализации,для Java Статическая цепочка вызовов программы сканирует и анализирует скомпилированный байт-код проекта, идентифицирует инструкции вызова в байт-коде, получает полную информацию о вызовах приложения, а затем объединяет ее в цепочку вызовов. Динамическая цепочка вызовов использует динамическую инъекцию байт-кода для внедрения кода стека вызовов чтения в начало метода для получения информации о цепочке вызовов в реальном времени. Для цепочки вызовов PLSQL используйте платформу хранимого анализа plsql, чтобы преобразовать сохраненный исходный код в синтаксическое дерево, идентифицировать сохраненные вызовы и завершить объединение ссылок для цепочки вызовов CTP, просканировать файл конфигурации платформы CTP и проанализировать его; теги и атрибуты, устанавливают отношения вызова программы CTP, а затем объединяют в ссылки.
(3) Набор интеллектуальных рекомендаций для регрессионного тестирования.
Основные функции,Когда система выполняет тестовый вариант использования,Идентификация конкретных маркеров, собранных программой, связанной с этим случаем,Получите базу знаний для двустороннего отслеживания вариантов использования и кода.,При этом в сочетании со сменой версии программа рекомендует тестовые варианты использования привязки кодов клавиш и смены кодов. Интеллектуальная фильтрация и рекомендации по регрессии превращают зависимость от опыта в точные рассуждения.,Более надежный и точный,В то же время точная регрессия также помогает обнаружить проблемы раньше.,решать Обнаружение проблем задерживаетсявопрос。
Принцип реализации,В сообщение, инициированное проектом автоматизации, будет добавлен тег, обозначающий вызов автоматизации.,Тестируемое приложение использует технологию байт-кода.,Измените байт-код тестируемого класса.,Привязать тег, полученный из сообщения, к текущему потоку,Затем привяжите скорость покрытия данных текущего потока к тегу,Наконец, данные передаются в систему покрытия через сокетное соединение.,Для достижения точного сбора информации о случаях。Принцип сбора покрытия на уровне варианта использованиянравиться Рисунок 2 показано.
Рис. 2. Принцип сбора данных о покрытии на уровне вариантов использования
3. Резюме и дальнейшие перспективы
В настоящее время в центре разработки проводится точное тестирование более чем 100 приложений с упором на основные приложения, такие как кредит и быстрая оплата, для реализации требования управления о 100% индексе покрытия перед запуском в производство необходимого количества программ; должно быть охвачено в каждой ежемесячной версии, увеличивается по мере увеличения количества вызывающих ссылок. После анализа способность распознавания увеличивается на 20%, достигая цели точного подсказки программы изменений и масштаба ее воздействия, а также всесторонней защиты качества тестирование версий. С момента внедрения общий уровень онлайн-дефектов продолжал снижаться. С точки зрения эффективности регрессии, за счет накопления вариантов использования-интерфейсов-программ для вызова графа знаний, а также выполнения интеллектуальных рекомендаций и автоматического планирования затраты тестировщиков на регрессию снижаются на 20%.
В будущем центр разработки продолжит совершенствовать создание точных систем тестирования и достигать таких целей, как повышение эффективности тестирования, улучшение качества тестирования, а также усиление непрерывной интеграции и непрерывной доставки за счет автоматизации, интеллекта, внедрения производственных данных и сочетания с непрерывная интеграция.
Хорошие последние статьи:
Публичный аккаунт DevOps Era искренне приглашает технических специалистов внести свой вклад.