APP测试——经典面试题分享

Posted 爱软测_bill

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了APP测试——经典面试题分享相关的知识,希望对你有一定的参考价值。

App作为现如今最广泛的应用程序,在各大移动平台上都有应用,如雨后春笋般交付到用户手中,因此 APP 测试的需求也越来越大。今天分享一下APP测试相关面试题。

01 APP测试与web测试的区别?

单纯从功能测试的层面上来讲的话,APP 测试、web 测试在流程和功能测试上是没有区别的。

相同点:

1.测试用例设计方法;

2.测试方法;

3.测试页面载入和翻页的速度、登录时长、内存是否溢出等;

4.测试应用系统的稳定性;

不同点

1.系统结构方面

web项目:b/s架构,基于浏览器的;web测试只要更新了服务器端,客户端会同步更新。

app项目:c/s结构的,必须要有客户端;app 修改了服务端,则客户端用户所有核心版本都需要进行回归测试一遍。

2.性能方面

web项目:需监测响应时间、CPU、Memory;

app项目:除了监测响应时间、CPU、Memory外,还需监测流量、电量等;

3.兼容性方面

web项目:浏览器(火狐、谷歌、IE等);操作系统(Windows7、Windows10、Linux等)。

app项目:设备系统:ios(ipad、iphone)、android(三星、华为、联想等) 、Windows(Win7、Win8)、OSX(Mac);手机设备可根据手机型号、分辨率、屏幕尺寸不同。

4.APP专项测试

1)干扰测试:中断,来电,短信,关机,重启等。

2)弱网络测试(模拟2g、3g、4g、5g,wifi网络状态以及丢包情况);网络切换测试(网络断开后重连、3g切换到4g、5g/wifi 等)。

3)安装、更新、卸载,中断、前后台切换。

安装:需考虑安装时的中断、弱网、安装后删除安装文件,全新安装、升级安装、第三方工具安装等情况;

卸载:需考虑第三方工具卸载、直接卸载,卸载后是否删除app相关的文件;

更新:强制更新、非强制更新、增量包更新、断点续传、弱网状态下更新;

中断:来电中断、短信中断、闹钟中断、手机锁定、手机断电、手机死机;

4)界面操作:关于手机端测试,需注意手势,横竖屏切换,多点触控,前后台切换。

5)安全测试:安装包是否可反编译代码、安装包是否有签名、权限设置,例如访问通讯录等。

6)边界测试:可用存储空间少、没有SD卡/双SD卡、飞行模式、系统时间有误、第三方依赖(QQ、微信登录)等。

7)权限测试:设置某个App是否可以获取该权限,例如是否可访问通讯录、相册、照相机等。

5.测试工具方面

自动化工具:APP 一般使用 Appium; Web 一般使用 Selenium;

性能测试工具:APP 一般使用Monkey、 JMeter; Web 一般使用 LR、JMeter;

02 APP闪退有哪些原因造成的?

原因有很多,举例:

1.缓存垃圾太多,Android系统的特性,如果长时间不清理垃圾文件,会导致越来越卡,甚至闪退。

2.运行程序太多,导致内存不足。

3.应用版本兼容问题,分辨率兼容问题。

4.APP的SDK与手机系统不兼容。

5.系统升级后,新版本不兼容老版本的API,返回对象失败,报空指针。

6.软件权限未开放。

03 APP日志如何抓取?

1.可以使用adb命令:adb logcat | find "com.sankuai.meituan" >d:\\test.txt

2.用ddms抓取,手机连上电脑,打开ddms工具;

3.在Android Studio开发工具中,打开DDMS;

04 常用的adb命令有哪些?

  1. 获取设备列表及设备状态:

    adb devices

  2. 安装应用:adb install 路径\\xx.apk, 安装应用;adb install -r 重新安装

    adb install
    adb install -r
  3. 卸载应用:adb uninstall <包名>, 后面的参数是应用的包名,区别于 apk 文件名

    adb uninstall

  4. 将 Android 设备上的文件或者文件夹复制到电脑本地:adb pull  <远程路径> <本地路径>

    adb pull复制 Sdcard 下的 pull.txt 文件到 D 盘:adb pull sdcard/pull.txt d:\\重命名:adb pull sdcard/pull.txt d:\\rename.txt

    ​​​​​​​

  5. 推送本地文件至 Android 设备:adb push  <本地路径> <远程路径>

    adb push推送 D 盘下的 ITester.txt 至 Sdcard:adb push d:\\ITester.txt sdcard/   (注意sdcard 后面的斜杠不能少)

    ​​​​​​​

  6. 结束和启动adb服务:adb kill-server /adb start-server , 结束 adb 服务/启动 adb 服务,通常两个命令一起用,设备状态异常时使用 kill-server,运行 start-server 进行重启服务。

    adb kill-serveradb start-server

    ​​​​​​​

  7. 打印及清除系统日志:

    adb logcat打印 Android 的系统日志adb logcat -c​​​​​​​

