
去哪儿网移动应用开发总监,负责机票售前与客户端的管理工作。2012年加入去哪儿,先后任职于攻略和机票事业部,擅长客户端和跨端技术栈RN,Flutter,对设备指纹有深入研究,主导了机票国内主流程RN迁移,TARS自动化测试系统的开发和推广。

2018年加入去哪儿网,主要负责机票主流程、机票 iOS客户端、TARS UI自动化系统、iOS端指纹加固等方面的工作。
1. 立项背景
业务痛点
互联网 APP 测试在“快速迭代”的开发模式中进行的,每次迭代都会伴随着各种各样的测试,其中以功能集成测试为重要和主要的一个方面,又因版本迭代过程中需要进行的功能特性验证和已有功能回归,要求测试人员既能测试性功能的各种特性,又要保证原有功能不受影响。在频繁的迭代工程中,APP 的功能和结构越来越复杂,新代码的影响越来越广,回归范围越来越多而且 APP 端有各种机型和系统版本,这就造成了潜在的漏测风险和越来越多的重复劳动。以去哪儿网机票业务为例,冒烟 Case 测试点就有300+,月版回归 Case 测试点有1000+,每次月版回归相当耗费测试人员精力,测试的质量依赖于测试人员的质量,并且还有可能遗漏,每次月版回归都要至少10个 QA 集中测试一天,效率十分低下,并且还经常出现线上 bug 和故障。
为了解决其中工作量最大的每次都要进行的回归测试工作量问题,提升工作效率,降低潜在的遗漏风险,减少重复的工作,该项目希望能够通过一种所见即所得的方式完成脚本的录制,即使测试人员不会编程不懂脚本,也可以通过正常用户的点击拖拽等操作,自动完成脚本的录制,从而大幅度降低企业和项目的自动化维护成本。针对移动厂商跨多端的特点,需要开发一套 UI 自动化测试解决方案。支持 TestCase 的自动重复执行,在多种机型兼容性测试,后端响应数据可控,并对执行结果的请求数据、响应数据以及界面截图进行验证,断言执行结果的正确性。
2. 方案选型
2.1 测试分类
自动化测试是随软件开发技术一并发展的一种测试技术。软件测试包括白盒测试与黑盒测试,而自动化测试最早使用白盒测试中的单元测试。这种测试方式较为高效,易于实现。黑盒自动化测试兴起稍晚,但目前应用也非常广泛。黑盒自动化测试原理是用程序和脚本模拟用户的操作行为,通过智能方式验证软件的关键检查点。在桌面软件和 Web 技术兴盛时代,涌现出大量优秀的自动化测试工具如 QTP 和 webdriver,这些工具经过不断完善已经逐步成熟,能够较好地满足传统应用的自动化测试需求。
APP 的自动化测试包括以下这些:
1、按测试目的划分:
功能测试:对产品和模块的各个功能进行测试。
性能测试:对系统的各项性能指标进行测试。
压力测试:测试软件或系统的负载能力,挖掘隐患。
兼容性测试:对产品和软硬件之间的兼容性进行测试,比如软件在各种不同安卓机型上的兼容性。
安全性测试:通过不同方法发现软件的安全性问题,比如信息泄露、非法使用、恶意破坏等等。
其他专项测试:比如弱网络测试、耗电量测试、流畅度测试等等。
2、如果根据软件开发阶段来划分,每个阶段又可以做:
单元测试:对程序中的独立模块进行白盒测试,目的是检验软件基本组成单位的正确性。
集成测试:通过对单元模块进行组合测试,目的是验证单元模块之间的接口是否正确。
系统测试:对整个系统进行完整测试,验证整个系统的正确性与合规性。
回归测试:当软件发生变更的时候,对这次变更可能受影响的功能模块进行验证。
验收测试:测试的最后一个阶段,软件发布或者上线前确保软件质量。
3、其他常用测试概念:
冒烟测试:冒烟测试是对软件最基本的功能进行简单测试,低成本的判断软件是否可测。
冒烟测试来源于硬件的测试,当电路板做好后,首先会进行一次加电,如果没有冒烟才会开始进行接下来的测试,否则说明产品没有达到最基本的质量要求,需要重新制作。
探索性测试:探索性更多的依赖测试人员的个人经验或者特长,依靠的是测试人员的主观能动性。