smoke自动化需求调研
一、QA 模糊需求:
smoke-checklist 这里面的内容可以实现自动化吗?
- 可以自动操作跑流程,至于每一步的验证,需要有可以规则化的标准;比如“主要流程正常”,我们可以规定出每个流程步骤,自动跑的时候记录下每个步骤,符合规定序列的算“正常”,当然可能还需要加入更多验证条件;
- 如果涉及 sdk 交互的,目前还实现不了自动化,这个我先记下来,先跟其他程序讨论研究下,
比如“支付正常”,我们可以记录游戏内支付过程、协议交互过程、金币变化等,但没办法自动化 sdk 内部交互,比如苹果支付页面的身份验证、购买按钮等; - 还有一部分必须人为主观判定的,实现成本也很高,这个需要作为课题先研究下有没有可行的低成本方案,
比如“显示正常”,如何界定正常?这方面要实现的话,可能得上机器学习了,这方面技术是个无底洞,恐怕不是我们能够负载的起的;
smoke 时检查一遍指定活动资源是否完整、有效;
smoke 时跑一遍模拟支付,记录支付过程、协议、金币余量变化等;
二、需求分析:
smoke 自动化需求要点:
- 1、非自动化“测试”,仅实现 smoke 自动化即可,这个阶段表示所有功能都已经通过测试;
- 2、意义在于,在现有 smoke 时间内,尽可能能覆盖更多内容;
- 3、更关注的点是,已经上线过的内容是否依然健壮,是否受到版本迭代的影响;
- 4、目前的需求主要集中在活动方面;
技术端需解决的核心问题:
1、流程自动化和校验:
包括自动驱动交互、flow,判定和校验每个流程步骤是否符合预期;
2、如何界定预期标准,如何判定是否符合预期:
比如 QA 提到的“流程正常”,“支付正常”,“显示正常”;
3、如何驱动 sdk 内部的交互流程?
4、实现方案应该足够通用,不能依赖差异化配置,不能产生差异化逻辑,不能每个活动的研发都要去关注 smoke 自动化;
5、最好是傻瓜式操作;不能 QA 学习成本和工作量,QA 对这部分的接受程度很低;
6、搞机器学习不太现实吧?
三、初步方案:
基于“录制”,提供一键开启、关闭操作;
“录制”内容包括:
- 交互过程:记录每个交互 step 相关的 controller、button、响应函数等;
- 流程回调、数据:记录长表现流程、flow 的 step 记录(恢复时校验);
“录制”内容记录到文档:
加入到 debug 版本控制,release 的时候剔除掉;
载入“录制”文档:提供一键开启、关闭自动化 smoke 操作,检查并载入相关的“录制”文档,按记录自动驱动;
三、第三方工具:
- android 模拟器
- ChromeDriver
- Airtest+Poco
第三方工具实现“交互录制”比较方便,但 step 校验、或者需要嵌入规则会比较麻烦;
另外,对 QA 来讲有学习和使用成本,未必能够接受;
四、方向:
- AI 方向、自然语言描述、MCP 调用
- 优先实现游戏内部自动化方案