一、问:app测试与web测试的区别
参考答案:
1)、系统架构:web端的服务器更新后,客户端会自动同步更新;如果是app下修改了服务端,意味着客户端用户所使用的核心版本都需要进行回归测试一遍;
2)、兼容性。Web端要考虑不同的浏览器内核进行测试(IE、chrome、Firefox),APP的兼容性要考虑选择主流的机型,不同的分辨率、尺寸, 以及不同的操作系统;
3)、性能:APP客户端的性能,要考虑电量,流量,GPU渲染(用GPU来在屏幕上显示图像);
4)、交叉事件测试,安装、卸载、更新,前后台切换;
5)、界面操作,如:横竖屏切换,多点触控,事件触发区域。
二、问:APP的兼容性怎么测试,测了哪些机型?哪些版本?那又怎么测Android的兼容性、怎么测手机的兼容
app的兼容性:我们会在不同的机型(比如:魅族,华为,三星,小米,iOS一般测试iphone5以上)上进行测试用例的执行
三、问:app测试点有哪些?
参考答案:功能,兼容性,用户体验,安全性,安装卸载升级测试,交叉事件,UI测试,性能测试。
四、问:app项目做了多久
参考答案:一直在做,现在app的主体需求已经完成了,后期都是一些零零散散的需求,测试工作量比较少。
五、问:你测了app哪些模块
参考答案:所有功能都测
六、问:你怎么做app测试的
参考答案:参考本文档后面的“APP项目介绍参考思路”
七、问:App的性能测试怎么做的
参考答案:App的性能分为服务器端的性能和手机端的性能。我先说服务器端的性能,再说手机端的性能。
服务器端的性能,我们可以用LoadRunner或Jmeter工具进行测试,我以Jmeter工具为例子说一下App服务器端的性能测试,首先,确定app的性能测试功能点,比如,查询,提交数据,登陆这些用户常用的功能,一般会被选来做性能测试,然后,根据该功能点的接口测试需求,或使用fiddler抓包,在jmeter上构造向服务器发送的请求数据,配置好相关的设置,并做好服务器的监控(我们的App项目是搭建在linux上的,用的是nmon工具做监控),然后运行测试,测试完之后,收集CPU,内存等信息,结合聚合报告的内容,分析性能测试结果。
手机端的性能测试步骤是:
1、在服务器上安装监控工具(iTest/GT)
2、启动监控工具,监控被测应用
3、清空logcat日志:adb logcat -c
4、获取logcat日志:adb logcat -v time > E:\share\logcat.log
5、使用monkey运行被测应用:adb shell monkey -p your.package.name -v 500 > E:\share\monkey.log
6、根据监控图,检查CPU,内存,流量,电量是否符合性能指标。如果不符合,就把不符合指标的报表和对应的logcat发给开发定位。
八、问:adb命令有哪些?
查看设备:adb devices
1)安装卸载:adb install/uninstall
2)、获取logcat日志:adb logcat -v time > E:\share\logcat.log -- 把logcat日志导入到E盘的share目录下。
收集logcat日志(logcat日志,记录了用户的在系统上的所有操作)
1)、先清空系统上原有的logcat日志:adb logcat -c
2)、获取logcat日志:adb logcat -v time > E:\share\logcat.log -- 把logcat日志导入到E盘的share目录下。
3、获取app的包名和activity名称
adb logcat -v time | findstr STAR 脚本中,cmp= 后面的值就是 包名
运行monkey工具:adb shell monkey -p app-weichi-release.apk -v 3000
回归测试,收集seed号:adb shell monkey -p app-weichi-release.apk -s 45544215878 -v 5
进入手机的核心:adb shell
把本地的文件上传到Android设备:adb push 本地文件路径 Android设备路径
把Android设备的文件下载到本地:adb pull Android设备路径 本地文件路径
九、问:你这个app测试人员有几个?怎么分工?
参考答案:2个。按测试的手机类型分工,每个人负责几种测试机型,每个人都要测试app的所有测试点。
十、你做APP用过monkey,能具体讲一下吗?
参考答案:我们用monkey模拟用户的伪随机操作(点、触摸、滑动等),对APP的稳定性进行测试。
一般我们会用到命令 adb shell monkey -p 包名 -v 次数
十一、那如果monkey测试过程中,出现crash你怎么定位?
参考答案:crash一般是空指针导致的,在logcat日志中输入“nullpoint”搜索到相关的日志,然后把日志给开发定位。
十二、那问题开发修复了你怎么验证?(意思就是,monkey怎样做回归测试)
参考答案:我们会进行回归测试,会按照之前的轨迹(seed)去跑monkey,命令是:adb shell monkey -p 包名 -s seed值 -v 次数
十三、面试官:看你写有用MONKEY做APP测试,怎么做的?如果有问题的话怎么定位?
我:(1)用adb命令,adb logcat -c清空日志,再获取日志 adb logcat -v time 导到要保存日志的地方
(2)再使用monkey命令adb shell monkey -p 包名 -v 次数,不过次数的话我一般都是算时间来跑,比如说我跑个5分钟大概要多少次,然后直接跑个1小时的次数这样,然后跑完就看monkey日志,如果说它跑的次数跟我设的次数不一样.就说明monkey中途跑失败了。那我就要去看看logcat日志有没有null point,或anr in的关键字,如果有null point,就表示app在测试过程中crash了,然后把null point前后的日志截取下来,发给开发定位;如果有anr in,表示app在测试过程中出现了ANR(程序无响应),我们要把/data/anr/traces.txt文件取下下来,再把ANR进程号对应的日志发给开发定位问题。(日志具体的信息,我们看不懂)
APP出现ANR的原因:
1、线程阻塞的
2、内存不足
3、CPU满负荷
APP出现CRASH的原因:
1、空值指针
2、内存不足
3、CPU满负荷
******************************************************************
APP项目介绍参考思路:
我负责的app项目叫“百拍外卖”
主要模块有美餐、个人中心、留言等模块,主要的业务流程是用户在APP上下单后,商家后台能接收到订单并对订单进行处理。
测试前,先熟悉app的原型图和业务需求,确定测试点,app开发好后,先做一个冒烟测试,看看软件的基本功能是否可用,如果正常,我们再做功能测试,UI测试,兼容性测试,交叉事件测试,安装卸载测试等。
如果面试官问具体某个测试类型怎么,就要举例子加以说明。
比如:
UI测试:检查app的UI是否和原型图一致。
功能测试:能不能正常使用,浏览页面、发布任务、充值这些用户使用频繁的功能测试
兼容性测试:在不同的主流手机,比如:小米,华为,OPPO,vivo以及iPhone不同的操作系统上操作
用户体验测试:界面是否符合用户的使用习惯,按钮是否明确
安全性:敏感信息是否加密,能不能拦截篡改数据
性能测试:当多个用户同时使用时会不会出现卡顿,数据会不会出现丢失,使用monkey来测试他的稳定性
交叉事件:1.打开某个有数据交互的页面,切换到后台或者其他软件
安装升级卸载:1.在安装过程中断网测试 2.升级时突然断网会发生什么 3.卸载有没有残余
(补上app的8大测试点,并举例子说明)