app测试的一些常见问题

122 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第7天,点击查看活动详情

  • App 出现 anr 和 crash 原因有哪些?
    我们平常在测试手机app时,有没有仔细去思考一些问题:为什么 App 会出现崩溃呢? 我简单的百度了一下,查到和 App 崩溃相关的几个因素:内存管理错误,程序逻 辑错误,设备兼容,网络因素等,如下:

1.内存管理错误:可能是可用内存过低,app 所需的内存超过设备的限制,app 跑不起来导致 App

crash。

或是内存泄露,程序运行的时间越长,所占用的内存越大,最终用尽全部内存,导致整个系统崩溃。

亦或非授权的内存位置的使用也可能会导致 App crash。

2.程序逻辑错误:数组越界、堆栈溢出、并发操作、逻辑错误。

e.g. app 新添加一个未经测试的新功能,调用了一个已释放的指针,运行的时候就会 crash。

3.设备兼容:由于设备多样性,app 在不同的设备上可能会有不同的表现。

4.网络因素:可能是网速欠佳,无法达到 app 所需的快速响应时间,导致 app crash。或者是不同网 络的切换也可能会影响 app 的稳定性。


  • app 对于不稳定偶然出现 anr 和 crash 时候你是怎么处理的? 然而在发现问题后我们也应该想着去解决问题,可以从以下几个方面入手:

1.app 偶然出现 anr 和 crash 是比较头疼的问题,由于偶然出现无法复现步骤,这也是一个测试人员必备的技能,需要抓日志。当出现偶然的 crash 时候,这时候可以把手机拉到你们 app 开发那,手机连上他的开发代码的环境,有 ddms 会抓日志,这时候出现 crash 就会记录下来日志。

2.也可以自己开着 logcat,保存日志到电脑本地 adb logcat *:E >d:\hello.txt

3.还可以想办法把它重现出来,这时候可以使用 adb shell monkey 进行自动化测试。持续一段时间之后,可能就会出现程序发生 anr 和 crash 的情况,这时候我们就重现出来了。