相比iOS有规律的软件版本和硬件升级,Android的碎片化加大了应用的开发和测试成本。下面这张图就说明了Android的分化情况(截至10月1号):
不过,现在各种基于云端的应用测试技术也为开发者提供了新出路,这类技术可以让他们快速查看应用在各类硬件设备上的运行情况。我们曾在7月份报道过百度的Android4.1云测试服务,可为开发者提供几十种主流的移动终端设备及模拟器,而在刚刚过去的
PIE Demo Day上,国外一家提供类似的云测试服务的公司
AppThwack则强调了问题的解决在于测试的自动化。AppThwack有一个自己的测试实验室,这个实验室同样包含不同版Android操作系统、不同硬件系数的各类Android设备用于测试,具体流程如下:>*通过网站的拖放功能安全上传应用
*AppThwack会在各个手机和平板上运行你的应用,并进行各类测试、收集数据
*你可以实时地查看屏幕截图,高级结果、日志、堆栈跟踪和趋势
这家公司从7月份到现在已经运行了57.9万次测试。而针对Android平台上的应用开发和测试,AppThwack创始人还给出了如下几个建议:
*在应用开发过程中,编写测试代码很重要。这一步你可以通过
JUnit(标准单元测试框架),
Robotium(一个开源的自动化库,可以让你轻松编写用于模拟用户交互的JUnit测试)或者诸如 Gorilla Logic的
MonkeyTalk这类可提供Android和iOS跨平台测试的工具。
*在把应用推给用户之前,你是没有办法检测到所有bug的。所以,诸如
BugSense和
Crittercism这类工具就提供了一种解决方案,当一款应用在一名实际用户的设备上崩溃时,它们可以自动获取错误报告。
*Apptentive(目前由位于西雅图的TechStars孵化,所以国内的开发者应该用不上)的服务则可以让你跟客户取得实际的联系,并由此发现应用哪部分可以正常工作,哪部分有问题。他们主要专注于帮你发现那些真正喜欢应用的客户,让他们在应用商店留下好评提高应用评级。
*最后,
ActionBarSherlock可以让一款安装在旧版Android操作系统上的应用优雅“降级”。也就是说,在旧版设备上,应用功能要么被模拟要么被替换,而开发者则可跳过传统的代码分支——多重的代码分支往往容易造成错误,而且随着Android的碎片化的愈演愈烈也会变得更复杂。
对开发者、尤其是那些成本有限的开发者来说,求助定制化的测试服务或许是个不错的方案,而诸如AppThwack这样的公司可以为他们推荐各类工具和解决方案,甚至帮他们编写测试代码。另外,
Testdroid也能提供类似服务,而且比AppThwack做得更久。在国内,除了之前提到的百度云测试平台以外,比较知名的测试平台还包括Testin,中国移动MM社区终端池等等。
via
TC