前言:
最近针对新开发的一款app进行了埋点测试。在这个过程中想总结自己对于埋点测试的学习与理解。
正文:
一、概念
埋点测试只是数据采集的一种术语,而数据采集是提供给运营工作人员去了解手机app对于某些模块、场景的用户使用情况,进行的一个触发埋点,将埋点采集到的数据到的数据进行上报的过程。采集数据只是起点,将数据进行分析、整理、汇总以及报表展示,最终得出用户对app普遍对使用行为,从而实现app面向用户的改良才是目的,为了产品更好符合用户需求体验才是终点。
以下就埋点测试的流程、技巧、方法这几个方面说起
二、测试流程
每一个app的完成,都少不了各方人员的共同努力,各司其职。如:产品经理符合提供需求以及确认app最后展示效果,研发人员负责编码开发app,测试人员负责测试app是否满足需求。为了更好的解释,我画了一个流程图:
![](https://upload-images.jianshu.io/upload_images/5700006-e05e8d58b4a58d7c.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp)
三、测试技巧
1.了解开发针对不同模块分别用什么语言编写。若使用RN语言,则只需要测试一端即可。
现在普遍app开发是使用原生编程语言(如:ios端使用objective-C,Android端使用Java)+RN。而RN是开源的跨平台移动应用开发框架,完整封装了各种js内置的方法,则rn编码时是调用js处理逻辑层处理事件,而js会被转译成object-c和java。其实简单来说,我们在最上层编码开发app就能在Android和ios端使用。因为同一套代码,针对埋点测试只需要测试一端即可,这样就提高效率。不过因为RN组件不全,某些特殊功能就无法解决,则还是需要各自的原生语言去编码。关于rn使用的一个大致图提供参考:
![](https://upload-images.jianshu.io/upload_images/5700006-af3c799a07be15e1.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp)
针对RN语言的普及度,我特意去请教研发人员。研发人员说,现在普遍业务模块都是使用RN编码,减少代码冗余。除非某些特殊功能,比如:验证码、H5页面。
2.发现埋点缺失时,全方面去定位分析。
比如,我们测试ios端的工具使用的xcode不是非常成熟。所以若是某一端有埋点,另外一段没有埋点,问题可能来自:a.手机版本不兼容;b. xcode版本不兼容;c.中文日志有问题。
3.若是埋点真没有,可以自主拉取代码去跑动代码检查埋点。
发现问题后,尽可能去确认是否是bug,避免是因为个人失误,导致自己处于被动状态,同时也不易于项目的进展。
四、测试方法
其实我们有一个数据采集系统能统计埋点数据,数据经过分析汇总的,展示非常直观。但是,平台并不能区分是Android端或者ios端的触发,并且数据往往不是时时更新的,所以对于测试工作来说,无法保证埋点是否完成,数据不具有考核性。所以目前大部分公司是通过手机端连接电脑,通过查看日志方式去定位埋点情况。下面我们就Android端和ios端的测试方式讲述下:
Android端
1.环境搭建:搭建ddms环境,可以使用android studio,或者直接使用android sdk里带monitor。
2.测试步骤:
1)在Android手机端安装带有埋点的安装包
2)在电脑端打开Android studio,同时通过usb连接手机
3)查看埋点字段表,执行对应有埋点的操作,比如:若app登录处埋点。则若在app上点击登录button,正常情况下能通过查找日志找到对应的埋点。
![](https://upload-images.jianshu.io/upload_images/5700006-3a924d7b1bdca848.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp)
4)检查埋点是否正确,出错的情况有:
a)漏埋点。比如,若执行a步骤找到埋点a;执行b步骤,却找不到埋点b。大概率是埋点b没有被埋。
b)多埋点。比如,若只是操作一次,却找到多个埋点。
c)埋点和操作类型不对应,比如,点击的是“确认”,却上报了“返回”
ios端
1.环境搭建:安装xcode
2.测试步骤:
1)在Android手机端安装带有埋点的安装包
2)在电脑端打开xcode,同时通过usb连接手机
3)点击xcode的window —>devices
![](https://upload-images.jianshu.io/upload_images/5700006-b33dbebe5757f292.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp)
![](https://upload-images.jianshu.io/upload_images/5700006-4e197e22aff8a844.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp)
4)查看埋点字段表,执行对应有埋点的操作,检查埋点的准确性。
总结:
尽管埋点测试在整个测试流程中操作相对简单,耗时较少,但是仍然是软件测试中不可或缺的一部分,保证埋点正常运作。通过埋点汇总后反馈的报表,可以科学有效的规划出一款APP的未来走向,更满足用户体验需求。