05 讲一下安卓 SDK中自带工具的功能?

  • ddms:Dalvik Debug Monitor Service,是 Android 开发环境中的Dalvik[虚拟机]调试监控服务。

  • monkey:Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。

  • uiautomator:是Eclipse自带的用于UI自动化测试工具,可仿真APP上的单击、滑动、输入文本等操作。

  • monitor:同uiautomator

  • adb:ADB的全称为Android Debug Bridge,是一种debug工具。

06 冷启动、暖启动、热启动、首屏启动

APP启动会发生多个事件,测试人员需要知道整个环节是否出现问题,需要了解到具体是哪个环节存在问题:

  • 冷启动:当进程不存在的时候,从进程创建开始到界面的展示过程;

  • 暖启动:有一部分资源已经存在,进程存在,相对于热启动要消耗更多资源。当用户退出应用程序时,进程还会存在,暖启动相较于冷启动只是少了进程的创建;

  • 热启动:大部分资源都在,只是应用之间的切换;

  • 首屏启动:第一屏加载完整;

标准:

  • 冷启动:需要5秒甚至更长;

  • 暖启动:需要2秒甚至更长;

  • 热启动:需要1.5秒甚至更长;

整个启动过程可以用adb工具进行分析,利用adb logcat获取启动数据,或者录屏,使用ffmpeg拆帧分析。

adb logcat

首先定义一个变量,这个变量填写用到的包名。

package=com.xueqiu.android

清除缓存数据:

adb shell pm clear $package

停止进程:

adb shell am force-stop $package

通过以上命令就做好了冷启动的环境,下面启动app并获取数据。启动App​​​​​​​

adb shell am start -S -W $package/.view.WelcomeActivityAlias-S表示启动之前先停止应用进程-W是表示等待对应的activity启动完成

获取数据:

bash adb logcat |grep -i displayed

07 安卓和IOS手机系统有什么区别?

两者运行机制不同:IOS采用的是沙盒运行机制,安卓采用的是虚拟机运行机制。

两者后台制度不同:IOS中任何第三方程序都不能在后台运行;安卓中任何程序都能在后台运行,直到没有内存才会关闭。

IOS中用于UI指令权限最高,安卓中数据处理指令权限最高

08 IOS和安卓的APP测试有什么不同?

1.多分辨率测试:Android端20多种,IOS较少。

2.手机操作系统:Android较多,IOS较少且不能降级,只能单向升级;新的IOS系统中的资源库不能完全兼容低版本中的IOS系统中的应用,低版本IOS系统中的应用调用了新的资源库,会直接导致闪退。

3.安装卸载测试:Android可以通过手机自带的应用市场或者是第三方的手机助手进行下载,下载和安装的平台和工具和渠道比较多;IOS主要有app store,iTunes和testflight下载。

4.支付方式:对于一些有内购功能的APP,Android直接调用第三方支付渠道完成支付;IOS需要先在APP store里绑定支付方式,然后通过APP store去完成支付操作。

5.消息推送机制:Android使用第三方或者自建平台进行消息推送;IOS的消息推送渠道由苹果官方提供。

09 Push消息如何测试?

1.检查Push消息是否按照指定的业务规则发送。

2.检查设置不接收推送消息时,用户不会再接收到Push消息。

3.如果用户设置了免打扰的时间段,检查在免打扰时间段内,用户接收不到Push。在非免打扰时间段内,用户能正常收到Push。

4.当Push消息是针对登录用户的时候,需要检查收到的Push与用户身份是否相符。一般情况下,只对手机上最后一个登录用户进行消息推送。

5.测试Push时,在开关机、待机状态下执行推送,消息及其推送跳转的正确性。

6.多条推送的合集的显示和跳转是否正确。

10 APP测试的主要内容有哪些?

功能测试

业务逻辑正确性测试:依据产品文档->测试用例编写。


兼容性测试

1.系统版本:Android:官方版本,定制版本;IOS:官方提供版本。

2.分辨率:720 * 1280 1080* 1920。

3.网络情况:2g 3g 4g 5g Wi-Fi。


异常测试:

1.热启动应用:应用在后台长时间待机;应用在后台待机过程中,手机重启。

2.网络切换和中断恢复。

3.电话信息中断恢复。


升级,安装,卸载测试

  1. 升级测试:临近版本升级(1.0->1.1);跨版本(1.0->....->2.2)

  2. 安装测试:首次安装;覆盖安装(同版本,不同版本覆盖);卸载后安装。

  3. 卸载测试:首次卸载;卸载安装后再卸载。

健壮性测试

  1. 手机资源消耗:cpu,内存。

  2. 流量消耗:图片,数据,视频。

  3. 电量测试。

  4. 崩溃恢复。

以上是关于APP测试——经典面试题分享的主要内容,如果未能解决你的问题,请参考以下文章

[转帖]分享Oracle的四道经典面试题,值得收藏

面试官最常问的面试题及答案,每1题都很经典

字节跳动10年面试经验!10道经典的软件测试面试题建议收藏

Java开发经典面试题分享,建议收藏

软件测试自动化测试面试题

一道经典面试题:字符串在Java中如何通过“引用”传递