36
揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力! 测试卓越驱动电信领域持续集成 诺基亚西门子自动化测试教练 林曙湧 海量测试用例的持续集成之道

Top100summit 林曙涌-测试卓越驱动电信领域持续集成

Embed Size (px)

Citation preview

Page 1: Top100summit 林曙涌-测试卓越驱动电信领域持续集成

揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!

测试卓越驱动电信领域持续集成

诺基亚西门子自动化测试教练 林曙湧

海量测试用例的持续集成之道

Page 2: Top100summit 林曙涌-测试卓越驱动电信领域持续集成

揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!

• 2001 加入UTStarcom系统测试团队

• 2003-2005 测试团队 leader

• 2005-2008 自动化测试Team Leader

• 2009– Now 加入诺基亚西门子担任自动化测试教练

• Belief: Testing Could be more creative and interesting than current ways of working

Page 3: Top100summit 林曙涌-测试卓越驱动电信领域持续集成

揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!

鲸鱼可以飞起来吗?

Page 4: Top100summit 林曙涌-测试卓越驱动电信领域持续集成

揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!

移动通信核心网软件平台

超过1200万行的代码维护量

将近20年的开发历史

1000多人的开发队伍

研发中心分布在芬兰,中国,印度等地

电信级的软件质量要求,面向全球上百个运营商进行发布

软件的交付延期以及交付后的 的质量问题导致我们失去很多

敏捷转型,持续集成,可以吗?

Page 5: Top100summit 林曙涌-测试卓越驱动电信领域持续集成

揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!

我们做到的

• 2007年全员转型Scrum

• 10000+的自动化用例

• 平均每天执行5000左右

• 每日编包

• 每周向内部客户发布

Page 6: Top100summit 林曙涌-测试卓越驱动电信领域持续集成

揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!

持续集成在测试上的困难

• 测试用例数量超过执行能力

• 测试架构混乱

• 自动化测试投资回报率不高

Page 7: Top100summit 林曙涌-测试卓越驱动电信领域持续集成

揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!

测试用例数量太多

测试用例数量超过执行能力

Page 8: Top100summit 林曙涌-测试卓越驱动电信领域持续集成

揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!

问题调查 • 你的产品线有多少功能自动化测试用例 • >100 • >1000 • >5000 • >8000+ • 10000+

Page 9: Top100summit 林曙涌-测试卓越驱动电信领域持续集成

揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!

测试用例数量太多原因 • 复杂的功能需求

• 产品长时间的历史

• 产品高质量的要求

• 负责任的测试人员

• But…

Page 10: Top100summit 林曙涌-测试卓越驱动电信领域持续集成

揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!

困境 • 测试需要真实设备,数量非常有限

• 测试时间很长

• 被测设备太过昂贵

• 持续集成的时候无法跑所有的测试用例,怎么办?

Page 11: Top100summit 林曙涌-测试卓越驱动电信领域持续集成

揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!

• 在每个小的迭代我们不可能执行

所有的测试用例,那执行一部分可以吗?

• 执行那部分?如何把握这个程度?

Page 12: Top100summit 林曙涌-测试卓越驱动电信领域持续集成

揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!

测试对于风险的控制曲线

测试的边际作用递减

及时的测试的比高覆盖率的测试有更高的ROI

针对核心功能或者高风险功能的测试,极

小的投入就能让我们控制大多数的风险

Page 13: Top100summit 林曙涌-测试卓越驱动电信领域持续集成

揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!

持续集成的核心测试用例

Page 14: Top100summit 林曙涌-测试卓越驱动电信领域持续集成

揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!

经过测试输入的排列组合,核心功能的测试用例还是很多怎么办呢?

Page 15: Top100summit 林曙涌-测试卓越驱动电信领域持续集成

揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!

单板启动领域典型例子介绍

Page 16: Top100summit 林曙涌-测试卓越驱动电信领域持续集成

揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!

Pairwise Testing

Page 17: Top100summit 林曙涌-测试卓越驱动电信领域持续集成

揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!

对于组合型测试 • 12种硬件模块,4种状态,5种启动方式,2种应用平台,3种硬件平台,要多少次测试才能做到所有的两两交互都覆盖?

