当前位置:网站首页>APP UI自动化测试常见面试题,或许有用呢~
APP UI自动化测试常见面试题,或许有用呢~
2022-08-10 21:10:00 【测试界的飘柔】
1.Android APP 内存不足时,如何获得内存?
系统优先结束被挂起(暂停)的进程,释放内存。
2.APP 测试常见问题有哪些?原因有哪些?
常见的有 crash、ANR(应用无响应、卡死),一般由设备碎片化、网络波动大、内存泄漏、代码编写错误。
3.APP 自动化测试工具
开放性问题,带点主观意见:
对比其他熟悉的自动化工具的优缺点;
自动化的简要方案(简要的同时关键内容请具体)。
4.Android 与 web 测试区别?
相同点:
设计测试用例均依据等价类、边界值等方法,测试原理相同;
大多数都采用黑盒测试方法来验证业务功能;
需要检查界面布局、风格和按钮是否美观、统一等(UI 测试);
测试页面载入和翻页的速度、登录时长是否溢出等问题(性能测试);
测试应用系统的稳定性。
不同点:
手机作为通信工具,通信等一些行为会对 APP 产生(中断测试);
手机用户对 app 产品的安装卸载操作:从上一版本/上两个版本直接升级到最新版本(安装卸载测试);
web 自动化测试使用的工具较常用的是 selenium,而 android 手机自动化测试比较常用的自动化工具是 monkey、monkeyrunner、Appium(测试工具不一样)。
5.app 测试有哪几种环境?
本地环境:app 安装的手机环境和电脑搭建的自动化测试环境(比如安卓 SDK 等);
服务器环境:war 包部署的服务器,服务器可以通过浏览器访问。
6.简单介绍一下 Android SDK 的安装步骤
下载 jdk 和安卓 sdk;
安装 jdk,配置环境变量(java_home、classpath、 path)。
7.介绍移动应用及其服务端的测试点?
移动应用主要有权限、安装运行卸载、UI、功能、性能、中断、兼容性、安全性、 回归、升级更新、用户体验(app 的 11 大测试点);
服务端有接口测试、性能测试、安全测试。
8.如何判断 bug 是客户端还是后台问题?
这个要根据业务来,一般数据的问题前端的问题多些,一般做法是有问题提给前端开发, 他们知道是他们自己的问题还是后台返回的数据问题。
9.安卓中如何取出日志信息
把安卓系统日志信息实时导入到本地:adb logcat -v time > d:\mylog.log;
运行使用某个 app,实时获取该 app 的日志信息(cmd 里面的返回信息) :adb shell monkey -p com.android.calendar -v 1000 > d:\mylog2.log。
10.常见的 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。
11.APP 这么多主流机型如何测试
我手机型号分别有魅族,华为,小米,iphone7、iphone8 、iphone8plus 、iphone x 测试兼容性,有些没有的机型,先借用同事的手机进行测试,同时申请公司购买,或者采 用云真机。
12.App 崩溃(闪退)原因
缓存垃圾过多:由于安卓系统的特性如果长时间不清理垃圾文件,会导致越来越卡也会出现闪退情况,运行的程序过多导致内存不足。
应用版本兼容问题:如果应用版本太低,会导致不兼容,造成闪退。此外,有些新版本 在调试中,也会造成应用闪退。
解决方法:如果是版本太旧,更新为新版本即可;如果是新版本闪退, 可能是应用在改版调试,可卸载后安装旧版。检查 APP 中访问网络的地方,组件中的 ImageView 是否可以正常的下载并显示到 app 页面上。检查 APP 的 sdk 和手机的系统是否兼容。在一些特定情况下的闪退,比如播放视频,在 Android5.0 升级到 Android6.0 的时候, 有些系统 API 老版本有,新版本没有,到时回去对象的时候失败,报空,系统就会出现闪退。
13.Appium 都有哪些启动方式
客户端启动;
命令行启动。
14.安卓 UI 自动化测试工具
appium:是一个移动端的自动化框架,可用于测试原生应用,移动网页应用 和混合型应用,且是跨平台的。
robotium:是一款国外的 Android 自动化测试框架,主要针对 Android 平台的应用进行黑盒自动化测试,它提供了模拟各种手势操作(点击、长按、滑动等)、查找和断言机制的 API,能够对各种控件进行操作。
15.Android 手机和 IOS 系统区别
两者运行机制不同:IOS 采用的是沙盒运行机制,安卓采用的是虚拟机运行机制。
两者后台制度不同:IOS 任何第三方程序都不能在后台运行;安卓中任何程序都 能在后台运行,直到没有内存才会关闭。
IOS 中用于 UI 指令权限最高,安卓中数据处理指令权限最高。
喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一 键三连哦!
软件测试工程师自学教程:
这才是2022最精细的自动化测试自学教程,我把它刷了无数遍才上岸字节跳动,做到涨薪20K【值得自学软件测试的人刷】
软件测试工程师月薪2W以上薪资必学技能 — Python接口自动化框架封装.
美团面试真题_高级测试25K岗位面试 — 软件测试人都应该看看
软件测试必会_Jmeter大厂实战 — 仅6步可实现接口自动化测试
边栏推荐
- 日期选择器组件(限制年份 设定仅展示的月份)
- Detailed explanation and use of each module of ansible
- Interpretation of the paper (g-U-Nets) "Graph U-Nets"
- TCL:事务的特点,语法,测试例——《mysql 从入门到内卷再到入土》
- [Golang]如何优雅管理系统中的几十个UDF(API)
- INSERT:插入操作语法&使用例——《mysql 从入门到内卷再到入土》
- ACM模板笔记:最长不下降/上升子序列
- PPT的两个实用技巧
- Using SylixOS virtual serial port, serial port free implementation system
- Live Classroom System 09--Tencent Cloud VOD Management Module (1)
猜你喜欢
随机推荐
npm warn config global `--global`, `--local` are deprecated. use `--location=global` instead.
ArcMap创建镶嵌数据集、导入栅格图像并修改像元数值显示范围
HGAME 2022 Week2 writeup by pankas
C#【必备技能篇】Hex文件转bin文件的代码实现
Detailed explanation of the use of Oracle's windowing function (2)
2021DozerCTF
web逆向之丁香园
3D model reconstruction of UAV images based on motion structure restoration method based on Pix4Dmapper
Using SylixOS virtual serial port, serial port free implementation system
快消品行业经销商协同系统:实现经销商可视化管理,提高沟通执行效率
Rider调试ASP.NET Core时报thread not gc-safe的解决方法
How to submit a PR?【OpenHarmony Growth Plan】【OpenHarmony Open Source Community】
Common functions of Auto.js to find pictures and colors
2021 CybricsCTF
华为路由器旁挂引流实验(使用流策略)
Live Classroom System 08-Tencent Cloud Object Storage and Course Classification Management
C. Social Distance
ctfshow-osint
流程控制结构——《mysql 从入门到内卷再到入土》
Object.assign用法 以及 与$.extend的区别