How Precision Testing Transforms Quality Assurance in Digital Banking
Amid China's push for digital transformation, ICBC's Software Development Center tackles testing inefficiencies by introducing a precision testing framework that leverages coverage analysis, call‑chain tracing, and AI‑driven test‑case recommendation to boost quality, reduce defects, and accelerate delivery.
1. Challenges in Testing Work
With rapid business iteration and ongoing IT architecture transformation, the bank faces several testing difficulties:
Accelerated delivery demands higher quality and efficiency, requiring quantifiable metrics for comprehensive testing.
Increasing system complexity and accelerated “Xinchuang” (innovation) transformation lead to incomplete assessment of modification scopes.
Diverse digital financial scenarios result in low efficiency for full‑regression testing, making scientific test‑case selection essential.
2. Exploration and Practice of Precision Testing
The Development Center shifts testing from experience‑based to technology‑driven by quantifying the entire testing process with data, building a precision testing system that monitors, analyzes, and continuously improves testing quality.
(1) Precise Coverage Analysis
Main Function: The coverage tool collects real‑time program coverage in the test environment, correlates it with Git commits to identify changed code, highlights uncovered sections, and sets 100% coverage for critical applications as a key quality metric.
Supported Languages: Java, PL/SQL, MyBatis, JSP, etc.
Implementation Principle: Bytecode injection inserts probes into all branches; probes record execution, send data via socket to a coverage server, which merges timestamps and branch data to produce accurate coverage reports.
(2) Precise Call‑Chain Analysis
Main Function: Combines static and dynamic analysis to map program and cross‑application call chains, linking them with Git changes to visualize impact scope, aiding developers and testers in assessing modification ranges.
Supported Languages: Java‑Java (frontend‑backend separation), JSP‑FLOWC‑OPG‑StoredProcedure‑Java, etc.
Implementation Principle: Static analysis scans compiled bytecode for invoke instructions; dynamic analysis injects code to capture runtime call stacks. PL/SQL and CTP call chains are parsed via respective frameworks to construct complete linkage.
(3) Intelligent Regression Test‑Case Recommendation
Main Function: During test execution, tags are injected to link test cases with relevant code, building a bidirectional knowledge base; combined with changed code, the system recommends test cases that cover key and modified code, enabling earlier defect detection and reducing reliance on manual experience.
Implementation Principle: Automated test calls embed tags; the application injects bytecode to bind tags with the current thread, sending coverage data via socket to the server, achieving precise case‑level coverage collection.
3. Summary and Outlook
Precision testing has been deployed in over 100 applications, with core systems (e.g., credit, fast payment) required to achieve 100% pre‑production coverage. After integrating call‑chain analysis, detection capability improved by 20%, and overall online defect rates continuously declined. Regression efficiency increased as the knowledge graph of test cases, interfaces, and code enabled a 20% reduction in test‑case execution cost.
Future work will further enhance the precision testing framework through automation, AI, production data integration, and tighter CI/CD coupling to boost testing efficiency, quality, and continuous delivery.
Efficient Ops
This public account is maintained by Xiaotianguo and friends, regularly publishing widely-read original technical articles. We focus on operations transformation and accompany you throughout your operations career, growing together happily.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.