职业经验 测试开发 - 一天一个面试题 4️⃣之专项测试 Android ANR 和 Crash 的简介和解决办法

小巴哥 · 2023年01月31日 · 最后由 小巴哥 回复于 2023年02月03日 · 6024 次阅读

分析

这个问题考察是对专项测试的了解, 其实专项测试主要包括性能测试 和安全测试,这个问题正式 客户端的性能测试概念问题,如果没有测试经验可能这个问题什么也回答不上来,我遇到过面试官想和他聊客户端性能测试,她还输 qps、tps 的,这会让面试官一看就是外行,所以了解专项测试应该从概念入手

专项测试简单概念普及

专项测试 指的对某个模块、某个功能、某项性能等进行的专门的针对性的全面的测试,常常分为 性能测试和安全测试,性能测试又分为移动端性能测试和 服务端性能测试, 移动端有很多,web 、安卓 iOS 、鸿蒙、小程序、 h5 等,每一个的指标都有所差异,所以专项测试是一个比较广泛的学问,需要一个不断的学习和积累

回答

crash  
定义:程序奔溃或闪退  
产生原因  
    空指针  
    数据类型转换  
    内存泄漏  
    数组越界  
    低版本手机调用高版本API  
测试中需要关注  
    关注界面中的所有按钮、控件的操作有效性,点击是否能产生对应的目标事件。  
    通过自动化对应用的部分运算操作进行长时间负载测试,可有效暴露此问题。  
    通过重复的多次操作可有效暴露此问题。  
    通过对输入框进行异常输入,例如日期输入框,文本输入框等。  
定位问题  
    crash 日志  
    adb log  
anr  
定义:程序未响应  
产生原因  
    主线程执行了耗时操作 (大量的数据库读写、耗时的网络访问、调用手机的某些功能超时)  
    其他程序占用CPU导致本进程得不到CPU时间片 (其他进程的频繁读写操作、其他线程持有锁,导致主线程等待超时、其它线程终止或崩溃导致主线程一直等待)  
测试中关注  
    对部分上传文件较大的页面、保存文件信息较多的动作,比如电话本信息、带有图片的记事本保存等操作。  

    对某一时间的网络进行极限使用,在被测应用的一个场景无法使用网络的情况下关注。  
    重复多次的操作可能导致ANR事件,可使用Monkey工具进行测试。  
    多任务、多线程应用内存占用极限时。  
定位问题  
    log文件夹下全局搜am_anr  

测试工具  
    instruments,monkey  , macaca nosmoke ,fastbot 
测试用例  
    包括app所有主场景,app 自动化不好覆盖,最好使用monkey工具,例如 macaca nosmoke ,fastbot 等

解析

问题主要考查对专项测试中某一指标的理解,这个回答从解释到问题分析,再到定位问题,测试工具,测试方法都回答非常全面

写在最后

我是小巴哥,一个陪你成长,实实在在分享 测试干货职场经验的人,欢迎关注!!! 审核机制有点慢,今天晚上更新下明天的吧

共收到 6 条回复 时间 点赞

我是小巴哥,一个陪你成长,实实在在分享 测试干货职场经验的人,欢迎关注!!!

一天一个面试题系列会持续更新,希望大家多提意见,共同进步

巴哥加油,期待来点 python 接口自动化之类的

风子 回复

没问题,今天晚上写,明天更新,记得来看哦

这个挺有意思的,我知道有 Crash 分析和程序未响应,也知道大概原因,但是要问我 ANR,我还真不知道,不过我只是个专项测试入门

zhaohyperion 回复

嗯,专项测试的指标非常多,这只是其中一部分

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