在产品中进行软件测试.pdf

上传人:李主任 文档编号:3332826 上传时间:2019-08-13 格式:PDF 页数:27 大小:2.75MB
返回 下载 相关 举报
在产品中进行软件测试.pdf_第1页
第1页 / 共27页
在产品中进行软件测试.pdf_第2页
第2页 / 共27页
在产品中进行软件测试.pdf_第3页
第3页 / 共27页
在产品中进行软件测试.pdf_第4页
第4页 / 共27页
在产品中进行软件测试.pdf_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《在产品中进行软件测试.pdf》由会员分享,可在线阅读,更多相关《在产品中进行软件测试.pdf(27页珍藏版)》请在三一文库上搜索。

1、先发布,后测试 (TESTING IN PRODUCTION) 欧阳辰 2015.03 目录 质量和测试 什么是在产品中测试 产品中测试的实践 AB测试 灰度发布 主动监测和被动监测 生产环境中的性能测试 代码注入和用户反馈 测试的进化论 一些你也许知道的事情。 Alberto Savoia 2011, GTAC 1) 做正确事情 VS 正确的事情 为什么微博是140个字? 为什么搜索引擎总是返回10个结果? 2)构造原型 (Pretotype V.S Prototype) 尽早失败, 常常失败 95% 移动应用不能盈利! 80% 创业公司失败 “测试已死” 什么是质量? 什么是测试? 质量是

2、用户体验,提供用户价值 质量是经济竞争性 质量 代码覆盖率 用例自动化率 缺陷数量分布 响应时间 软件 ? 服务 测试是为了发现程序中的错误而执行 程序的过程 软件测试的艺术1979 确保软件是保证用户需求的程度 IEEE 质量度量和缺陷预防 最大程度和最快速度满足客户的需求 测试架构集成测试环境 投资回报率(ROI) 规划和管理 更新频率 开发&测试 一些好的实践 集成环境变化记录 大规模数据 一次集中一个环境 开发环 境 单机版 One Box 集成环境1 产品环境镜像 Clone of Production + + 集成效果 维护成本 在产品中测试 基于数据的决策制定 基于数据的测试 有

3、价值的功能 产品中测试 用户 生产系统 什么是产品中测试? 通过使用真实的用户数据,在生产环境中进行的测试活动,从而发现 产品中缺陷,获得用户反馈,改进产品 产品中测试是一套开发技术: 开发理念,降低风险,用户驱动等,设 计结构 它是产品测试的一部分 改进的工程:更好的代码注入,用户反馈,可测试性,灰度发布等 通常用于面向服务的软件测试 质量评判- 质量提升 测试质量评断发布 产品中测试 产品指标分 析 继续产品中 测试 度量的力量 发布 (新功能,修 复缺陷) 监测+指标 如何量化一切 产品中测试的概念 灰度发布 A/B测试 Beta/RC测试 生产环境中性能测试 真实用户数据 大数据分析

4、产品关键指标 灾难演习 产品持续测试、监测 代码注入 用户实验 用户反馈 主动/被动监测 产品中测试的流程 单元测试功能测试 集成测试 性能/扩展性测试监测,指标 探索测试 发布前 发布后 发布? 指标提高 代码注入 开 发 需 求 质量存于大数据中 大数据 数据量:MB? GB? TB?PB? ExaByte 速度:流式数据 多样性:无处不在的计算, 结构化,非结构化等 数据是产品的重要部分 机器学习 数据-信息-知识 -智能 AB测试 随机的流量分配 按照用户分配 按照请求分配 A/B A 控制流量(Control) B 治疗流量 (Treatment) 结果分析 收集所有指标,各种Sli

5、ces 分析 13 Control: 已有系统 Treatment: 系统+新 功能 50% 用户50% 用户 用户交互,代码注入,数据收集,处 理 数据分析,比较,结论 Microsoft Confidential 一些AB TEST 例子 主要指标 点击率 A: B: 14 具体分析包括很多其他指标 停止猜想,让数据说话 AB测试的平台支持 需要平台支持 流量分配 实验管理 代码注入 日志分析和处理 快速发布和回退 例子 1)Google AdSense A/B Testing (Link) 2) Facebook Mobile A/B Testing framework (Link) 3

6、)阿里UX A/B Testing 介绍(Link) 数据挖掘: 拼写检查例子 Some Top Results 16 QueryCorrectionClicks Keep Origin al Make Correctio n yahyahoo99.8% fasfafafsa90.5% utube music youtube music90.4% facebookco m facebook.co m98.4% imbdimdb96.3% evonyebony0.5% century link centrelink2.0% youtyouth3.8% 局部最优 和 全局最优 发布节奏和方法 瀑布

7、模型 一年 迭代式开发, 增量式 几个月 敏捷开发 几个星期 持续集成/开 发 天 分阶段的软件发布模式 服务产品 通常软件产品 1: 产品组内测2: 少量受邀用户 3: 技术预览/发 布候选(RC) 4: 推送部分客户5: 全部客户 1: 在产品中,无 用户 2: 少量受邀用户 使用 (DogFood) 3: 少量真实用户4: 更多真实用户5:全部用户发布 发布测试服务功能测试扩展性测试实时监测产品质量 STAGED DATA ACQUISITION - NETFLIX 1B API requests per day Canary Deployment FACEBOOK: STAGED DA

8、TA ACQUISITION Dogfood In prod, no users (except internal ones) Some servers in Production World-wide deployment Feature flags 主动监测和被动监测 交互 系统 监测 用户 被动监测: -监测系统状态:健康,发现有问题 -日志监测,统计和分析 -实时分析 主动监测 -在产品中运行测试用例 -系统KPIs的监测 -模拟用户的场景测试 主动监测 (ACTIVE MONITORING) 例子 Microsoft Exchange 通过在产品中运行千百个测试用例 是否满足性能和可

9、用性目标 (99.999%?) 性能是否比上次发布降低? 22 Deschamps, Johnston, Jan 2012 在产品中做负载测试(LOAD TESTING IN PRODUCTION) 性能测试的复杂度:真实环境和数据 在正常用户流量下增加测试流量 积极监测产品健康指标,如果任何异常,停止测试,排查问 题 可以在用户流量低谷进行,例如夜间 灾难性测试 2013 7月 微信 :北京、广东等等地区在内的微信用户称无法发布消息 2013 8月 Amazon AWS EC2/RDS 故障 2013 12月 Yahoo! Mail 故障 (几天) 面对故障,不断改进 容错设计 ,快速恢复,

10、消除系统瓶颈 灾难测试(灾难演习) 数据中心相互切换,互为备份 预备方案的开始时间 业务持续计划(BCP) 2路BCP 3路BCP DC1 DC2DC3 三个数据中心,互为备份 测试和适应变化 动物学家达尔文说过 ”世界上进化下来的动物,并不是那些最强大的动物,也不是那些最聪明 的动物,而是那些最能够适应变化(Responsive to change)的动物”,例如说老鼠,人,蚂蚁等 等。软件系统也一样,能够传承发扬的软件,能够快速适应变化化。 什么样的软件测试方法能够存活下来? UI Automation 软件成熟度模型 敏捷测试 Agile Testing Testing In Production Unit Testing 探索性测试 详细测试需求说明书 持续集成 谢谢! 联系方式: 邮件 微博: 欧阳辰_北京

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/环境 > 装饰装潢


经营许可证编号:宁ICP备18001539号-1