APP测试

一、问: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大测试点,并举例子说明)

你可能感兴趣的:(APP测试)