携程机票 MEC 自然语言测试框架
如果无法正常显示,请先停止浏览器的去广告插件。
1. 携程机票 MEC 自然语言测试框架
任跃华 机票前台研发组
2. 讲师介绍
任跃华
• 携程机票前台软件工程师,
参与国际机票 RN Clean
Architecture 落地和 MEC
中文测试框架研发工作。
3. 目录
CONTENTS
1 传统软件过程困境
2 使用 Cucumber 和 Macaca 实现 BDD
3 提升覆盖率和易用性
4 效果展示
5 Q & A
4. 传统软件过程困境
手工回归测试:常规 2 人日, 大版本 4 人日
手工测试制约迭代速度
5. 传统软件过程困境
独立存在的自动化测试团队
UI自动化成本高覆盖低
6. 传统软件过程困境
不同角色使用不同语言沟通得到模糊的需求描述
产品测试开发沟通成本
7. 传统软件过程困境
产品文档: 产品PRD,测试用例Excel,项目代码
缺少线上软件逻辑文档
8. 传统软件过程困境
发布前夕发现 bug 修复成本增大
先开发后测试放大风险
9. 解决方案:使用 cucumber + macaca 实现 DBB
+
=> BDD
10. 什么是 BDD ?
11. BDD 关键步骤
• 需求各利益方(产品,测试,开发)对需求进行充分讨论;
• 讨论基于软件的行为展开;
Cucumber
• 讨论的产出为自然语言编写的非技术人员可读的测试用例文档;
• 产出的测试用例能在自动化测试平台上执行; Macaca
• 技术人员专注于编写代码通过测试用例。
12. Cucumber 介绍
# language: zh-CN
功能: 排序-单程列表页
场景: 单程_默认排序_直飞优先
假如 跳转页面到[单程列表页]
当 点击[直飞优先tab]
那么 第[1]程列表页按照直飞航班在前,中转航班在后排序
并且 [更多排序tab]的文案为[推荐排序]
场景: 单程_低价优先
假如 点击[低价优先tab]
那么 第[1]程列表页按照价格从低到高排序
13. Macaca 介绍
14. MEC 结构
15. 扩展 Macaca Api
// 设备与某个 mockSuit 绑定
async deviceBindMockSuite(mockSuitId: string,caseIDList: number[])
// 打开 Schema
async openSchema(url: string)
16. 开箱即用的自然语句
17. MEC CLI 增强易用性
18. MEC SPY 提高自动化覆盖率
View
Model
MEC
SPY: Assert ViewModel
19. Cucumber 场景片段复用
20. 支持业务语句扩展
21. 执行报告
22. 演示DEMO
23. 引入BDD后的软件开发过程
24. 问题回顾
Q: 手工测试限制迭代速度 A: 自动化为主,手工为辅,一周两次发布
Q: UI自动化成本高覆盖低 A: 自然语言低门槛,覆盖率提升
Q: 产品测试开发沟通成本 A: 基于用例评审,避免模糊的需求描述
Q: 缺少线上软件逻辑文档 A: 可执行且保持最新的产品文档
Q: 先开发后测试放大风险 A: 测试开发同步进行
25. 数据展示
• UI自动化测试用例覆盖率 90%+
• 团队测试/研发比由 1 : 2.6 提升至 1 : 4.5
• 集成测试成本降低 75%
• 需求吞吐率提高 30%
26. 本PPT来自携程技术沙龙,
更多信息,可关注“携程技术中心”微信公众号