|
|
|
|
移动端

1.6.2 线上数据

《腾讯iOS测试实践》本书由腾讯QQ浏览器iPhone测试团队撰写,系统、深度地讲解了iOS测试的系统方法论、新技术与常见的技巧与方法。本节为大家介绍线上数据。

作者:丁如敏来源:机械工业出版社|2017-09-14 15:24

年前最后一场技术盛宴 | 1月27日与京东、日志易技术大咖畅聊智能化运维发展趋势!


1.6.2 线上数据

以上介绍的大多是与研发过程品质相关的,其实还有一个很重要的方向就是线上品质,通过线上海量用户上报的数据来度量产品品质。大多数情况下,研发过程品质始终无法保证线上品质。比如用户反馈的重现问题,就是线上用户反馈的问题我们怎么也重现不了,即使严格按照用户的步骤、机型、网络等场景也重现不了。研发过程中测试的数据跟线上用户的数据对应不上,例如某个产品的启动速度,研发过程中测试的启动时间是2.3秒(测试20次取平均值),而线上用户上报的数据是3.2秒(20万个用户上报的平均值)。

业界也有相关测试方法,例如微软公司提出的TiP(Testing in Production),就是通过版本上线后海量用户上报各类数据来发现潜在的问题。测试人员需要关注各类性能数据,例如启动速度、内存、流畅度、响应时间、Crash率等。因为用户的机型、网络、地域、数据环境不同,所以不同用户上报的数据差异很大,这里需要做一些数据统计的分析处理,才能更好地展现出来。由于线上环境的复杂性,线上数据反映的结果会比测试数据差一些。

那么如何通过线上数据来分析定位问题呢?主要的方法就是对某些指标进行详细埋点上报,这样才能获得更详细数据并进行分析,最后找到问题所在。还是以某个产品的启动速度为例来说明(启动速度是指用户点击应用图标开始到拉取完数据展示给用户的这个时间段)。

App启动后就会到后台服务器拉取数据,从大的方向来看,需要区分后台服务器耗时以及App处理的耗时,这样可以方便前端或者后台解决问题。如图1-14所展示的,“等待响应”就是后台服务器耗时(其中也包含网络传输的耗时)。一般可以通过抓取网络包分析得出相关耗时。

图1-14中的RTT(Round-Trip Time)是客户端到服务器往返所花的时间。

当然,只区分客户端跟后台服务器各自的耗时是远远不够的,还需要细分到每个主要函数的耗时,这样才能更好地定位具体是哪部分耗时。图1-15所示的是某个App对关键函数(节点)的日志统计。

图1-15只是启动速度这个指标需要记录的数据,可能发现需要记录的数据非常多,对这些记录的日志也会进行分级,线上发布版本的日志会尽量少一些,不过关键的地方还是需要记录的。当然,版本加了日志会对性能有所损耗,不过在可接受的范围内,还是有必要的;通过线上版本的数据上报,可以得到用户真实的数据,发现潜在问题并逐步优化,给用户更好的体验,提升产品口碑。

如果品质体系的各个指标都有数据上报,那么数据量将非常大,对数据分析挖掘要求就会更高,当然可能产生的价值也会更大,这样更要重视数据的测试。这也是我们强调线上数据测试的原因。

测试数据还可以预测即将发布版本的质量,不管是研发过程还是灰度阶段,都将会产生很多测试数据。那么是否可以充分利用这些数据来预测上线版本的质量趋势呢?这确实是一个方向,但是需要大量的测试数据才可能有机会预测靠谱。因为线上用户的各种机型系统、网络状况、用户环境数据,这些都很难在上线前的环境覆盖到,所以就很难预测线上版本的质量。如果灰度群体足够,那么还是有机会的。腾讯内部的很多项目,产品稳定性问题(Crash率)都是通过灰度来发现问题的,Crash率达到一定程度,就可以进一步扩大灰度规模,逐步迭代放大灰度数量,直至上线。

喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

Java (JDK 6)学习笔记

Java学习笔记在JavaWorld技术论坛(http://www.javaworld.com.tw/)和作者的网站(http://caterpillar.onlyfun.net/Gossip/)提供免费下载...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