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

Автор: Центр разработки программного обеспечения Промышленно-коммерческого банка Китая.

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 искренне приглашает технических специалистов внести свой вклад.

boy illustration
Учебное пособие по Jetpack Compose для начинающих, базовые элементы управления и макет
boy illustration
Код js веб-страницы, фон частицы, код спецэффектов
boy illustration
【новый! Суперподробное】Полное руководство по свойствам компонентов Figma.
boy illustration
🎉Обязательно к прочтению новичкам: полное руководство по написанию мини-программ WeChat с использованием программного обеспечения Cursor.
boy illustration
[Забавный проект Docker] VoceChat — еще одно приложение для мгновенного чата (IM)! Может быть встроен в любую веб-страницу!
boy illustration
Как реализовать переход по странице в HTML (html переходит на указанную страницу)
boy illustration
Как решить проблему зависания и низкой скорости при установке зависимостей с помощью npm. Существуют ли доступные источники npm, которые могут решить эту проблему?
boy illustration
Серия From Zero to Fun: Uni-App WeChat Payment Practice WeChat авторизует вход в систему и украшает страницу заказа, создает интерфейс заказа и инициирует запрос заказа
boy illustration
Серия uni-app: uni.navigateЧтобы передать скачок значения
boy illustration
Апплет WeChat настраивает верхнюю панель навигации и адаптируется к различным моделям.
boy illustration
JS-время конвертации
boy illustration
Обеспечьте бесперебойную работу ChromeDriver 125: советы по решению проблемы chromedriver.exe не найдены
boy illustration
Поле комментария, щелчок мышью, специальные эффекты, js-код
boy illustration
Объект массива перемещения объекта JS
boy illustration
Как открыть разрешение на позиционирование апплета WeChat_Как использовать WeChat для определения местонахождения друзей
boy illustration
Я даю вам два набора из 18 простых в использовании фонов холста Power BI, так что вам больше не придется возиться с цветами!
boy illustration
Получить текущее время в js_Как динамически отображать дату и время в js
boy illustration
Вам необходимо изучить сочетания клавиш vsCode для форматирования и организации кода, чтобы вам больше не приходилось настраивать формат вручную.
boy illustration
У ChatGPT большое обновление. Всего за 45 минут пресс-конференция показывает, что OpenAI сделал еще один шаг вперед.
boy illustration
Copilot облачной разработки — упрощение разработки
boy illustration
Микросборка xChatGPT с низким кодом, создание апплета чат-бота с искусственным интеллектом за пять шагов
boy illustration
CUDA Out of Memory: идеальное решение проблемы нехватки памяти CUDA
boy illustration
Анализ кластеризации отдельных ячеек, который должен освоить каждый&MarkerгенетическийВизуализация
boy illustration
vLLM: мощный инструмент для ускорения вывода ИИ
boy illustration
CodeGeeX: мощный инструмент генерации кода искусственного интеллекта, который можно использовать бесплатно в дополнение к второму пилоту.
boy illustration
Машинное обучение Реальный бой LightGBM + настройка параметров случайного поиска: точность 96,67%
boy illustration
Бесшовная интеграция, мгновенный интеллект [1]: платформа больших моделей Dify-LLM, интеграция без кодирования и встраивание в сторонние системы, более 42 тысяч звезд, чтобы стать свидетелями эксклюзивных интеллектуальных решений.
boy illustration
LM Studio для создания локальных больших моделей
boy illustration
Как определить количество слоев и нейронов скрытых слоев нейронной сети?
boy illustration
[Отслеживание целей] Подробное объяснение ByteTrack и детали кода