• 12*4*5*2*3 ==1440 ?- NO

1440 59

Page 18: Top100summit 林曙涌-测试卓越驱动电信领域持续集成

揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!

测试步骤重复太多

测试覆盖率不清晰

测试架构混乱

Page 19: Top100summit 林曙涌-测试卓越驱动电信领域持续集成

揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!

原因分析 • 完成一个功能需要多个模块的参与,需要多个团队的参与

• 不同的团队从功能操作的层面设计了各自的测试用例

• 不同的团队设计的测试有很多重复的步骤 而该步骤的执行速度从外 部无法优化. 考虑进行测试重构?

Page 20: Top100summit 林曙涌-测试卓越驱动电信领域持续集成

揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!

测试重构的困难 • 如何说服老板投入

• 原来的测试用例是多年的积累,不能轻易舍弃

• 里面包含着很多有价值的点

• 重构的测试覆盖率不能低于原有

• 保证我们已经覆盖所有重要的功能

Page 21: Top100summit 林曙涌-测试卓越驱动电信领域持续集成

揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!

用例

数量

用例数量多

低重复度 高重复度

重构

价值

最大

如何使有限的投入产生最大的效益

Page 22: Top100summit 林曙涌-测试卓越驱动电信领域持续集成

揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!

板子重启的1000+ 测试用例

Page 23: Top100summit 林曙涌-测试卓越驱动电信领域持续集成

揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!

测试整体架构图

Page 24: Top100summit 林曙涌-测试卓越驱动电信领域持续集成

揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!

功能的设计

Page 25: Top100summit 林曙涌-测试卓越驱动电信领域持续集成

揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!

测试检查点的设计

Page 26: Top100summit 林曙涌-测试卓越驱动电信领域持续集成

揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!

测试用例的维护工作量很大 自动化测试发现不了问题

自动化测试投资回报率不高

Page 27: Top100summit 林曙涌-测试卓越驱动电信领域持续集成

揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!

• 手工编辑用例容易出错

• 调试用例的工作量太大

• 新的测试想法无法应用在自动化测试中

• 自动化测试的杀虫剂效应

• 解决办法呢?

原因分析

Page 28: Top100summit 林曙涌-测试卓越驱动电信领域持续集成

揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!

为业务领域的测试输入建模

It is all about data!

Behavior is also one kind of

data!

Page 29: Top100summit 林曙涌-测试卓越驱动电信领域持续集成

揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!

业务领域的相关依赖

Page 30: Top100summit 林曙涌-测试卓越驱动电信领域持续集成

揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!

描述测试关键过程

Page 31: Top100summit 林曙涌-测试卓越驱动电信领域持续集成

揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!

• 直接创建可读可执行的自动化用例

• 测试用例的数据和测试环境自适应

• 快速响应测试需求变化

• 每次插入随机因子生成不同的组合

• 实例演示

自动化的生成用例

Page 32: Top100summit 林曙涌-测试卓越驱动电信领域持续集成

揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!

• 不同的风险级别对应不同的测试强度 全组和

随机

全配对

• 每次选择一部分测试用例,依次循环

• 快速响应新的测试想法

如何部署于持续集成环境

Page 33: Top100summit 林曙涌-测试卓越驱动电信领域持续集成

揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!

案例ROI分析

部门中成立了虚拟团队,总计投入1750个小时*人做相关case的重构

总计重构了原来上千个测试用例

都是原来重复度最高,执行时间最长,同时也是最核心的那部分测试用例

达到了测试效率的极大提高,取得了测试反馈周期和测试覆盖率的平衡。 该部分测试用例已经作为部门执行频率最高的case应用在我们的CI系统中

Page 34: Top100summit 林曙涌-测试卓越驱动电信领域持续集成

揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!

• 改进的需求来自于一线

• 适时的测试重构是必须的

• 风险和CI的测试覆盖率

• 基于模型的测试技术

• 更多的测试而不是更多的测试用例

• 探索性的自动化测试

案例启示

Page 35: Top100summit 林曙涌-测试卓越驱动电信领域持续集成

揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!

Page 36: Top100summit 林曙涌-测试卓越驱动电信领域持续集成

揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!

@林曙湧 http://www.cnblogs.com/blue_energy/

[email protected]