楼主是移动应用测试新进人员,实际上目前只有一条腿跨进门槛,因为下个月才正式入职。目前在自己学习,找些应用测着试试
关于 monkey 测试有些疑问,请有经验的大神指教
1)monkey 测试在项目的什么阶段测试发挥的作用最大?

我个人简单的认为 monkey 测试最大的作用就是可以帮助我们实现各种乱点,不论是在应用内还是应用间,各种控件点击是否能够实现有效跳转,所以我觉得 monkey 测试是不是应该放在项目早期,这样可以替代手工测试暴露出比较多不能实现有效跳转或切换的问题,如果在版本相对稳定之后再做这个测试,控件点击这些操作是不是都已经被基本功能测试覆盖了,monkey 就发挥不了太大作用 (当然是可以一直不断测试来发现问题,保证稳定性)。但是在网上又找到一些说法提到 monkey 测试不适合在早期测试,因为会产生过多的 crash 是影响定位什么的,所以有点疑惑了。

有项目经验的同学,可否分享下,你们项目中是在什么阶段使用 monkey 测试的效果最好?

2)monkey 测试的有效性?

一个应用,在有用户的状态,monkey 测试是不是应该要尽可能多的 activity 呢?

我测试了两个应用,一个上架时间比较短,一个上架时间比较长了,都按照下面的几条命令进行测试,完成后,对报告进行分析,均没有 crash,没有 ANR,测试覆盖到的应用的 activity 也不是那么多

adb shell monkey -p **** --throttle 400 --pct-touch 35 --pct-motion 20 --pct-nav 5 --pct-majornav 5 --pct-pinchzoom 10 --pct-appswitch 20 --pct-anyevent 5 -s 4 -vvv 50000 >d:\android\monkey_user1.log

adb shell monkey -p **** -p **** -p ***** --throttle 400 --pct-touch 50 --pct-motion 30 --pct-nav 0 --pct-majornav 0 --pct-pinchzoom 20 --pct-appswitch 0 --pct-anyevent 0 -s 5 -vvv 50000 >d:\android\monkey_user2.log

adb shell monkey -p **** --throttle 400 --pct-touch 60 --pct-motion 40 --pct-nav 0 --pct-majornav 0 --pct-pinchzoom 0 --pct-appswitch 0 --pct-anyevent 0 -s 6 -vvv 50000 >d:\android\monkey_user3.log

adb shell monkey -p **** --throttle 400 -s 7 -vvv 50000 >d:\android\monkey_user4.log

测试环境:锤子手机,android4.4.2,没有 root,usb 连接
我想请问下:
1.你们测试的项目中用 monkey 测试到 crash,ANR 的概率高不高,都是什么原因导致这些问题的?当用 monkey 测试到这些问题时,怎么给开发描述这个问题,直接丢 log 给开发,还是自己要做一些进一步的定位?

2.我测试到的 activity 覆盖率真心不高,因为它很容易会进入一些像说明文档一样的界面,一旦进入这种界面貌似跳出来很难,又没啥东西可以点,大大降低 测试有效性,大家测试时是否也有这样的问题?都怎么解决?还是我的命令写的有问题

3.关于复现,我测试的时候,上面第二条命令在三个应用之间测试,主要测试偏重 appswith 这个参数,第一次测试的时候测试跳转到其中一个 app 时出现了 crash,再跑一遍的时候时候复现不了了,命令,seed 值,都一样,就是复现不了。是前置条件的原因吗?那前置条件包括哪些呢?我测试之前都是把所有的 app 都关掉了,手机也是网络等正常开启,重新这样操作之后还是不能复现

  1. log 除了关注被测应用相关的 crash,anr,reject,和其他的切换的时候其他应用或者系统应用出现的 crash,anr,reject 是否要管?要管的话怎么分析?


↙↙↙阅读原文可查看相关链接,并与作者交流