1. 测试遇到的困惑与挑战
随着飞信活跃用户、同时在线数量的不断增加,互联网的快速发展,以及微信等新一代IM产品的上线,客观上对飞信的发展带来了巨大的挑战。作为飞信的开发运营支撑商,必须产品运营模式和开发流程进行变革才能使飞信产品更好的发展。而这些变化必然对原有的测试流程和体系带了很大的挑战。
互联网转型:互联网时代的到来,最直接的变化就是快,产品需要快速迭代,快速发布版本,原来需要半年时间发布一个客户端,而现在需要2个月甚至一个月发布一个客户端。如何在最短的时间提高更高质量的产品是摆在我们面对的一个首要问题。
多架构共存:为了适应互联网产品的快速发展以及更好的满足客户需求,需要对原有的架构进行升级,而在升级的过程中存在多系统架构并存,在测试过程中既要满足系架构的稳定正常运行,又要保证对老的系统架构的兼容性,这些无论是在工作难度还是工作量上都对测试工作提出了一个很大的挑战。
多种开发模式共存:为了适应互联网的开发节奏和保持原有系统的稳定,在开发过程中敏捷开发模式与传统开发模式交替共存,测试怎么样实现在传统模式中的“稳”和敏捷模式中的“快”,对测试来说这是一个巨大的挑战。
分省运营、灰度发布
在互联网产品中常常使用灰度发布这一策略,灰度发布能够及早获得用户的意见反馈,完善产品功能,提升产品质量 让用户参与产品测试,加强与用户互动降低产品升级所影响的用户范围。 另外,随着移动互联网公司的成立,对飞信的运营模式进行了改革,要求支持飞信分省运营模式。灰度发布和分省运营的变化对测试来说,工作量成指数增加。如何在测试成本可控的条件下进行测试是我们每个人必须考虑的一个课题。
另外随着移动互联网的快速发展,飞信需要支持的客户端越来越来越多,用户场景越来越复杂,对测试的难度和工作量剧增。
2. 各种接口方案分析及实施
如何解决上面提到的几个问题?要解决这些问题按照常规的测试模式,肯定不能满足;经过分析(见下图)我们认为在客户端的皮下层进行测试。也就是接口测试,可以很好的解决上面的问题。
经过对业务和接口的详细梳理,发现在所有的系统中,其接口测试无非就是需要对以下集中种接口进行测试:
客户端模拟接口测试
随着无线互联网的飞速发展,越来越的手机厂商加入,越来越多基于开源手机操作系统开发的系统的增加,以及多种网络的接入,采用传统在UI进行测试的方法成本越来越高,实施分层测试,进行模拟客户端测试势在必行,对于一般的系统来说,各种客户端连接服务器端的接口都是相同的,或者根据版本不同会有略微差异。那么在接口测试时,就可以把UI要测试的几十种版本分类抽象出一个或者几个版本接口测试,而客户端的测试仅仅需要在UI上进行核心功能验证和适配测试,从而大大提高测试效率。如在飞信测试过程中大概会有15个以上客户端需要测试,在测试过程中又会根据情况选择1-3个版本的客户端进行测试,那么在一个大的版本测试中累计测试客户端达到30个以上,其工作量可想而知;如果进行接口测试,通过对各个客户端和不同版本分析,其接口后台通信协议只有三种(如下图所示),那么在测试过程中只需要模拟三个客户端,即可完成对所有客户端模拟测试,大大节省了测试时间。另外测试前移也使得在开发过程中尽早尽快的发现问题成为可能,从而加快版本迭代速度。
......