我们的自动化测试之路


自动化测试 我们的自动化测试之路 ThoughtWorks 移动平台兴趣组 刘龙军 ljliu@thoughtworks.com Friday, July 29, 2011 应用简介 Friday, July 29, 2011 应用简介 • 本地应用程序,非手机浏览器访问的 Web应用 • 类似手机的航班查询软件,通过 Http发送查询请求给远 程 API服务器,处理返回结果并展现 Friday, July 29, 2011 APP应用 http通信 API服务器 Friday, July 29, 2011 我们的自动化测试之路 Friday, July 29, 2011 我们的自动化测试之路 Friday, July 29, 2011 我们的自动化测试之路 单元测试 Friday, July 29, 2011 我们的自动化测试之路 单元测试 自动化功能 测试 Friday, July 29, 2011 我们的自动化测试之路 单元测试 自动化功能 测试 改进功能测试 框架 Friday, July 29, 2011 我们的自动化测试之路 单元测试 自动化功能 测试 改进功能测试 框架 引进 BDD 测试框架 Friday, July 29, 2011 WHY ? Friday, July 29, 2011 Friday, July 29, 2011 痛苦 停滞不前 Friday, July 29, 2011 小步前进 一 .单元测试 Friday, July 29, 2011 Friday, July 29, 2011 单元测试 Friday, July 29, 2011 Friday, July 29, 2011 封装请求 数据 Friday, July 29, 2011 封装请求 数据 解析 API 返回数据 Friday, July 29, 2011 封装请求 数据 解析 API 返回数据 自定义 工具类 Friday, July 29, 2011 封装请求 数据 解析 API 返回数据 自定义 工具类 本地数据 运算逻辑 Friday, July 29, 2011 封装请求 数据 解析 API 返回数据 自定义 工具类 本地数据 运算逻辑 ...... Friday, July 29, 2011 封装请求 数据 解析 API 返回数据 自定义 工具类 本地数据 运算逻辑 ...... Friday, July 29, 2011 让代码具有可测试性 ----重构代码 Friday, July 29, 2011 让代码具有可测试性 ----重构代码 • 整理和 UI无关的逻辑代码 • 添加单独的 JUnit测试工程 • 添加单元测试覆盖每块逻辑代码 • 在团队中逐步实施 TDD Friday, July 29, 2011 和 UI相关的逻辑代码怎么办? Friday, July 29, 2011 Friday, July 29, 2011 事件 响应 Friday, July 29, 2011 数据 展现事件 响应 Friday, July 29, 2011 后台 线程 数据 展现事件 响应 Friday, July 29, 2011 后台 线程 数据 展现 控件 交互 事件 响应 Friday, July 29, 2011 后台 线程 数据 展现 控件 交互 ...... 事件 响应 Friday, July 29, 2011 后台 线程 数据 展现 控件 交互 ...... 事件 响应 Friday, July 29, 2011 让代码具有可测试性 ----重构代码 Friday, July 29, 2011 让代码具有可测试性 ----重构代码 • 采用 MVP模式,分离 UI展现逻辑和事件处理逻辑 • Presenter层负责交互和事件处理逻辑 • View层负责 UI渲染和数据展现 Friday, July 29, 2011 Friday, July 29, 2011 Friday, July 29, 2011 单元测试 覆盖 Friday, July 29, 2011 Friday, July 29, 2011 Friday, July 29, 2011 Friday, July 29, 2011 单元测试 Friday, July 29, 2011 单元测试 • 测试速度快 • 反馈迅速 • 健壮的单元测试是其它自动化测试的基础 Friday, July 29, 2011 功能性测试 /GUI测试 Friday, July 29, 2011 功能性测试 /GUI测试 Friday, July 29, 2011 小步前进 二 .采用 ROBOTIUM进行功能性测试 Friday, July 29, 2011 小步前进 二 .采用 ROBOTIUM进行功能性测试 Friday, July 29, 2011 Friday, July 29, 2011 单元测试 Friday, July 29, 2011 单元测试 自动化功能 测试 Friday, July 29, 2011 Friday, July 29, 2011 Friday, July 29, 2011 Friday, July 29, 2011 Friday, July 29, 2011 测试数据从 哪里来? Friday, July 29, 2011 搭建测试数据服务器 • 采用 Ruby on Rails框架 • 根据与 API约定的数据格式创 建模拟数据 Friday, July 29, 2011 Production.apk Testing.apk Friday, July 29, 2011 一切运行良好,直到 ...... Friday, July 29, 2011 需求变化 Friday, July 29, 2011 需求变化 • 克隆出另一个非英语国家版本,功能大体相同,但有部 分定制化需求 Friday, July 29, 2011 需求变化 • 克隆出另一个非英语国家版本,功能大体相同,但有部 分定制化需求 Friday, July 29, 2011 需求变化 • 克隆出另一个非英语国家版本,功能大体相同,但有部 分定制化需求 Friday, July 29, 2011 小步前进 四 .寻找新的功能性测试工具 Friday, July 29, 2011 小步前进 四 .寻找新的功能性测试工具 Friday, July 29, 2011 Friday, July 29, 2011 单元测试 自动化功能 测试 Friday, July 29, 2011 单元测试 自动化功能 测试 Friday, July 29, 2011 单元测试 自动化功能 测试 改进功能测试 框架 Friday, July 29, 2011 Friday, July 29, 2011 一切运行良好,直到 ...... Friday, July 29, 2011 需求再次变化 • 把应用复制到 Android平板, iOS平台 • 统一跨平台的自动化测试 Friday, July 29, 2011 小步前进 五 .尝试引入 BDD测试框架 Friday, July 29, 2011 小步前进 五 .尝试引入 BDD测试框架 Friday, July 29, 2011 Friday, July 29, 2011 单元测试 自动化功能 测试 改进功能测试 框架 Friday, July 29, 2011 单元测试 自动化功能 测试 改进功能测试 框架 Friday, July 29, 2011 单元测试 自动化功能 测试 改进功能测试 框架 引入 BDD测试 框架 Friday, July 29, 2011 Friday, July 29, 2011 步骤的 JAVA代码实现 Friday, July 29, 2011 演示 Friday, July 29, 2011 BDD--行为驱动开发 • 使用 Cucumber定义较高层次上的业务需求描述,可以 跨平台复用 • 使用 Cuke4Duke,结合 Native Driver,实现具体步骤 的代码 • 从业务需求中分离了具体的技术实现步骤 • 每一个步骤都可以复用 Friday, July 29, 2011 自动化测试的好处 Friday, July 29, 2011 自动化测试的好处 • 提升技术团队与客户团队之间的合作 • 辅助指导开发 • 帮助团队更加透彻地理解业务需求 Friday, July 29, 2011 功能性测试要写多少? Friday, July 29, 2011 Friday, July 29, 2011 花费的时间和精力 Friday, July 29, 2011 花费的时间和精力 发现缺陷的概率 Friday, July 29, 2011 平衡点 花费的时间和精力 发现缺陷的概率 Friday, July 29, 2011 自动化测试不能测什么? Friday, July 29, 2011 Friday, July 29, 2011 感觉 Friday, July 29, 2011 动画 Friday, July 29, 2011 动画效果 1 动画效果 2 动画效果 3 动画效果 4 动画效果 5 动画效果 6 动画 Friday, July 29, 2011 如何让自动化测试价值最大化? Friday, July 29, 2011 持续集成环境 ----持续获取测试结果反馈 Friday, July 29, 2011 持续集成环境 ----持续获取测试结果反馈 Friday, July 29, 2011 • 如果代码不易于测试,那么重构它 • 小步前进,持续反馈 • 考虑投入和回报 • 团队协作 Friday, July 29, 2011 自动化测试金字塔 单元测试 功能性 测试 手工测试 Friday, July 29, 2011 我们的自动化测试之路 Friday, July 29, 2011 我们的自动化测试之路 Friday, July 29, 2011 我们的自动化测试之路 单元测试 自动化功能 测试 改进功能测试 框架 引进 BDD测试 框架 Friday, July 29, 2011 我们的自动化测试之路 当前的位置 持续前行单元测试 自动化功能 测试 改进功能测试 框架 引进 BDD测试 框架 Friday, July 29, 2011 Friday, July 29, 2011 Friday, July 29, 2011 谢谢大家! Friday, July 29, 2011
还剩104页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 8 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf

pdf贡献者

oojan

贡献于2013-03-24

下载需要 8 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf