移动测试基础 大家 android 兼容性是怎么做的?

anonymous1 · 2015年04月08日 · 最后由 keen 回复于 2015年06月05日 · 2419 次阅读

最近公司项目上线后,不断的出现各种兼容性的问题。大部分机型没出啥问题,但是部分机型总是跟你过不去。导致我们的在线 bug 很多,工资都快扣光了,再这么下去,吃饭都成问题了。

  • 首先,android 机型无比的多,公司总共就提供了几台测试机。
  • 其次,每次上线时间都很紧,就那么几台机,也没法全部跑一遍。
  • 然后,公司的东西,也不愿意放到什么云平台去测试。(原因我就不说了)

就拿本人经历过的几个 case 说说。

  1. 某位领导用了我们的东西,黑了下屏。最后查明原因,他的手机联系人列表有超过 2 万个人。我们的产品读了联系人列表。(测试造数据都比较难),然后加班啊,后面就不说了。
  2. 产品有拍照功能,然后有个在线 Bug 给我,说部分机型此功能有问题。然后我测了几款主要机型,都修复了。等我把 Bug 关闭,人家找上门了,他的 5 年前买的 HTC,刷的小米的系统,仍然有这个问题,但是开发就是搞不定他的手机,我又悲剧了一回。
  3. 现在问题比较容易出现在什么红米,魅族低版本(我们比较缺的机型上)

被兼容性问题搞得要死了。

请问一下大家兼容性是如何做的,有什么好的建议。

共收到 11 条回复 时间 点赞

我们这边是这么搞的,搞了集群
1、一台 PC 用 USB 连接多台手机终端,每台手机终端都视为 runner
2、有一台集群管理平台,直接控制这些 PC
3、把写好的脚本,如 monkeyrunner、appium、robotium 或者其他脚本上传到这个管理平台上,由这个管理平台把脚本动作复制分发给每个节点的 pc,再有 pc 上的 agent 分发给每个 runner
4、每个节点的 pc 上传 log 到报表 server

@cpfeng0124
我也想过用集线器连接多个测试机。但是有两个问题比较头疼。

  1. 出问题的差不多都是我们没有的机型,我们就那么几台机器。
  2. 我们的东东是单点登录的,我没想到用什么办法,指定某台机器登录某个账号。

#2 楼 @anonymous1 单点登录,这个木办法啊,只能搞多个账号,你遇到的问题,我们也同样遇到的,比较头疼

#3 楼 @cpfeng0124 我做的跟你们一样,不一样的是用例也是分配的。而且拥有数据池概念,完美克服互斥这样的情况

#1 楼 @cpfeng0124 你的集群管理平台是用 jenkins 的还是自己开发的平台?

#4 楼 @pighero001 单点登录的,你是做的数据池,如何分配登录帐号的?我是通过将多帐号写在配置文件中,加载相应的帐号来实现同时执行多用例

生命是有限的,测试也是有限的
在各种厂商定制、各种三方 Rom 满天飞的现在,Android 想要兼容市面上所有的机型那是不可能完成的任务
“工资都快扣光了” 可以看出贵司测试当着太大的责任,一出问题都在测试头上了。。个人认为这是不太正常的

为了减少类似的问题发生需要一个积累的过程:比如加入三方 SDK 在线监控程序异常、注重用户反馈、深挖代码中易出现的问题(我们公司产品在 Qmobile 和三星 Rom 上总是出问题,后来才发现这些手机 Rom 中加入的旧版 support V7 和 App 中的新版 s v7 冲突、又比如 Fragment 常见的 stateloss 的 bug)当然这些不只是让测试来做,开发和测试都是产品中不可或缺的部分

至于你说的 “联系人” 这些问题,其实可以避免(不是兼容性问题),当你知道这个功能的时候或者说从 CodeReview 中得到一些信息的时候就应该进行深挖避免这种问题出现....另外这种造数据通过 ContentResolver 很容易实现

希望以上内容能对你有所帮助,有问题再一起探讨

#5 楼 @keen_lau 我是做数据库池、轮询概念,你那种是我之前用的,不太好,现在的状况可以解决这些问题,十个数据池可以让五十台轮流全用一遍。。。

我也遇到同样的问题,头疼中

厂商太多,rom 改的太多,可以从静态代码分析角度尝试修补,lint 会对一些 api 的使用场景做警告,可以看看是不是有有价值的问题

大千世界无奇不有啊。。。头一次听说存了 2 万个联系人的手机,这样的联系人模块还能打开吗?

2W 个联系人,可以打开,呵呵

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册