04-App测试&Appium自动化
04-App测试&Appium自动化
001-安卓和ios测试有什么不同?
1、安卓应用商店渠道多ios只有appstore
2、安卓开源系统版本多,ios不开源版本少,兼容性测试相对来说,android要复杂 一些;
3、ios只支持单项升级 ,不支持降级,android灵活一些;
4、消息推送不一样,安卓可以绕过系统,ios不行
002-怎么测试APP的兼容性?
主要看客户这边对兼容性的要求高不高 如果要求不高的话,部门内有一些主流的安卓和iOS机型,大概七八部手机吧,平时主要用这些测试下就 行; 如果要求高的话,一般会购买一些第三方测试服务,像是WeTest、Testin之类的,他们的机型更多,而 且最终会提供一个测试报告
003-发现一个 bug,怎么定位是 APP 端还是服务端的问题?
抓包分析 通过对客户端进行抓包,分析服务端返回的数据是否符合预期,如 果服务端数据是正确的,那就是客户端的问题
日志分析 可以通过查看客户端/服务端的日志,分析有没有异常的日志信息, 从而确定具体原因
004-手机怎么抓HTTPS的包?
前提:保证安装手机跟电脑端同一个网络 1、首先需安装fiddler抓包工具 2、安装成功后对fiddler进行简单配置: 打开fiddler,Tools->Fiddler Options---勾选“Decrpt HTTPS traffic”,选中后Fiddler可以截获HTTPS请求---勾选“Allow remote computers to connect”,选中后允许别的机器把HTTP/HTTPS请求发送到Fiddler上---配置完成后,重新启动Fiddler(具体的步骤可不用这么细) 3、获取Fiddler所在机器的IP地址(运行cmd-->ipconfig,即可获得IP地址) 4、在手机中设置网络代理 打开手机设置 —> WLAN —> 选择手动代理--》代理服务器主机名:填写Fiddler所在机器的IP地址---》代理服务器端口:填写Fiddler设置的代理端口 5、上面配置好后就可以在Fiddler就可以抓取到移动端App应用的请求了 6、如果要抓取HTTPS的请求,那么要在Android手机安装Fiddler证书 打开手机中的浏览器,输入192.168.3.104:8888,这是你上面在手机中设置网络代理Fiddler的服务地址。如果出现响应页面说明访问代理服务Fiddler成功,就可以安装证书了。证书安装成功后就可以在fiddler上抓取HTTPS的请求了
005-手机APP更新测试,说下测试点?
移动端版本更新升级是一个比较重要的功能点,主要分为强制更新和非强制更新。
** 1. 强制更新需要测试的点有:**
a> 强制升级是否可以升级成功,功能是否正常
b> 升级后的数据是否正常
c> 强制升级的弹窗是否可以关闭
d> 强制更新的提示,包括未更新和已更新
e> 版本号对比等等
2. 非强制更新的测试点有:
1> 提示弹框的显示,是否可以选择暂不更新和立即更新;是否可以关闭弹框不显示
2> 选择暂不更新后,老版本是否可以正常使用
3> 选择立即更新后,更新能否成功,新版本号是否是最新版本;功能是否是最新的
4> 非强制更新弹框的提示频率,是每天一次还是每周一次,根据需求来测
5> APP设置里的版本更新,是否也能触发非强制更新
6> 用户选择继续使用老版本后,使用某些新版本才有的功能时,是否还有更新提示
7> 版本号对比等等
总结:强制升级一般用于版本改动较大,业务较重要,功能模块存在风险的情况;非强制更新适用于版本改动不是很大,对业务影响不大,不存在风险问题的。
006-弱网怎么测试的?
1、在Fiddler 中 Rules右键Customize Rules,打开 CustomRules.js 文档; 2、修改文档中,每上传或下载1kb数据需要的时间来模拟弱网场景(剪辑右图) 3、然后Rules->Performance-> 点击 Simulate Modem Speeds,开启弱网模拟。 通过以上3步就可以实现弱网测试场景的构造。 然后关注弱网场景中,比如测试会话、考勤,会不会产生多次考勤,是否存在异常
007-APP兼容性有做过测试吗?了解过云测平台吗?怎么使用的?
有,APP兼容性测试是关于应用是否可以在不同操作系统正常使用的测试,如果开发有Android和IOS两个平台的软件,那么在这两个平台都要做兼容性测试。如Android版本有4.1.1、4.2.1....,IOS版本有7.1.2\8.3\9.1等; 能否适配各种屏幕尺寸(Android系列:4.x、5.x市场占有率最高,IOS系列:iphone:3.5英寸、4英寸、4.8英寸、5.5英寸); 分辨率适配(分辨率不同,界面图标、文字大小会不同。保证主流分辨率下图标展示完整,文字不被遮挡); 一般测试兼容性像Android系统手机,选取市面上主流手机就行,例如:小米、华为、oppo、vivo等;ios系统手机就是iphone4、5、6、6s、6plus,或者借助云测试平台。
云测平台是基于云计算的一种新型测试方案。云测试提供一整套测试环境,测试人员利用虚拟桌面等手段登录到该测试环境,就可以立即展开测试。这将软硬件安装、环境配置、环境维护的代价转移给云测试提供者。服务商提供多种平台,多种浏览器的平台,一般的用户在本地用Selenium把自动化测试脚本编写好,然后上传到他们网站,然后就可以在他们的平台上运行Selenium脚本。
008-请列举安装和反安装测试的4个目标?
安装和反安装测试的目标有4点:
1.安装/卸载程序能正确运行;
2.程序安装正确;卸载时完全清除;
3.程序安装后能正确运行;卸载后系统的影响;
4.完善性安装后程序能正确运行。
009-你最近这家公司都用过哪些测试机?
1,6、8p、x、xmax,小米 6、华为荣耀、vivo,
2,也可以参考云测平台列举的机型(例如:wetest,testin)
3,大公司测试机多,小公司测试机少
4,根据埋点数据选购热门机型测试。
010-验证移动端兼容性时,你是怎么做的?
第一:我们公司有购买主流的手机设备,有覆盖android和ios的系统
第二:在测试时我主要是针对公司购买的设备来进行覆盖,会选择一个手机来在进行用例执行,进行功能测试的同时,会关注在这个手机上的兼容性问题。用例执行完毕后,我会在其他手机上针对这些功能模块和界面去进行快速的检查,查看是否有兼容性问题
第三:没有兼容到的设备和系统,会在测试报告中提出。
011-adb命令?
adb connect、adb devices、adb pull/push、adb shell、adb logcat
012-如何查看安卓 app 界面的 activity 和起始 activity
使用 pm 管理器查看包名 adb shell pm list package -f 将获取手机内所有 apk 对应的包名和路径 如果是 windows 可以后接 findstr,例如: adb shell pm list package -f | findstr douban
使用 am 管理器,查看包名 adb shell am monitor
使用 aapt 查看包名、界面名 aapt 是 sdk 自带的一个工具,在 sdk\builds-tools\目录下
以豆瓣 App 为例:
1.把安装包放到 aapt 目录下
2.从 cmd 中切换目录到 sdk\builds-tools\下
3.执行 aapt dump badging 运行后的结果中以下两行分别是应用包名 package 和 入 口 activity 名 称 package:name='com.tencent.qqmusic' launchable-activity: name='com.tencent.qqmusic.activity.AppStarterActivity'
013-使用过adb没?常用命令有哪些?
有用过,常用命令:adb logcat ,adb pull ,adb push , adb install/uninstall,adb shell,adb shell monkey
014-如何判断 app 的 bug 是客户端问题还是后台问题
这个要根据业务来,一般数据的问题前端的问题多些,一般做法是有问题提给前端开发, 他们知道是他们自己的问题还是后台返回的数据问题。 或者直接通过抓取接口的包,如果接口有问题,一般是后端程序问题。
015-Monkey 测试你是怎么做的?
使用命令,adb shell monkey -p com.lemon.lemonban --ignore-crashes --ignore-timeouts --throttle 1000 --randomize-throttle -s 3500 -v -v -v 100000 > D:\monkey_log.txt -p 后面加app包名;--ignore-crashes --ignore-timeouts是monkey测试的过程中遇到crash或者timeout的情况时忽略掉; --throttle 1000 --randomize-throttle 1s内随机时间;100000次随机事件次数;并且会输出日志到本地 检查日志有出现crash,anr异常,附上日志提交bug给到开发****
016-APP的安装、卸载、升级、弱网的测试点是什么?
1、安装的测试点:正常安装(平台下载安装、apk包直接安装、adb install命令安装)、异常安装(内存不足,安装中中断等),重复安装等;
2、卸载的测试点:正常卸载(桌面长按卸载、设置-应用卸载、adb uninstall命令卸载)、异常卸载(卸载中断),主要看卸载完成后,查看桌面图标是否存在,以及数据是否删除,卸载后能够继续安装
3、升级的测试点:提示信息、跨版本升级、升级后新功能 、旧功能是否正常,升级后数据是否丢失,升级过程中中断,能否下次继续升级,是否会导致死机等问题。
4、弱网测试点:在wifi/2G/3G/4G/5G/弱网下进行测试,关注数据是否会重复提交,以及页面是否友好,是否会出现crash和ANR的现象。
017-微信小程序怎么抓包?
抓包过程跟app一样。
1、保证安装手机跟电脑端同一个网络
2、对fiddler进行简单配置:端口号、勾选“Allow remote computers to connect”;如果是Https请求还需要勾选“Decrpt HTTPS traffic” 3、打开手机,进入wifi设置网络代理:填入电脑端ip、fiddler端口号
然后操作小程序就可以抓取到数据包了。如果是https请求,需要在手机中浏览器,输入电脑ip:端口号,访问获取fiddler证书并安装安装证书。证书安装成功后就可以在fiddler上抓取HTTPS的请求了。
当然也可以,把小程序在电脑端打开,然后在电脑上通过fiddler去抓。
018-iOS系统和Android系统的区别?
1> iOS 稳定性比较高,Android相对差一些,就看厂商的优化了
2> Android 因为开源而导致碎片化严重,每个厂商都定制了自己的 ROM
3> Android更容易出现信息泄露,权限问题,安全性漏洞等问题
4> iOS 的开发语言是 Swift 和 Objective-C,运行效率高,Android 的开发语言为 java ,运行效率低
5> 做兼容性测试时,Android 要做的设备比较多,iOS 相对少一些
019-如何模拟弱网做测试?
Fiddler/Charles
PC端安装,作为代理服务器,设置延迟参数,模拟不同的网络情况,缺点是只能模拟延迟,如丢包、带宽等等是无法支持的。
Network Emulator Toolkit 微软旗下的一款网络模拟的工具,PC端安装,可以支持延迟、丢包、带宽等等弱网配置,缺点是其只针对PC端的弱网设置,移动端设备还需连接上PC端的网络(在PC端创建wifi热点,移动端设备连接热点)。而且win10系统上会有一些BUG。
FaceBook ATC
FaceBook旗下开源的网络测试工具,需要部署在Linux系统上,移动端设备通过浏览器访问就可以切换不同的网络环境,还可以同时支持多台设备连接。缺点是部署难度较高,环境较为复杂。
腾讯QNET 腾讯wetest服务平台推出了一款针对App弱网测试工具,该工具无需ROOT手机,无需连接数据线,以独立app的方式,为用户提供给快捷、可靠、功能完善的弱网络模拟服务。官网地址:https://wetest.qq.com/product/qnet 缺点:目前已下架,要使用的话需要向官方申请
020-app测试上的H5和原生页面怎么区分?
1)断开网络,显示404或则错误页面的是H5
2)查看页面布局,a.在手机设置、开发者选项中开启显示布局边界功能;b.进入应用查看布局边界;c.原生应用可以看到各个控件的布局边界,H5只有整个页面的一个边界
3)长按页面,出现特殊标记、放大镜,复制,粘贴等等,甚至手机震动(Android),则表示是H5
4)打开新页面导航栏下面有一条加载的线的话,这个页面就是H5页面
5)APP顶部导航栏当中出现了关闭按钮或者有关闭的图标,那么当前是H5页面
6)下拉页面的时候显示网址提供方的是H5页面
021-请简要介绍一下移动应用(客户端)测试方法?
app测试主要针对安卓和ios两大主流操作系统软件来进行测试。
主要考虑的就是功能性,比如安装卸载升级测试、登录测试(密码登录、指纹登录、第三方登录、扫描登录等)、离线测试(缓存数据验证、推送测试)、中断测试(断电、断网、前后台切换、来电来短信中断等测试);
UI测试,需要保证用户界面与UI设计效果图一致,用户交互操作友好;
兼容性测试,测试不同操作系统、屏幕尺寸、分辨率,考虑主流手机的兼容验证;
安全性测试,软件权限测试,登录鉴权验证;
网络测试,3G/4G/WIFI不同网络情况验证,断网重连、弱网测试;
性能测试,长时间对app应用施压验证压力稳定性测试;对app进行流量、内存、电量、CPU监控测试;看应用是否正常运行
022-如何模拟弱网测试?
很多抓包工具都可以做到模拟网络情况,比如fiddler可以在“自定义规则”中设置发送/接受1KB数据需要 的时间来控制网络传输速率。
如果是网站还可以采用chrome开发者工具模拟弱网;
如果是手机app则可以在手机自身的网络设置里设置为2G/3G/4G/飞行模式。
023-弱网下等待页面加载超时时间一般多久?
每个公司可能会有不同,有些可能是 5 秒、7 秒,等待加载过程中出现菊花提示,如 果加载到 5-10 秒钟还没有加载好,就自动把它结束掉,并进入下一个页面(提示加载 失败请检查网络)。
024-如何去查看一个 APP 的错误日志?
a. 查看 APP 的包名
b. 通过报名查看 APP 的进程号
c. 通过进程号,过滤 adb logcat 中的错误日志
025-APP冷启动和热启动的区别?
冷启动:指 app 被后台杀死后,在这个状态打开 app,这种启动方式叫做冷启动
热启动:指 app 没有被后台杀死,仍然在后台运行(如按home键),通常我们再次去打开这个 app, 这种启动方式叫热启动。 热启动比冷启动速度更快。
026-安卓最新的版本是多少,iOS最新的版本是多少?
安卓目前最新的是Android12,其他还有11、10、9、8等
iOS最新的版本是iOS16,其他还有15、14、13、12等
我们部门机型比较少,所以安卓和ios系统都是只覆盖最近的3-4个版本
027-在做APP测试时,如何去获取APP的安装包?
公司内部有一个移动端包管理平台,开发写完代码后,会打包发布到包管理平台中。无论安卓还是iOS, 都可以通过手机浏览器访问包管理平台,然后点击不同系统、不同版本的安装包进行下载,在手机上点击安装就行。
028-怎么判断用户使用的APP机型?
如果有特定的用户,我们可以通过运营或者市场部门获得;或者通过做市场调查,获取大部分用户的使用机型; 如果是指大部分用户的通用机型,那么可以通过一些市场流量统计网站可以获得现在市面上主流的机型有哪些,我们就选取哪些机型做兼容性测试;
029-实时视频怎么写测试点?
音视频实时性(延时)、流畅性(测试视频卡顿率、渲染帧率)、主观画质(接收端的画面质量,质量等级越高,画面质量越好)、首帧出图(从进入会议到看到对端画面的时间,单位:ms,首帧出图越快越好)、音画同步(音画同步反映视频和音频的同步程度),还有就是弱网、兼容性、性能测试;
030-做兼容性测试时,如何选择机型?
公司内部有一些客户端统计数据,可以看到APP用户里,哪些机型占比最高,主要选择一些主流机型就行
比如iPhone12/13、华为p40、小米11、OPPO、vivo这些。 另外每年也会购买一些新出的机型。
031-Android APP 内存不足时, 系统如何结束进程获得内存?
系统优先结束被挂起(暂停)的进程,释放内存
1.先回收与其他Activity或Service/Intent Receiver无关的进程(即优先回收独立的Activity)
2.再回收处于“Stopped”状态的其他类型Activity(在背景等待的Activity)。很久没有使用的Activity优先回收(比较官方的说法是“根据LRU算法...”)
3.还不够?回收service进程
4.快不行啦,关掉可见的Activity进程
5.关闭当前的Activity
032-android和ios测试区别?
1.Android长按home键呼出应用列表和切换应用,然后右滑则终止应用;
2.多分辨率测试,Android端20多种,ios较少;
3.手机操作系统,Android较多,ios较少且不能降级,只能单向升级;新的ios系统中的资源库不能完全兼容低版本中的ios系统中的应用,低版本ios系统中的应用调用了新的资源库,会直接导致闪退(Crash);
4.操作习惯:Android,Back键是否被重写,测试点击Back键后的反馈是否正确;应用数据从内存移动到SD卡后能否正常运行等;
5.push测试:Android:点击home键,程序后台运行时,此时接收到push,点击后唤醒应用,此时是否可以正确跳转;ios,点击home键关闭程序和屏幕锁屏的情况(红点的显示);
6.安装卸载测试:Android的下载和安装的平台和工具和渠道比较多,ios主要有app store,iTunes和testflight下载;
7.升级测试:可以被升级的必要条件:新旧版本具有相同的签名;新旧版本具有相同的包名;有一个标示符区分新旧版本(如版本号), 对于Android若有内置的应用需检查升级之后内置文件是否匹配(如内置的输入法)
033-发现一个bug,如何定位是APP端还是服务端的问题?
A、抓包分析,对接口进行抓包分析,如果请求里的参数出现错误,一般都是客户端bug;如果请求正常 而响应是错误的,那就是服务端的bug
B、日志分析,还可以通过查看客户端/服务端的日志,分析有没有异常的日志信息,从而确定具体原因
034-你对adb命令熟悉吗?能举例说一下用过哪些命令么?
Adb pull 从客户端拉取数据;
Adb push 推送数据到客户端;
Adb install 安装;
Adb uninstall 卸载对应包名的软件;
Adb shell 进入客户端;
Adb device 查看设备是否连接;
Adb logcat 导出日志。
035-为什么要测试前后台切换?
需要注意在这个过程中数值后是否会显示不正确
注意页面的元素是否显示正常
app切换到后台数据会保存,回到前台会重新渲染。需要注意数据是否会为空
存在一些重新返回前台需要请求数据的页面,需要注意十分会重复发送请求,是否会crash
036-你有使用过monkey?怎么做的?
使用命令,adb shell monkey -p com.lemon.lemonban --ignore-crashes --ignore-timeouts --throttle 1000 --randomize-throttle -s 3500 -v -v -v 100000 > D:\monkey_log.txt -p 后面加app包名;--ignore-crashes --ignore-timeouts是monkey测试的过程中遇到crash或者timeout的情况时忽略掉; --throttle 1000 --randomize-throttle 1s内随机时间;100000次随机事件次数;并且会输出日志到本地 检查日志有出现crash,anr异常,附上日志提交bug给到开发
037-OA项目商店下载不了,内部是怎么下载的(包括安卓和iOS)
android 是通过开发提供APK包进行安装的;iOS的话 我们是给开发UDID的编号,让开发帮忙添加到开发者账号,然后就是可以安装开发提供的测试版本了。
038-手机软件测试的主要有哪些方面?(从APP、嵌入式H5角度考虑)
主要考虑的就是功能性、兼容性、稳定性、易用性(也就是人机交互)、性能。 1功能:考虑安装、卸载、升级、业务的功能测试、UI界面的检查等,出现问题最多的也就是特殊符号、边界值、按钮之类的。 2兼容性:考虑手机的版本、型号、分辨率。不同的版本是存在差异的,一般低版本容易出现问题。、 3稳定性:是否有闪退、系统崩溃、没响应之类的问题。 4易用性:界面是否吸引人、容易理解、界面整洁、简单、无错别字。 5性能:查看CPU占用、内存占用、电池温度等。app后台长时间运行的耗流量,耗电量。 7网络:网络切换,网络信号强,弱下的运行情况。
039-monkey命令怎么使用的
在功能测试基本稳定的情况下,我会去考虑用monkey在做稳定性测试,我会在下班的时候,去执行Monkey命令,让脚本执行十几个小时,第二天来上班的时候,查看monkey的日志信息,统计日志中出现ANR/crash/Exception的情况,并提交bug到禅道。开发修复后,也会通过脚本执行来验证ANR/crash/Exception是否修复成功。
040-APP如何用工具弱网测试?
1)打开Charles-》Throttle settings
2)设置网络:设置2/3G网络环境,设置上下行带宽
- 把手机网络设置代理为配置了Charles的电脑IP和对应的端口;
041-有做过H5网页的测试吗?
我们的APP里某些页面是H5做的,测的时候就是通过APP界面操作来测的,没有单独对H5做过测试。
042-有没有做过APP的性能测试,怎么做的?
app的性能测试分为两种:
1、先区分哪些接口是与服务端交互,接口的数据与服务端有交互时,可以直接用JMeter对服务器进行压测,这块是跟web的性能测试是一样的原理 2、APP前端性能测试,通过GT工具去监控手机的CPU、内存、流量、电量、内存消耗、流畅度、稳定性等指标
043-adb 可以用在ios手机上不?
不可以,是Android 调试工具
044-怎么去用monkey对微信小程序进行稳定测试
执行monkey命令前,先进入到微信小程序界面,然后通过adb连接设备,再执行命令:adb shell monkey -p com.lemon.lemonban --ignore-crashes --ignore-timeouts --throttle 1000 --randomize-throttle -s 3500 -v -v -v 100000 > D:\monkey_log.txt monkey执行完毕后检查日志有出现crash,anr异常,附上日志提交bug给到开发。
045-怎么去抓app的系统日志?
使用adb 将手机端和电脑端链接,输入adb logcat 命令进行日志打印抓取
046-刷抖音时一片空白,如何去排查问题?
检查客户端网络是否有问题,可以查看其他 APP 能否正常使用
检查是否为版本问题,可以换个操作系统(安卓、ios),或者换个其他软件版本试试
检查是否为兼容性问题,可以换个手机试试
抓包分析,如果 APP 没有向服务器发送请求,或者请求参数不对,就是 APP 的问题; 如果服务端响应数据不对,就是服务端的问题
047-APP更新测试你是怎么做的?
1、更新方式:应用内检查版本更新、第三方应用商店更新
2、强制更新&非强制更新 1)更新的提示信息是否正确、完整。 2)更新的提示弹窗能否被关掉。 3)非强制更新,选择不更新,软件是否正常使用;
4)强制更新时,退出进程再打开软件,是否仍然进入强制更新
5)点击确定更新按钮,是否能更新成功。 3、更新完毕,检查版本号是否正确?旧数据能否正常使用,数据是否正确?新功能是否正常使用?
4、升级后版本使用情况:重点测试新功能;老功能需做回归
048-app对于不稳定偶然出现anr和crash时候你是怎么处理的?
app偶然出现anr和crash是比较头疼的问题,由于偶然出现无法复现步骤,这也是一个测试人员必备的技能,需要抓日志。查看日志主要有3个方法:
方法一:app开发保存错误日志到本地 一般app开发在debug版本,出现anr和crash的时候会自动把日志保存到本地实际的sd卡上,去对应的app目录取出来就可以了
方法二:实时抓取 当出现偶然的crash时候,这时候可以把手机拉到你们app开发那,手机连上他的开发代码的环境,有ddms会抓日志,这时候出现crash就会记录下来日志。 尽量重复操作让bug复现就可以了 也可以自己开着logcat,保存日志到电脑本地 adb logcat | find "com.sankuai.meituan" >d:\hello.txt
方法三:第三方sdk统计工具
一般接入了第三方统计sdk,比如友盟统计,在友盟的后台会抓到报错的日志
049-针对 App 的安装功能,写出测试点?
正常安装测试,检查是否安装成功。
APP版本覆盖测试。例如:先安装一个1.0版本的APP,再安装一个高版本(1.1版本)的APP, 检查是否被覆盖。
回退版本测试。例如:先装一个 2.0 版本的 APP,再安装一个 1.0 版本的 APP,正常情况下版 本是可以回退的。
安装时内存不足,弹出提示。
根据安装手册操作,是否正确安装。
安装过程中的意外情况(强行断电、断网、来电话了、查看信息)等等,检查会发生的 情况。
通过‘同步软件’,检查安装时是否同步安装了一些文件。
在不同型号、系统、屏幕大小、分辨率上的手机进行安装。
安装时是否识别有 SD 卡,并默认安装到 sd 卡中。
安装完成后,能否正常启动应用程序。
安装完成后,重启手机能否正常启动应用程序。
安装完成后,是否对其他应用程序造成影响。
安装完成后,能否添加快捷方式。
安装完成后,杀毒软件是否会对其当做病毒处理。
多进程进行安装,是否安装成功。
在安装过程中,所有的提示信息必须是英文或者中文,提示信息中不能出现代码、符号、 乱码等。
安装之后,是否自动启动程序。
是否支持第三方安装。
在安装中点击取消。
050-介绍一下app兼容性测试?
首先分安卓与IOS系统。
安卓版本中又分不同手机品牌型号,系统版本、屏幕大小、分辨率的适配
IOS系统分苹果不同的版本型号与屏幕大小、分辨率的适配
051-微信扫描二维码扫描失败是什么原因?
以下情况都有可能出现扫描失败:
1、扫描模糊的二维码;2、扫描失效/过期的二维码;3、扫描涂改过的二维码;4、近距离/远距离扫描二维码;5、阴暗/正常/高亮环境下;6、扫描的二维码内容被更换过,但没有刷新重新取获取;7、扫码跳转过程出现中断(扫码时来电/来信息/邮件等);8、手机弱网/无网络情况下扫描;9、二维码3个定位黑框没有扫全;等等....
052-3、手机测试主要分为哪几个领域
手机软件测试大致分为下列测试。
1、功能测试:手机软件的基本功能。
2、稳定性测试:大多数手机应用需要保证能够稳定运行一定时间,而且在应用的运行状态发生切换后需要继续保持当前的状态,不出现闪退。
3、性能测试:这部分分为两个方面,一是后台服务的性能测试,二是应用自身的性能情况。
4、安全测试:应用有没有做混淆,敏感数据是否存在内存卡上等。
5、地理位置定位测试:大多数业务软件都支持获取用户的地理位置信息,方便本地业务的定制。
6、应用升级兼容性测试:需要保证应用能够在升级或跨版本升级后一些关键数据得以保留,而不必用户重新设置。
7、设备兼容性测试:随着安卓设备的快速分化以及iOS设备的缓慢分化,应用需要适配在不同配置的硬件平台上。
8、耦合应用测试:大多数应用需要跟其他应用进行交互,从而达到“社交化”或“分享”以及“支付”的功能。
053-如何彻底的停止一个程序的运行?把它停止掉?
1、可以通过adb shell获取包名,然后kill杀掉进程
2、可以通过查看进程,找到指定的进程kill掉
054-以往项目怎么做安卓性能测试,如何确认性能测试通过?
安卓 app性能测试,可以说下自己有用过GT工具去获取性能指标包括cpu、流量、电量、内存耗用,获取这些数据与竞品做对比,差距差不多就表示性能测试通过
055-APP测试的稳定性?
了解什么是稳定性,这项工作一般是在软件产品基本功能无缺陷后进行的一项测试工作。一般使软件系统满足持续运行模式,进行正常情况、临界情况的测试,看系统是否有异常。 一般使用monkey工具,向系统发送随机事件流,如按键输入、触摸屏输入、手势输入等,实现对软件的稳定性测试
056-如果明确是服务端的问题,你会具体怎么分析这个问题?
那就会通过查看服务器上的错误日志进行分析。
057-APP如何用工具模拟弱网测试?
答:(1)在Fiddler 中 Rules右键Customize Rules,打开 CustomRules.js 文档;
(2)修改文档中,每上传或下载1kb数据需要的时间来模拟弱网场景(剪辑右图)
(3)然后Rules->Performance-> 点击 Simulate Modem Speeds,开启弱网模拟。
通过以上3步就可以实现弱网测试场景的构造。
然后关注弱网场景中,比如测试会话、考勤,会不会产生多次考勤,是否存在异常
058-如何查看一个 APP 的错误日志?
a. 查看 APP 的包名
b. 通过报名查看 APP 的进程号
c. 通过进程号,过滤 adb logcat 中的错误日志
059-H5测试是怎么做的?
我们平时说的H5测试就是HTML5,就是:移动端WEB页面。 我们以往的APP是使用原生系统内核的,相当于直接在系统上操作,是我们传统意义上的软件,更加稳定。H5的APP先得调用系统的浏览器内核,相当于是在网页中进行操作,较原生APP稳定性稍差。h5最大的优点是可以跨平台,开发容易。APP的话需要用ANDROID的语言和IOS的语言各自写,H5只要开发一套 。 简单的说:H5是基于web,native基于客户端。
H5测试应该从哪些方面考虑?
1、业务逻辑相关 除基本的功能测试之外,H5页面的测试,需要关注以下几点:
1.1 登陆 目前H5与native各个客户端都做了互通,所以在测试的时候要注意两点:
A、若客户端已登录,那么进入H5后仍然是登录状态。
B、若客户端未登录,进入H5,点击对应按钮OR链接,如果需要登录,须拉起native登录。若取消登录,是否可再次拉起登录,或者停留在的页面是否有对应的登录提示。
1.2 翻页 遇到翻页加载的页面,需要注意内容为1页或者多页的情况。
A、数据分页加载时,注意后续页面请求数据的正确。 ps:这个需要注意在快速操作场景中,请求页数是不是依次递增,快速操作 (如第一页尚未loading出来的时候仍然继续上拉操作)时是否发出去对应的请求了。
1.3 刷新与返回
A、下拉刷新是否仍然处于当前页面。
B、用户主动点击刷新按钮是否仍然处于当前页面。
C、点击返回与back键,回退页面是否是期望页面
1.4 数据的请求与返回:
A:提交了数据,数据是否正确的整理到后台管理系统
B:发送了请求,是否正确返回你要求的数据:比如我们常见的结婚请帖,是否有收到回执?
2、H5适配相关 H5的适配其实比客户端的相对来说,要少一些,手机品牌之间的差异不大,所以不用太多关注,最容易出现问题的是android2.3系统,这个要特别关注下:
A、大屏(如7201280,重点关注页面背景是否完全撑开页面,刷新是否有抖动)、小屏手机(如320480,重点关注下弹框样式和文案折行)
B、android2.3、android4.X随机找一个即可。
C、ios5、ios6、ios7。
D、浏览器上也要能够进行完美展示。
3、安全相关
3.1 明确投放渠道都有哪些 如独客、主客、wap,是否对未投放渠道做了限制,直接通过url请求是否拦截等
3.2 是否需要接入支付宝实名认证涉及到金钱相关,如天猫积分,红包等,为了防刷,一般都需要判断是否支付宝实名认证。
4、体验相关
4.1 资源相关
A、页面中有图片的话,淘宝那边建议图片一般不大于50kb,本着一个原则,尽量缩小图片。
B、资源是否压缩、是否通过CDN加载。---CDN是什么?---就近地区访问,服务速度会更快。
C、如何保证二次发布后有效更新。
D、对于类似公司名称、offer名称长度的问题,在手机上最好能根据屏幕大小自适应而不是截断,因为手机上是不会有tips可以看的。截断导致大屏幕下也只能显示几个字,交互不好
4.2 流量
A、对于一些不会变化的图片,如游戏动画效果相关图片,不需要每次都请求的东西,做本地缓存。
B、数据较多时是否做了分页加载。
4.3 页面展现时间
A、关注页面首屏加载时间。
4.4 页面提示
A、弱网络下,数据加载较慢,是否有对应的loading提示。
B、接口获取异常时,提示是否友好。
C、刷新页面或者加载新内容时页面是否有抖动。
4.5 手机操作相关
A、锁屏之后展示页面。
B、回退到后台之后,重新呼出在前台展示。
C、手指滑动是否流畅,手指点击时焦点是否定位正确,不同机型会不一样。焦点地位后点击是否灵敏。
4.6 弱网络体验
5、埋点数据检查 与前端一起确认埋点情况。
H5测试的工具是什么?
1:手机---直接扫描二维码打开链接,进行测试。
2:谷歌浏览器---调试成手机模式来进行测试。 下载谷歌浏览器,点击浏览器右上角“三”图标,在下拉选项中选择“更多工具”-“开发者工具”
060-App端测试的抓包流程步骤?
1、打开Fiddler,设置代理,并允许远程连接
2、手机连接电脑的热点网络,或者同在一个局域网内
3、手机网络连接中,设置网络代理,IP是电脑的同网段IP地址,端口是8888,用手机下载一个fiddler的令牌;
4、打开网速模拟模式开关(Rules → Performances → Simulate Modem Speeds );
5、手机访问APP,或者用手机浏览器访问网络,观察功能响应或者页面刷新速度。
061-iOS 系统和 Android 系统的区别?
1)iOS 稳定性与安全性高,iOS 可能没有系统性问题,只是可能有屏幕分辨率兼 容性问题。
2)Android 因为开源而导致碎片化严重,每个厂商都定制了自己的 ROM。
3)Android 容易信息泄露,各手机厂商都会对 Android 进行修改,有权限等安全 性问题。
4)流畅度上,Android 采用虚拟机运行机制,这种机制导致运行一段时间后就容易 出现卡顿;ios 几乎不会出现卡顿现象。
5)性价比上,iso 系统拥有自研专利,并且目前为止禁止其他生产厂商使用; Android 系统是 Google 公司提供的免费、开源系统,Android 比 IOS 开放更多的应 用接口 API,Android 的性价比要远高于 IOS。
062-APP和小程序有什么区别?
063-你上一家公司***APP 项目里面开发和测试人员的比例分配是多少?
我上一家公司,加上我,一共是四个测试,一个测试的小组长加上三个组员, 前端开发大概是八九个人左右,后端开发大概是四五个人左右,产品是三个人。
064-安卓和ios测试不同之处?
个人感觉测试过程中,主要的区别就是在程序做适配(兼容性)的时候,机型的区别,android的手机市面上比较多比较杂,一般选取主流的机器来做测试,像华为、小米等。
ios主要是iPhone5以上的。异常日志获取像Android通过adb logcat;ios可以通过itools工具;发布平台Android有多个应用商店,ios只能是上架苹果应用市场;
065-app的日志如何抓取?
app本身的日志,可以用logcat抓取 adb logcat >d:\hello.txt 也可以用ddms抓取,手机连上电脑,打开ddms工具,或者在Android Studio开发工具中,打开DDMS
066-请说明Android手机和IOS手机,系统有什么区别?
两者运行机制不同:IOS采用的是沙盒运行机制,安卓采用的是虚拟机运行机制;
两者后台制度不同:IOS中任何第三方程序都不能在后台运行;安卓中任何程序都能在后台运行,直到没有内存才会关闭。 IOS中用于UI指令权限最高,安卓中数据处理指令权限最高。
067-IOS的命令 了解过吗 ?
在iOS中,常用的命令包括:
ls - 列出当前目录中的文件和文件夹。
cd - 切换到另一个目录。
mkdir - 创建一个新的目录。
rm - 删除文件或目录。
cp - 复制文件或目录。
mv - 移动或重命名文件或目录。
pwd - 显示当前目录的路径。
ssh - 通过SSH连接到另一台计算机。
要在iOS设备上执行命令,您需要通过终端或SSH连接进行操作。一些常见的用于操作iOS设备的命令包括:
ssh - 通过SSH连接到iOS设备。
scp - 从iOS设备复制文件到另一台计算机或从另一台计算机复制文件到iOS设备。
ideviceinstaller - 安装和卸载iOS应用程序。
idevicescreenshot - 捕获iOS设备的屏幕截图。
idevicesyslog - 显示iOS设备的系统日志。
iproxy - 转发iOS设备的端口。
idevicediagnostics - 运行iOS设备的诊断测试。
idevicedebug - 调试iOS应用程序。
请注意,这些命令需要在设备上安装并使用专门的工具和驱动程序,例如libimobiledevice。
068-你们的oa管理系统版本迭代的时间是多久;
可以先说没统计过,如果面试官一定要说具体的迭代次数,那依据当前项目所在公司的任职时间,按照多久一个迭代版本,推算大概的迭代次数。 多久迭代不一定的,一般是问题反馈积累到一定程度或者产品这边要做新模块设计,就会开始做项目开发计划; 短的话,2周开发测试完毕上线一个版本;长的话就个把月。****
069-请描述android中ANR的现象并列举发生ANR的原因?
粗略的来分会有两种情况导致ANR:
第一类:dispatchTimeout 输入事件分发超时,一般是由于主线程在5秒之内没有响应输入事件。
第二类:BroadcastReceiver没有在系统设定的时间内完成并返回。
再细分的话ANR可能是由主线程导致也可能是由非主线程导致:
由于主线程导致的情况:
1.耗时网络访问
2.当有大量数据读写操作时再请求数据读写
3.数据库操作(比如其他大数据量应用访问数据库导致数据库负载过重时)
4.硬件操作(比如Camera)
5.调用thread_join() / Sleep() / Wait() 或者等待locker的时候
6.Service binder数量达到上限
7.在system_server中发生WatchDog ANR
8.Service忙导致超时无响应
由于非主线程导致的情况:
1.非主线程持有lock,导致主线程等待lock超时
2.非主线程终止或者崩溃导致主线程一直等待
070-给你个bug怎么定位是服务器端的问题还是app?
1、先看看是否是界面显示问题,是的话就是app
2、抓包看一下请求数据
a、没有请求数据,则是app的问题
b、请求数据有问题,则是app的问题
c、请求数据正常,响应结果有问题,则是服务器端的问题
d、请求数据正常,没有响应结果,则是服务器端的问题
071-列举三个在移动设备测试中可能会遇到的特定挑战,并给出解决方案
可以从兼容测试、弱网测试、性能测试来说; 兼容测试设备不足,可以借助一些云测平台来辅助测试,例如testin 弱网测试比较容易出线上bug,利用fiddler工具模拟弱网,特别针对金额提交的请求重点关注; 移动端性能测试,目前公司中暂未涉及测试,但软件运行会存在一些大耗电量的情况
072-说一下小程序测试和app测试的区别?
1、app有安装、卸载、升级测试等,操作麻烦,且占用手机空间;小程序无序安装,即用即走;
2、原生app需要注册账号才能登录系统,小程序可以直接使用微信账号授权登录,不需要操作注册、登录过程;
3、app开发周期长,消耗大,成本高,小程序周期短,开发快,成本低;
4、app如果要支持不同平台(Android 、IOS)需要单独开发,小程序一个版本可以兼容各种手机平台;
5、app需要子集推流、成本高、效果查,小程序拥有超高的微信用户流程;
6、app的稳定性好,性能好,效果流畅,小程序在性能没有app好。
073-H5架构和原生的区别?
1、原生的页面运行速度快,比较流畅。H5页面相对原生的运行性能低,特别是一些动画效果有明显卡顿。
2、H5页面的很多交互都没有原生的好,比如弹层、输入时候的页面滑动 等。H5的效果相对比较low,没有原生的好看,也没有原生默认的动画等效果。 3、原生APP修改页面要重新发布,等待审核(现在iOS的审核速度已经提高到1天到2天)。H5页面的修改 可以随时上线,不用等待审核。
4、H5跨平台,iOS和android需要各自开发。相对原生,H5开发成本低。
5、原生APP能很好的使用设备底层功能,如摄像头、方向传感器、重力传感器等。H5有所限制。比如android里的H5对摄像头和方向传感器就需要再多做一些处理。再比如你不想用系统默认的手机相册样式,就要用原生来开发了。
6、H5过度依赖于网络,网络不好的时候卡到不行,并且刚打开看到的都是一个空白页面。默认的H5页面每次打开都会重新请求页面(可以做缓存,不过基本很少有做的)。 H5比原生更费流量,H5除了加载html还要加载js、css这些资源文件,相比原生网络加载速度慢。
074-弱网测试工具QNET在什么情况下使用,目的是什么,怎么分析结果
移动端产品的使用并非完全都是在流畅的wifi环境,大部分用户主要使用4G,3G,2G等网络,另外因为移动端产品使用的场景多变,如进公交,上地铁,坐电梯,使得弱网测试显得尤为重要。考虑到各种场景的客户端展示及容错,提升产品的印象和用户体验,提高产品的健壮性,弱网测试必不可少。
弱网测试是为了保证测试数据的一致性和准确性
在弱网测试环境下:
1、页面响应时间是否可接受,关注包括热启动,冷启动时间,页面切换,前后台切换,首字时间,首屏时间等
2、页面呈现是否完整一致
3、超时文案是否符合定义,一切信息是否显示正常
4、是否会有超时重连
5、大流量时间风险:是否会在弱网下进行更新Apk包,下载文件等大流量动作
075-android 和ios 测试区别?
1、安装测试 测试版本安装
Android非常简单,提供一个apk包,就可以在任何设备上安装这个APP并进行测试了;
iOS比较复杂一些,没有经过苹果审核是不允许安装的;所以需要安装测试版本,就需要采取一些额外的手段,比如手动添加UDID到开发者账号,或者使用testflight工具,具体操作,可以见之前的一篇文章【附上之前文章的链接】 线上版本安装
Android可以上传的应用商店比较多,比如谷歌商店,360商店,安智市场等,还有各大应用管家都可以上传并提供给广大android用户下载使用;所以,测试人员对Android应用的线上测试需要覆盖所有支付的渠道;
iOS众所周知,只有一个苹果官方的App Store可以下载安装应用,其他的渠道都是不允许的。因为需要上传到线上发布,是需要苹果进行审核和授权的,而且一般审核周期要等到3天-2周不等。所以,iOS测试人员,需要等到苹果审核通过之后,从App Store上下载应用,验证线上版本的可用性。 2、兼容性测试 Android
因为系统被开源,很多不同厂商在这个基础上二次进行开发,所以导致出现的操作系统类型以及版本都非常多,比较常见主流的有:华为、小米、OPPO,Vivo等,还有很多比较小众非主流的操作系统;而且每个系统都有很多的版本,包括大版本和小版本;以及每个厂商的手机屏幕大小也差异比较大,所以Android APP的兼容性测试就会比较复杂一些; iOS
就只有单一的苹果系统,虽然也经常更新版本,但是随着苹果官方系统版本的升级,一般我们只需要维护最新的几个主流版本的兼容性测试即可;选取的主流系统版本,再覆盖iOS的几款主流的屏幕大小的机型,兼容性测试会相对来说简单很多。 2、升级测试
升级测试ios限制也比Android多一些。
iOS有严格的降级限制,最开始只能单向升级,不能降级;虽然松懈了一点可以做降级操作,但是也限制了特定机型的最低降级版本,比如iPhone X最多只能降到iOS 11.2,iPhone 5最多可以降到iOS 6.1.3,之所以有这个限制其实是因为通常新的ios系统版本中的资源库不能完全兼容低版本中的应用,低版本ios系统中的应用如果调用了新系统中的资源库,有时会直接导致闪退(Crash)出现;所以,我们做iOS的升级测试的时候,基本只需要关注对应的版本之间的升级即可。
Android系统的降级限制没有那么严格,通过一定的工具都可以降级成功。 3、权限测试
Android众所周知的就是Android的个人信息泄露比较严重的,比如很多app在安装时会要求很多权限,Android系统会提示是否允许获取手机的某个权限,但是即使用户不给,Android也有各自手段偷偷的获取这些权限,所以Android APP的这种权限测试不是很严苛;
而ios一般情况下权限管理的很严格,用户没有同意的权限,APP是一定没有办法绕过并获取的,所以应用不会去获取一些没有意义的权限;而且应用要上线苹果商店时,苹果官方的审核机制也是比较严格,经常会出现审核不通过的情况。所以ios的权限一般情况下会要的很少。因此,iOS测试的权限场景较少,但是会很严格。 4、应用实现的机制
Android采用的虚拟机机制,而iOS采用的是沙盒机制。
虚拟机机制的特点是:
每个应用程序都在独立的虚拟机中,这些独立的虚拟机实例都是一个独立的进程空间。
跟linux内存管理很相似,是真正的多进程管理,虽然可用内存最后看着少,但是实际上很多程序已经分配了一定的内存了,在唤起时不会再次分配一次,而且已经有了缓存,启动和响应会比较快。
沙盒机制的特点是:
应用程序在自己的沙盒中运作,但是不能访问任何其他应用程序的沙盒;
应用之间不能共享数据,沙盒里的文件不能被复制到其他应用程序的文件夹中,也不能把其他应用文件夹复制到沙盒中;
3)苹果禁止任何读写沙盒以外的文件,禁止应用程序将内容写到沙盒以外的文件夹中;
5、安全机制
iOS安全机制主要通过一下两个方面来实现:
通过刚刚上面讲到的**“安全沙箱**” 机制来实现安全机制。应用之间数据和文件不能共享;
通过对代码签名,Apple需要所有开发人员对自己的iPhone应用程序使用数字签名技术。这个签名用来标识应用程序的开发者以及保证应用程序在签名之后不被更改和损坏。开发者证书由Apple提供(这是与android最大的区别,android是自签名),有以下两类证书:
Developer Certificate :用于本机测试
Distribution Certificate :用于100台设备以内的测试和共享;App Store用于发布应用程序所有的可执行文件、库文件都需要Apple签名后才可以运行在iOS中。
Android安全机制通过以下两个方面来实现:
虚拟机机制,每一个Android应用程序(apk文件)会在安装时分配一个独有的linux用户ID(即一个用户id识别一个应用程序),使其不能与其他应用程序进行接触。这个用户ID在安装时分配,并在该设备上一直保持同一个数值。所有存储在应用程序中的数据都会赋予该应用程序的用户ID,使其他应用程序无法访问这些数据。
代码签名,但是跟iOS不一样的是,Android采用自签名机制,不需要权威机构签名和审核,完全由用户自行判断是否信任该程序。
076-APP的测试资源准备?
可以从以下方面来讲:
1)ios设备、android设备(选取市面上主流手机产品)
2)支付宝/银联支付的项目,需要提前申请支付宝/银联账户等等
3)有秒杀专题的题目,需要规划秒杀时间表;
4)有优惠券使用的项目,需要添加优惠券数据;
077-常见的 adb 命令有哪些?
查看当前连接的设备: adb devices
安装软件: adb install 路径\xx.apk
卸载软件: adb uninstall
从电脑上发送文件到设备: adb push
adb push C:\test1.txt /sdcard/
从设备上下载文件到电脑: adb pull
adb pull /sdcard/test1.txt D:
实时获取日志: adb logcat -v time > D:\mylog.log
登录终端设备 shell: adb shell
查找包名/活动名: adb logcat | findstr START (脚本中, cmp= 后面的值就是 包名/activity 名称)
启动 APP :adb shell am start -n packageName/activity
关闭 app 语法: adb shell am force-stop 包名
监控 APP 启动时间 :adb shell am start -W packageName/activity
Monkey 命令: adb shell monkey -v -p mypackage 50
078-用过monkey吗?用monkey来做什么?发现过什么问题吗?
monkey是用来对安卓APP进行稳定性测试的一个工具;
之前用monkey测APP的稳定性时,发现过一些crash的情况,当时通过查看monkey日志,找到了一些 空指针异常(NullPointException)报错,将报错发给了开发,后来开发判断是因为兼容性问题,修复 后就没问题了。
079-怎么判断手机上的应用是否安装成功?
app安装完后,手机屏幕上会出现该app的图标,点击后可以正常打开并使用该程序,即为应用程序安装成功
080-ADB 的命令常见的有哪些?
adb connect、adb devices、adb pull/push、adb shell、adb logcat
081-App 崩溃(闪退),可能是什么原因导致的?
1、手机本身内存不够。 2、内存泄漏,程序没有及时释放内容。 3、权限问题,也可能导致闪退。 4、弱网络情况下,服务端响应不及时,可能倒是闪退。 5、设计不合理,1个接口,拉取的数据量太大,请求结果会很慢,且占用大量内存,APP会闪退(比如,我们现在做的记录仪,进入相册列表时候,要拉取所有图片,拉取太慢了,就闪退了)。 6、不同APP间切换,交互测试,可能会出现闪退。
082-Android 和 ios 测试区别?
App 测试中 ios 和 Android 有哪些区别呢?
1.Android 长按 home 键呼出应用列表和切换应用,然后右滑则终止应用;
2.多分辨率测试,Android 端 20 多种,ios 较少;
3.手机操作系统,Android 较多,ios 较少且不能降级,只能单向升级;新的 ios系统中的资源库不能完全兼容低版本中的 ios 系统中的应用,低版本 ios 系统中的应用调用了新的资源库,会直接导致闪退(Crash);
4.操作习惯:Android,Back 键是否被重写,测试点击 Back 键后的反馈是否正确;应用数据从内存移动到 SD 卡后能否正常运行等;
5.push 测试:Android:点击 home 键,程序后台运行时,此时接收到 push,点击后唤醒应用,此时是否可以正确跳转;ios,点击 home 键关闭程序和屏幕锁屏的情况(红点的显示);
6.安装卸载测试:Android 的下载和安装的平台和工具和渠道比较多,ios 主要有 app store,iTunes 和 testflight 下载;
7.升级测试:可以被升级的必要条件:新旧版本具有相同的签名;新旧版本具有相同的包名;有一个标示符区分新旧版本(如版本号),对于 Android 若有内置的应用需检查升级之后内置文件是否匹配(如内置的输入法)
083-App出现crash原因有哪些?
1、内存管理错误:可能是可用内存过低,app所需的内存超过设备的限制,app跑不起来导致App crash。 或是内存泄露,程序运行的时间越长,所占用的内存越大,最终用尽全部内存,导致整个系统崩溃。 亦或非授权的内存位置的使用也可能会导致App crash。
2、程序逻辑错误:数组越界、堆栈溢出、并发操作、逻辑错误。 e.g. app新添加一个未经测试的新功能,调用了一个已释放的指针,运行的时候就会crash。
3、设备兼容:由于设备多样性,app在不同的设备上可能会有不同的表现。
4、网络因素:可能是网速欠佳,无法达到app所需的快速响应时间,导致app crash。或者是不同网络的切换也可能会影响app的稳定性。
084-app中手机号输入框有哪些测试点,1个测试点1分
1、手机号输入合法,号段没问题的11位数字进行测试
2、输入手机号码为非数字
3、输入手机号码为10位数字
4、输入手机号码为12位数字
5、输入手机号码为非正常号段
6、手机号重复输入
7、手机号输入框,为空测试
085-APP某个功能失效了,如何排查是App客户端还是服务端的问题?
检查客户端网络是否有问题,可以查看其他APP能否正常使用
检查是否为版本问题,可以换个操作系统(安卓、ios),或者换个其他软件版本试试
检查是否为兼容性问题,可以换个手机试试
抓包分析,如果APP没有向服务器发送请求,或者请求参数不对,就是APP的问题;如果服务端响 应数据不对,就是服务端的问题
086-APP专项测试方法有哪些?
app的安装卸载、升级测试、消息推送、手机授权、前后台切换、触屏操作、横竖屏切换; 网络环境(wifi/2G/3G/4G/5G/无网络),网路切换,弱网测试 app的中断测试,兼容性测试以及用户体验测试
087-请写出实现下列功能的adb命令: 通过adb命令安装及卸载apk安装包
安装:adb install 安装包名称.apk
卸载:adb uninstall 包名
088-针对App的安装测试,写出测试点?
1.正常安装测试,检查是否安装成功。
2.APP版本覆盖测试。例如:先安装一个1.0版本的APP,再安装一个高版本(1.1版本)的APP,检查是否被 覆盖。
3.回退版本测试。例如:先装一个2.0版本的APP,再安装一个1.0版本的APP,正常情况下版本是可以回退 的。
4.安装时内存不足,弹出提示。
5.安装过程中的意外情况(强行断电、断网、来电话了、查看信息)等等,检查会发生的情况。
6.在不同型号、系统、屏幕大小、分辨率上的手机进行安装。
7.安装完成后,重启手机能否正常启动应用程序。
8.安装完成后,是否对其他应用程序造成影响。
9.安装完成后,杀毒软件是否会对其当做病毒处理。
10.在安装过程中,所有的提示信息中不能出现代码、符号、乱码等。
11.是否支持第三方安装。
12.在安装中点击取消或杀掉进程,是否还能重新安装
089-App 做过哪些专项测试?
( 1)APP 冷/热启动测试
( 2)APP 权限测试(设备权限、app 权限设置)
( 3)APP 安装/卸载/(弱、强)升级
( 4)APP 消息推送(APP、短信、微信、QQ)
( 5)APP 前端性能(耗电量、顺滑度、耗流量)
( 6)APP 弱网
( 7)APP 稳定性测试
090-monkey工具怎么做稳定性测试的?
使用命令,adb shell monkey -p com.lemon.lemonban --ignore-crashes --ignore-timeouts --throttle 1000 --randomize-throttle -s 3500 -v -v -v 100000 > D:\monkey_log.txt -p 后面加app包名;--ignore-crashes --ignore-timeouts是monkey测试的过程中遇到crash或者timeout的情况时忽略掉; --throttle 1000 --randomize-throttle 1s内随机时间;100000次随机事件次数;并且会输出日志到本地 检查日志有出现crash,anr异常,附上日志提交bug给到开发
091-ANR有哪些类型?
1:KeyDispatchTimeout(5 seconds) –主要类型 按键或触摸事件在特定时间内无响应
2:BroadcastTimeout(10 seconds) BroadcastReceiver在特定时间内无法处理完成,此处指的是前台广播,后台广播为60秒
3:ServiceTimeout(20 seconds) –小概率类型 Service在特定的时间内无法处理完成,此处通常指前台Service,后台Service为200秒
4:contentprovider的publish在10秒内没进行完,这个比较陌生和少见
092-app崩溃原因?
软件代码问题:1) 软件升级的兼容性问题 2) 代码有死循环 系统的兼容问题:1) 与手机品牌或安卓系统不兼容 2) 与手机硬件或驱动不兼容有问题
第三方软件兼容问题:1) 与腾讯管家/金山毒霸等杀毒软件不兼容 2) 与其他普通软件的不兼容
用户操作的问题:1) 用户习惯用home键退出,导致程序一直在后台运行,知道内存溢出报错,也会导致app的闪退 2) 用户手机存储小,下载后没有多余的空间安装,所以安装时会导致app闪退
093-请说明一下Monkey是如何做APP的稳定性测试的?
答:使用命令,adb shell monkey -p com.lemon.lemonban --ignore-crashes --ignore-timeouts --throttle 1000 --randomize-throttle -s 3500 -v -v -v 100000 > D:\monkey_log.txt
-p 后面加app包名;--ignore-crashes --ignore-timeouts是monkey测试的过程中遇到crash或者timeout的情况时忽略掉; --throttle 1000 --randomize-throttle 1s内随机时间;100000次随机事件次数;并且会输出日志到本地
检查日志有出现crash,anr异常,附上日志提交bug给到开发
094-App应用的闪退通常是什么原因造成的?如何分析?
APP闪退可能是内存泄露或代码错误导致的。 如果是内存泄露,未及时释放内存,导致app闪退。可以使用内存分析工具,查看程序在各个时间段内内存的占用量,如果内存不能及时释放,则可以判断出是内存泄漏造成的。 如果是代码错误导致程序崩溃,从而导致app闪退。可以查看程序的错误日志进行分析,通过adb logcat获取日志。
095-app用monkey模拟多少次数 ? 测多少时间的?
一般模拟50000-100000随机事件次数。我们一般晚上跑,大概就跑一个晚上,第二天看日志。
096-给你一个app 怎么测?
先分析需求,了解需求功能业务及细节,预估要完成的时间,综合上级给定的时间,是否要增派人手还是个人独立完成;然后依据app需求梳理大致的测试点,直接按照测试点进行测试
097-adb覆盖安装命令?
覆盖低版本APK Android设备有更小版本Apk,进行覆盖安装:adb install -r xx.apk
覆盖高版本 Android设备有更高版本Apk,进行覆盖安装:adb install -r -d adb install -r -d C:\Users\temp\xiaomi_highger.apk
098-App 发布上线测试人员都具体做什么?
1,首先对 ios、android 生产环境(有些公司有 UAT 环境)打包验证新功能,包括 老功能是否受到影响。
2,验收测试通过的生产包渠道审核:IOS 提交 App Store,Android 打包提交各大 应用商店,如小米商店,华为商店,应用宝等; 安卓会审核得比较快,IOS 一般一到三天。
3,通过主要渠道下载线上包,协助产品进行验收测试。
4,收集用户的反馈信息,跟进线上 BUG、埋点数据。
099-APP崩溃/闪退,一般都是什么原因造成的?
软件代码问题:
- 软件升级的兼容性问题 2) 代码有死循环 3)代码内部报空指针错误
系统的兼容问题:
- 与手机品牌或安卓系统不兼容 2) 与手机硬件或驱动不兼容有问题
第三方软件兼容问题:
- 与腾讯管家/金山毒霸等杀毒软件不兼容 2) 与其他普通软件的不兼容
用户操作的问题:
- 用户习惯用home键退出,导致程序一直在后台运行,直到内存溢出报错,也会导致app的闪退
- 用户手机存储小,下载后没有多余的空间安装,所以安装时会导致app闪退
网络问题: 网络不稳定或网络切换时导致
100-手机是如何用Fiddler抓请求的?(跟网页用法一样吗?)
前提:保证安装手机跟电脑端同一个网络 1、对fiddler进行简单配置: 打开fiddler,Tools->Fiddler Options---勾选“Decrpt HTTPS traffic”,选中后Fiddler可以截获HTTPS请求---勾选“Allow remote computers to connect”,选中后允许别的机器把HTTP/HTTPS请求发送到Fiddler上---配置完成后,重新启动Fiddler 2、获取Fiddler所在机器的IP地址(运行cmd-->ipconfig,即可获得IP地址) 3、在手机中设置网络代理 打开手机设置 —> WLAN —> 选择手动代理--》代理服务器主机名:填写Fiddler所在机器的IP地址---》代理服务器端口:填写Fiddler设置的代理端口 4、上面配置好后就可以在Fiddler就可以抓取到移动端App应用的请求了 5、如果要抓取HTTPS的请求,那么要在Android手机安装Fiddler证书 打开手机中的浏览器,输入192.168.3.104:8888,这是你上面在手机中设置网络代理Fiddler的服务地址。如果出现响应页面说明访问代理服务Fiddler成功,就可以安装证书了。证书安装成功后就可以在fiddler上抓取HTTPS的请求了
101-app专项测试怎么做的
1、应用性能测试(CPU 内存 电量 流量 温度)
2、APP启动、加载时间(冷启动 热启动)
3、页面渲染(gpu fps)
4、手机卡顿(TraceView)
5、内存泄漏 抖动
6、弱网测试
7、代码静态扫描
102-测过APP的push推送吗?都要考虑哪些测试点?
主要测试这几点:
1、什么场景下会触发push
2、push消息内容的准确性
3、push推送的用户是否准确(全部推送/部分推送/指定用户推送)
4、push推送消息的点击跳转是否正常
5、app在前台运行和后台运行,用户是否都能收到push消息
6、用户未登录,是否能接受到push消息
7、用户长时间未登录,后续第一次登录时,是否会收到历史推送消息
103-你们公司是怎么做 app 兼容性测试的?公司的测试机少怎么办?
(1)主要还是通过手工去测试已有的机器。
(2)有时可能会有测试机不够的情况,用自己的新手机或者跟公司的同事借一下, 以及交叉测试。
(3)个别用户会反馈在哪些机型上出现一些崩溃,有时哪些机型确实要去测试一 下。
(4)录制自动化脚本,夜间执行自动化测试用例
(5)部分机型通过云测平台(testIn、weTest)的云真机测试,付费居多。
(6)使用模拟器测试可能会出问题,经常出现模拟器没有问题而真机有问题,所 以尽可能拿真机覆盖。
104-出现崩溃和无响应是一般在什么情况出现?
崩溃:
1.内存管理错误:可能是可用内存过低,app所需的内存超过设备的限制,app跑不起来导致App crash。 或是内存泄露,程序运行的时间越长,所占用的内存越大,最终用尽全部内存,导致整个系统崩溃。 亦或非授权的内存位置的使用也可能会导致App crash。
2.程序逻辑错误:数组越界、堆栈溢出、并发操作、逻辑错误。 e.g. app新添加一个未经测试的新功能,调用了一个已释放的指针,运行的时候就会crash。
3.设备兼容:由于设备多样性,app在不同的设备上可能会有不同的表现。
4.网络因素:可能是网速欠佳,无法达到app所需的快速响应时间,导致app crash。或者是不同网络的切换也可能会影响app的稳定性
未响应:
1.主线程执行了耗时操作,比如数据库操作或网络编程
2.其他进程(就是其他程序)占用CPU导致本进程得不到CPU时间片,比如其他进程的频繁读写操作可能会导致这个问题。
105-手机测试应该注意哪些点
主要考虑的就是功能性、兼容性、稳定性、易用性(也就是人机交互)、性能。 1功能:考虑安装、卸载、升级、业务的功能测试、UI界面的检查等,出现问题最多的也就是特殊符号、边界值、按钮之类的。 2兼容性:考虑手机的版本、型号、分辨率。不同的版本是存在差异的,一般低版本容易出现问题。、 3稳定性:是否有闪退、系统崩溃、没响应之类的问题。 4易用性:界面是否吸引人、容易理解、界面整洁、简单、无错别字。 5性能:查看CPU占用、内存占用、电池温度等。app后台长时间运行的耗流量,耗电量。 7网络:网络切换,网络信号强,弱下的运行情况。
106-小程序怎么和微信交互的?
小程序要跟微信交互 主要是登录授权 和 微信的钱包卡包支付 以及跟小程序使用 过程中,微信消息等正常使用; 比如登录授权的交互:就是小程序需要先去获取微信的登录凭证,得到微信的授权后,再用微信的账号发送到自己的服务器里保存成业务会话;后面就直接用这个微信账号进行登录了;
107-建立视频通讯的过程是怎么实现的?
直播的话,业界用的比较多的是rtmp协议,主播端推流到rtmp服务器,观众端从服务器拉视频流播放;视频会议中,国内用的比较多的是webrtc,各端进入会议后,各端相互直接通信且各端与webrtc服务器同时进行通信;短视频中,一般是用户拍摄的视频直接放到视频服务器上,观众端通过http从服务器获取视频数据进行播放。
108-埋点测试怎么测试?
埋点测试是指对移动应用程序中埋入的统计代码进行测试,以确保收集的数据正确、完整和准确。埋点测试通常包括以下步骤:
1、埋点设计审核:在应用程序开发过程中,需要对埋点设计进行审核,包括埋点名称、埋点位置、埋点参数等。审核的目的是确保埋点设计符合产品需求和业务规则,并避免不必要的冗余数据。
2、埋点代码集成测试:在应用程序开发过程中,需要对埋点代码进行集成测试,以确保代码可以正确地收集数据,并将数据发送到统计服务端。集成测试的目的是确保埋点代码的正确性和稳定性。
3、埋点数据验证测试:在应用程序发布前或发布后,需要对埋点数据进行验证测试,以确保收集的数据正确、完整和准确。验证测试的目的是发现数据收集中的问题,并及时修复。
下面是具体的步骤:
1、确定需求和业务规则:在进行埋点测试前,需要明确应用程序的需求和业务规则,确定需要收集的数据类型和数量。
2、设计测试用例:根据需求和业务规则,设计测试用例,包括测试场景、测试步骤和预期结果。
3、部署测试环境:在进行埋点测试前,需要搭建测试环境,包括安装测试应用程序、设置测试数据和配置统计服务端等。
4、执行测试用例:按照测试用例中的步骤,模拟用户行为,测试埋点代码的收集功能,并验证收集的数据是否正确、完整和准确。
5、数据验证和分析:收集测试数据,并进行验证和分析,查找数据异常和缺失,以及统计分析的问题等。
6、缺陷跟踪和管理:在发现问题时,及时记录并跟踪问题,确保问题得到及时解决。
埋点测试的原理是在应用程序中嵌入统计代码,收集应用程序中的用户行为数据,例如点击、访问、页面跳转等,并将数据发送到统计服务端进行分析和处理。通过埋点测试,可以确保应用程序中的统计代码能够正确地收集数据,并能够准确地反映应用程序的使用情况和用户行为。
109-视频音频不同步的情况怎么测 关注点什么?
使用音画同步的测试视频进行测试,当画面与音频相差200ms及以上时就表示音画不同步;
110-怎么选择机型?
选择市面上排名靠前的几款机型。这个可以通过数据网址查看下哪些机型是靠前的 https://index.iresearch.com.cn/new/#/device?osType=0
