DevOps全程质量保障体系
如果无法正常显示,请先停止浏览器的去广告插件。
1. DevOps全程质量保障体系
中国工商银行软件开发中心 杨卓俊
2. 讲师简介
请插入
您的照片
中国工商银行软件开发中心技术测试专家,近
10年测试开发经验,负责性能、安全、稳定性
及可靠性等非功能性测试领域的测试技术研究
及效能工具研发工作,拥有丰富的开发、测试、
杨卓俊
中国工商银行软件开发中心
技术测试专家
ee.msup.com.cn
运维及技术管理经验。
3. 目录
ee.msup.com.cn
1 背景介绍
2 质量保障体系建设
3 展望与思考
4. 01
背景介绍
研发转型
面临挑战
质量保障体系
ee.msup.com.cn
5. 研发转型
DevOps快
速研发及交
付体系建立
企业级架构
分层解耦
新技术驱动
研发变革
ee.msup.com.cn
6. 成功要点
质量守护
ee.msup.com.cn
质量保障
体系
效能提升
7. 质量保障体系
ee.msup.com.cn
8. 02
ee.msup.com.cn
质量保障体系建设
测试左移 测试过程管控
测试右移 全流程工具链支撑
9. 测试左移-探索验收测试驱动开发(ATDD)
敏捷研发模式下需求频繁且要求快速响应,研发阶段重当面沟通轻文档,会出现需求
理解不到位导致的需求与实现偏差造成返工带来的资源浪费,因此,需要通过加强需求阶
段投入、明确验收标准等措施,从源头把控需求质量,同步指导开发、测试设计工作。
ee.msup.com.cn
10. 测试左移-自动化先行支撑测试前移
基于NIT自动化测试平台开展测试前移
通过研发NIT自动化测试平台,提供低成本、高效能的测试自动化编写及执行能力,
在设计阶段即介入到研发过程当中,通过基于文档的自动化脚本编写能力,摆脱对开发程
序的依赖,实现测试开发同步,提升测试效能。
基于设计文档依托NIT自动化平台开展自动化先行
ee.msup.com.cn
11. 测试左移-UTDD助力单元测试
UTDD的价值与意义
程序BUG越早修复,所花费的成本越低。通过UTDD实现最优程序设计,将质量控制
前移到软件内部,提升代码的有效性和可测试性,推动代码和设计的重构,提升软件的内
建质量。
ee.msup.com.cn
12. 测试左移-UTDD助力单元测试
如何保证单元测试脚本质量
开发
ee.msup.com.cn
测试
13. 测试左移-UTDD助力单元测试
夯实UTDD有效性
基于业界开源的PITEST研发变异测试工具“特洛伊(Troy)”,通过对被测程序注入
变异,反向验证单元测试案例是否有效。
提升测试赋能效能:问题检出个数从每版本30个(测试人员UTDD REVIEW)提升至每
版本436个(变异测试工具)。
夯实UTDD质量:变异测试扫描平均每程序问题数较扫描初期减少81%。
变异测试情况
80
78
1.20
60
40
20
29
17
0.23
0.34
0
4月
5月
推广应用数
ee.msup.com.cn
6月
平均每程序问题数
1.40
1.20
1.00
0.80
0.60
0.40
0.20
0.00
14. 测试左移-UTDD助力单元测试
UTDD评价体系
评价类型
业务意义
评价指标
变更程序覆盖率(JAVA、SQL、HQL)
变更程序分支覆盖率(SQL)
程序变更分支覆盖率(JAVA)
守护产品代码质量
程序变更行覆盖率(JAVA、HQL)
核心程序变更行覆盖率(JAVA)
单元测试自动化案例执行成功率(JAVA、HQL)
产品代码质量评价
增量高风险问题(JAVA)
冗余度
提升优雅设计能力
冗余程序占比
平均圈复杂度
复杂程序占比
sonar扫描问题数(恒等断言、UTDD案例设计)
UTDD脚本质量评价
夯实UTDD有效性
变异测试问题数(有返回值方法的无断言)
UTDD REVIEW问题数(案例、断言完备性等)
UTDD落地效果评价
ee.msup.com.cn
提升UTDD实施成效
研发质量提升比例
15. 测试过程管控-精细化过程管理
夯实测试质量管理
与DevOps流水线相结合,对测试周期中的关键节点进行“门禁”控制及精细化过程管理,
提高程序交付质量、监控测试进度、揭示项目潜在风险,保障出口质量。
ee.msup.com.cn
16. 测试过程管控-功能测试
用案例管理系统完成业务场景案例设计,分层实现核心自动化覆盖,加入技术场景分析的整
体测试体系。
案例管理,基于分层测试,从接口到页面到流程,完成案例设计。
自动化,在传统分层自动化框架的基础上,开展端到端的流程自动化建设,保证全链路
账务等正确。
覆盖率,在基于需求功能和业务价值的业务场景分析上,加入基于代码覆盖率和调用关
系的技术场景分析方法,以确保测试的完备性。
人工智能测试起步
建设内容
分层测试体系下的自动化测试
案例管理体系下的功能测试
自动化:接口自动化案例占比20%,UI自动化案例占比10%
覆盖率:事前的精准测试体系,事后的代码级覆盖率染色
第一阶段
“手工测试”阶段
ee.msup.com.cn
第二阶段
“自动化测试”阶段
第三阶段
“人工智能测试”阶段
17. 测试过程管控-程序覆盖率工具&精准测试
在业务场景分析测试范围的基础上,对标业界,加入技术场景分析方法,确保测试范围分
析的完备性。
【事前】构建精准测试体系
调用关系分析
测试覆盖链路分析
用例智能推荐
【事后】代码级覆盖率染色
提供更准确到行级的测试
覆盖情况
代码级的可视化直观展示
ee.msup.com.cn
18. 测试过程管控-自动化测试
自动化建设
从2012年开展功能自动化以来,共累计建设13万余个自动化脚本,在中心架构转型背
景下,为保证全链路端到端及账务正确性,开展穿透至主机的端到端自动化,并进一步丰富
断言,提升执行效率,实现自动化由“量”到”质“的提升。
01
全面守护范围
涉账等核心案例自动化治理
开展自动化端到端建设
覆盖
范围
自动化
质量
断言
质量
03
执行
效率
高质量的断言
核心涉帐类场景断言完备性治理:
通过研发标准化断言工具实现断言
一键生成,极大提升了断言规范性
和断言效率。
02
自服务的能力
提升系统并行处理能力
支持流水线串接灵活配置,提升调度
灵活性
18
ee.msup.com.cn
19. 测试过程管控-MOCK中心
MOCK工具
通过无感部署模式降低接入成本,页面化配置mock数据规则降低工具使用门槛,提供
程序挡板能力和异常模拟能力,实现横向切入的测试。
MOCK接口类型
ee.msup.com.cn
服务化接口
HTTP接口
DSR网关
TCPIP网关
20. 测试过程管控-非功能性测试
结合业界理念,从方法、工具、度量等方面推动非功能性测试体系建设。
加强非功能性测试设计,从技术角度切入对应用系统架构开展深入分析,提取非功能性
验证要点;从业务角度出发对业务行为开展专项研究,落地非功能性测试场景。
工具体系建设,结合应用架构转型,构建支持传统架构和分布式架构的自动化工具体
系。
度量评价,建立非功能性测试评价体系,对测试质量进行管控。
ee.msup.com.cn
21. 测试过程管控-流量工厂
测试行为标准化
针对性能测试成本较高,覆盖面有限的痛点,引入业界先进的字节码技术开展流量工
厂建设,通过无感采集测试环境流量,沉淀标准化测试行为资产积累;为端到端自动化、
性能膨胀回放、安全自动化攻击提供支撑。
ee.msup.com.cn
22. 测试过程管控-安全诊断中心
安全测试降本提效
针对安全测试门槛高,依赖手工测试的痛点,对标业界,通过集成技术安全自动化及
业务安全风险建模,对接DevOps流水线实现安全活动纳入研发流程,实现全流程安全保
障能力。
应
用
层
安全诊断报告
应用配置报告
技术
安全 安全
诊断 诊断
中心
词法分析 语法分析
语义分析 规则扫描
页面爬取
存
储
层
数
据
层
ee.msup.com.cn
DAST动态安全检测
OWASP漏洞
F-ATP流量
前台页面爬虫数据
流量采集 任务调度
自动登陆 会话管理
注入攻击 测试断言
IAST交互式安全检测
CVE库
F-CBST流量
月度版本报告
识别风险
开源jar包扫描
SAST静态安全检测
威
胁
库
注入攻击
获取响应
中间代码生成
漏洞分析报告
业务漏洞
F-ATP流量
F-BASE流量
WAS服务器
F-OMCP流量
PAAS宿主机/容器
流量工厂
业务
安全
诊断
业务风险建模
23. 测试过程管控-混沌工程
高可用能力提升
通过标准化的可靠性测试执行,实现对基础资源、应用、容器等标准化的故障注入、
故障判断、故障撤销,通过可靠性测试验证提升应用系统高可用能力,并持续提升混沌自
动化水平。
上层
业务
平台
模块
混
沌
工
程
体
系
问题复现
权限管理 用户管理 介质管理 环境管理
流程编排 演练监控 高可用专家库 CI/CD集成
问题管理 案例管理 评测管理 演练推荐
任务
调度 任务调度框架
底层
能力 故障注入介质(ChaosBlade/自研能力)
基础
设施
ee.msup.com.cn
应用评级
日常演练
物理机 虚机
非常规服务器 容器
24. 测试过程管控-生产日志回放
日志回放的标准流程
获取生产数据和日志
引导式回放步骤
ee.msup.com.cn
准备回放环境
准备回放数据
回放与结果分析
研发/配置日
志变形工具 搭建回放环境 清洗回放数据 日志回放
编写日志变形
手册 导入回放数据 选择回放范围 回放结果分析
测试环境验证
日志变形流程 拼装生产日志 配置外围模拟
器 导出/取回生
产日志、数据 生产数据验证
1
2
3
4
5
6
25. 测试右移
测试团队以确保产品上线后的正常运行为核心,从系统可用性、性能、业务运行情况对
生产质量进行监控,持续跟踪生产运行情况,让软件缺陷尽可能早于用户被发现并及时得
到处理,降低线上问题的影响程度。
ee.msup.com.cn
26. 全流程工具链支撑
以DevOps为基础建设了质量保证工具体系,覆盖软件产品的全生命周期和应用系统的各个
层面。各工具实现了对测试价值中各项活动的全方位支撑,提升了整体的质量保证工作效能。
ee.msup.com.cn
27. 03
展望与思考
质量保障数字化转型
解决的问题及价值
ee.msup.com.cn
28. 质量保障数字化转型
ee.msup.com.cn
管理数字化提升 测试智能化转型
“人找问题找数据”的专家诊断模式向
“数据找问题找人”的系统诊断模式的
转变 对图像智能识别、案例智能推
荐、单测脚本智能识别等方案研
究,进一步推进智能化测试的转
型,人员负责决策、机器负责执
行的模式。
29. 解决的问题及价值
管理数字化提升
将生产事件发生后的事后分析改进模式向
研发测试过程中的问题主动发现并分析解
决的事中模式进行转变,进一步推进事前
的预防,降低质量管控的成本,控制风
险。
ee.msup.com.cn
测试智能化转型
业界针对标准化的测试行为分析,尝试通
过随机算法、搜索算法及聚类算法等人工
智能算法的使用,实现测试过程自动化执
行、测试结果智能化验证的效果,降低成
本,提升效能。
30. 关注msup公众号
获取更多工程效能实践案例