Upload
drewz-lin
View
439
Download
3
Embed Size (px)
Citation preview
揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!
测试卓越驱动电信领域持续集成
诺基亚西门子自动化测试教练 林曙湧
海量测试用例的持续集成之道
揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!
• 2001 加入UTStarcom系统测试团队
• 2003-2005 测试团队 leader
• 2005-2008 自动化测试Team Leader
• 2009– Now 加入诺基亚西门子担任自动化测试教练
• Belief: Testing Could be more creative and interesting than current ways of working
揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!
鲸鱼可以飞起来吗?
揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!
移动通信核心网软件平台
超过1200万行的代码维护量
将近20年的开发历史
1000多人的开发队伍
研发中心分布在芬兰,中国,印度等地
电信级的软件质量要求,面向全球上百个运营商进行发布
软件的交付延期以及交付后的 的质量问题导致我们失去很多
敏捷转型,持续集成,可以吗?
揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!
我们做到的
• 2007年全员转型Scrum
• 10000+的自动化用例
• 平均每天执行5000左右
• 每日编包
• 每周向内部客户发布
揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!
持续集成在测试上的困难
• 测试用例数量超过执行能力
• 测试架构混乱
• 自动化测试投资回报率不高
揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!
测试用例数量太多
测试用例数量超过执行能力
揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!
问题调查 • 你的产品线有多少功能自动化测试用例 • >100 • >1000 • >5000 • >8000+ • 10000+
揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!
测试用例数量太多原因 • 复杂的功能需求
• 产品长时间的历史
• 产品高质量的要求
• 负责任的测试人员
• But…
揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!
困境 • 测试需要真实设备,数量非常有限
• 测试时间很长
• 被测设备太过昂贵
• 持续集成的时候无法跑所有的测试用例,怎么办?
揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!
• 在每个小的迭代我们不可能执行
所有的测试用例,那执行一部分可以吗?
• 执行那部分?如何把握这个程度?
揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!
测试对于风险的控制曲线
测试的边际作用递减
及时的测试的比高覆盖率的测试有更高的ROI
针对核心功能或者高风险功能的测试,极
小的投入就能让我们控制大多数的风险
揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!
持续集成的核心测试用例
揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!
经过测试输入的排列组合,核心功能的测试用例还是很多怎么办呢?
揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!
单板启动领域典型例子介绍
揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!
Pairwise Testing
揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!
对于组合型测试 • 12种硬件模块,4种状态,5种启动方式,2种应用平台,3种硬件平台,要多少次测试才能做到所有的两两交互都覆盖?
• 12*4*5*2*3 ==1440 ?- NO
1440 59
揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!
测试步骤重复太多
测试覆盖率不清晰
测试架构混乱
揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!
原因分析 • 完成一个功能需要多个模块的参与,需要多个团队的参与
• 不同的团队从功能操作的层面设计了各自的测试用例
• 不同的团队设计的测试有很多重复的步骤 而该步骤的执行速度从外 部无法优化. 考虑进行测试重构?
揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!
测试重构的困难 • 如何说服老板投入
• 原来的测试用例是多年的积累,不能轻易舍弃
• 里面包含着很多有价值的点
• 重构的测试覆盖率不能低于原有
• 保证我们已经覆盖所有重要的功能
揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!
用例
数量
少
用例数量多
低重复度 高重复度
重构
价值
最大
如何使有限的投入产生最大的效益
揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!
板子重启的1000+ 测试用例
揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!
测试整体架构图
揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!
功能的设计
揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!
测试检查点的设计
揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!
测试用例的维护工作量很大 自动化测试发现不了问题
自动化测试投资回报率不高
揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!
• 手工编辑用例容易出错
• 调试用例的工作量太大
• 新的测试想法无法应用在自动化测试中
• 自动化测试的杀虫剂效应
• 解决办法呢?
原因分析
揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!
为业务领域的测试输入建模
It is all about data!
Behavior is also one kind of
data!
揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!
业务领域的相关依赖
揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!
描述测试关键过程
揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!
• 直接创建可读可执行的自动化用例
• 测试用例的数据和测试环境自适应
• 快速响应测试需求变化
• 每次插入随机因子生成不同的组合
• 实例演示
自动化的生成用例
揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!
• 不同的风险级别对应不同的测试强度 全组和
随机
全配对
…
• 每次选择一部分测试用例,依次循环
• 快速响应新的测试想法
如何部署于持续集成环境
揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!
案例ROI分析
部门中成立了虚拟团队,总计投入1750个小时*人做相关case的重构
总计重构了原来上千个测试用例
都是原来重复度最高,执行时间最长,同时也是最核心的那部分测试用例
达到了测试效率的极大提高,取得了测试反馈周期和测试覆盖率的平衡。 该部分测试用例已经作为部门执行频率最高的case应用在我们的CI系统中
揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!
• 改进的需求来自于一线
• 适时的测试重构是必须的
• 风险和CI的测试覆盖率
• 基于模型的测试技术
• 更多的测试而不是更多的测试用例
• 探索性的自动化测试
案例启示
揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!
揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!
@林曙湧 http://www.cnblogs.com/blue_energy/