手游客栈今日报道(2015.06.16)导语:日前,Testin云测的CTO尹春鹏接受了采访,他从技术方面讲解了云测试的技能功能和价值所在,并表示Testin的所有云测试都是在真机上进行的。
Testin云测CTO尹春鹏
请先简单介绍下自己,以及目前所负责的领域。
毕业于清华大学,先后做过Web和移动应用的开发,在移动应用领域更是有着超过十年的开发和产品经验。正是因为感受到终端碎片化时代为移动应用做兼容性测试的痛点,所以我们才创建了Testin这个平台,希望能让广大的开发者专注于开发本身,不必花费大量的时间和金钱就可以生产出高质量的应用。目前我负责Testin平台总体架构设计和研发管理。
在海量的安卓机型中要做到哪些方面才能保证高质量的测试?
一般来说,要满足在海量的安卓机型上正常运行,首先要做到的是保证应用在原型机上进行详尽的功能测试,每一个功能点,每一个业务逻辑都跑通,确保你的应用产品功能在原型机上都已经正确实现;功能测试完成之后,就需要在这些海量的机型上来做兼容测试了,在不同的分辨率、系统、版本、ROM、型号的真机上都要将主体功能跑通,尤其涉及到调用硬件接口的部分,如相机、GPS、重力感应、陀螺仪、蓝牙、NFC等等,这样才能确保你的应用能在这么多的安卓机型上运转正常。按照我们过去的经验看,在一些深度定制的ROM上,很容易出现一些兼容问题,比如MIUI、Flyme等。
你认为云测试最大的价值是什么?你怎么定义这些第三方工具
云测试的本质是一个按需购买的Saas服务,其最大的价值是,可以让开发者自由的使用测试服务,在质量和成本之间选择对自己最优的方案。一方面,开发者不需要花钱购买那么多的测试终端,另一方面,云测试可以做到在所有测试终端上并行执行,并自动汇总测试报告,大大节省了测试时间。
云测试和真机测试的不同在哪?你们提供的服务中如何平衡这两种技术?
我们认为云测试只有在真机上执行才有意义,如果是模拟器的话,只能模拟不同的分辨率下应用的展现情况,而这一点所有的开发者自己就很容易做到。Testin提供的云测试,全部是在真机上执行。
Testin崩溃分析服务中是如何帮开发者发现NDK错误?
Testin从1.4版本开始支持NDK的崩溃分析。当程序发生NDK错误时,其内嵌的SDK会收集程序在用户手机上发生崩溃时的堆栈信息(主要就是上面我们通过logcat日志获取到的函数指针)、设备信息、线程信息等,SDK将这些信息上报至Testin云服务平台,在平台进行唯一性的处理、并可以自定义时段进行详尽的统计分析,从多维度展示程序崩溃的信息和严重程度;最新版本还支持用户自定义场景,方便开发者定位问题所在。
从用户手机上报的堆栈信息,Testin为NDK崩溃提供了符号化的功能,只要将我们编译过程中产生的包含符号表的so文件上传,就可以自动将函数指针地址定位到函数名称和代码行数。符号化之后,看起来就和我们前面在本地测试的结果是一样的了,一目了然。而且使用这个功能还有一个好处:这些包含符号表的so文件,在每次开发者编译之后都会改变,很有可能我们发布之后就已经变了,因为开发者会修改程序。在这样的情况下,即使我们拿到了崩溃时的堆栈信息,那也无法再进行符号化了。我们可以将这些文件上传到Testin进行符号化的工作,Testin会为我们保存和管理不同版本的so文件,确保信息不会丢失。
今年Testin的技术服务目标是什么?
服务好所有的移动开发者,包括普通App、手游、HTML5等。
今年H5游戏是否有用到云测,主要是测试哪些方面?
目前H5游戏主要有几种方式,一是普通的页游,通过浏览器打开游戏网址来玩游戏;二是把游戏嵌入到微信、手机QQ等应用中,以Hybrid的形式运行;还有就是利用cocos2d-js或者白鹭这样的引擎封装成一个单独的程序发布。
现在,Testin已经完全支持以上这几种形式,当作为独立程序时,我们采取普通的兼容测试流程,通过自动化脚本实现包括安装、卸载、注册、登陆、新手引导、游戏关卡等自动运行并判断执行结果,同时在测试过程中纪录系统日志、操作步骤、截图和性能数据等,并捕获程序崩溃和脚本异常等;当作为其他程序的一部分来运行时(比如浏览器或微信),我们也在我们的测试终端上准备好了各种宿主应用,在宿主应用中对H5游戏进行测试,对比独立程序来说只是忽略了安装和卸载的过程,其他的流程完全相同。无论开发者采取哪种方式,我们都可以实现游戏的自动化脚本执行和结果判别,并尽可能多的获取必要的信息,当H5游戏的测试发现问题时确保开发者有足够多的信息来判定错误原因并进而解决问题。