APP测试面试题要点

1.安卓

请问Android的四大组件是什么?

1.activity 活动
2.service 服务
3.broadcast receive 广播接收
4.content provider 内容提供

Android 常用的操作命令

(1)如何用adb命令安装app(包名:launcher)指定终端?
adb install -s 编号 launcher

(2)如何用adb命令查看安卓系统日志?通过abd 导出安卓系统日志到PC机的e 盘?
adb logcat -v time>e:\mylog.log

(3)如何通过monkey 对 launcher 进行10000)次随机测试?
adb shell monkey -v -p launcher 10000

(4)如何通过adb 启动 Activity? 例外包名为 launcher ;Activity 为 launcher。
adb shell am start -n launcher .activity

iOS APP、 Android APP 切入后台后, 分别最长可执行时间有多长?
Ios app 后台可运行最大时长最大是 10 分钟

Android APP 内存不足时, 系统如何结束进程获得内存?

系统优先结束被挂起(暂停) 的进程, 释放内存

APP 测试常见的严重问题有哪些? 分别引起的原因有哪些?

常见的有 crash、 ANR(应用无响应,卡死) ,
一般由设备碎片化、 网络波动大、 内存泄漏、 代码编写错误

请简单介绍你曾使用过的一款 APP 自动化测试工具 ;

开放性问题,带点主观意见
1 对比其他熟悉的自动化工具的优缺点
2 自动化的简要方案(简要的同时关键内容请具体) 。 (提示: appnium 等)

Android 测试与 web 测试有什么区别?

相同点:
1.设计测试用例均依据等价类、边界值等方法,测试原理相同;
2.大多数都采用黑盒测试方法来验证业务功能;
3.需要检查界面布局、风格和按钮是否美观、统一等(UI测试);
4.测试页面载入和翻页的速度、登录时长是否溢出等问题(性能测试)
5.测试应用系统的稳定性;
不同点:
1.手机作为通信工具,通信等一些行为会对APP产生(中断测试)
2.手机用户对app 产品的安装卸载操作:从上一版本/上两个版本直接升级到最新版本(安装卸载测试);
3.web自动化测试使用的工具较常用的是selenium,而android手机自动化测试比较常用的自动化工具是monkey、monkeyrunner、Appium(测试工具不一样)

app 测试有哪几种环境?

1 本地环境: app 安装的手机环境和电脑搭建的自动化测试环境(比如安卓 SDK 等等) 。
2 服务器环境: war 包部署的服务器, 服务器可以通过浏览器访问, 也可以通过 app 去访问。(访问的是 web 程序的接口)

简单介绍一下 Android SDK 的安装步骤:

1 下载 jdk 和安卓 sdk
2 安装 jdk, 配置环境变量(java_home、 classpath、 path)

请简要介绍一下移动应用及其服务端的测试点?

1 移动应用主要有权限、 安装运行卸载、 UI、 功能、 性能、 中断、 兼容性、 安全性、 回归、升级更新、 用户体验。 (app 的 11 大测试点)
2 服务端有接口测试、 性能测试、 安全测试。

简述如何模拟安卓各种网络环境进行测试?

手机设置里面, 可以设置 2g, 3g, 4g 网络。
如果是模拟弱网, 可以使用 fiddler 的 Simulate Modem Speeds 的限速功能。

如何判断 app 的 bug 是客户端问题还是后台问题

答: 这个要根据业务来, 一般数据的问题前端的问题多些, 我一般做法是有问题提给前端开发, 他们知道是他们自己的问题还是后台返回的数据问题。

PS: 一、 客户端问题
1、 文字, 图片有误;
2、 无法输入, 按钮不可用;
3、 抓包信息显示客户端发送的信息有误。
二、 服务器端问题
1、 通过抓包检查服务器返回的信息, 如果信息有误, 就可以断定是服务器的问题;
2、 客户端向服务器发送信息后, 服务器无响应。

安卓中如何取出日志信息

答: 1. 把安卓系统日志信息实时导入到本地: adb logcat -v time > d:\mylog.log
2. 运行使用某个 app, 实时获取该 app 的日志信息(cmd 里面的返回信息) :
adb shell monkey -p com.android.calendar -v 1000 > d:\mylog2.log

你们测试用的是真机还是 emulator 虚拟机

答: 测试用真机, 一般不会用 emulator 虚拟机, 虚拟机用来学习比较好点。

常见的 adb 命令:

1 查看当前连接的设备: adb devices
2 安装软件: adb install 路径\xx.apk
3 卸载软件: adb uninstall <包名>
4 从电脑上发送文件到设备: adb push <本地路径> <远程路径>
adb push C:\test1.txt /sdcard/
5 从设备上下载文件到电脑: adb pull <远程路径> <本地路径>
adb pull /sdcard/test1.txt D:
6 实时获取日志: adb logcat -v time > D:\mylog.log
7 登录终端设备 shell: adb shell
8 查找包名/活动名: adb logcat | findstr START
(脚本中, cmp= 后面的值就是 包名/activity 名称)
9 启动 APP 启动
adb shell am start -n packageName/activity
10 关闭 app
语法: adb shell am force-stop 包名
11 监控 APP 启动时间
adb shell am start -W packageName/activity
12 Monkey 命令:
1 adb shell monkey -v -p mypackage 50

App 测试是在 Linux 下还是 Windwos 下进行的, 主要用哪些工具?

1 用手机做功能测试, 后台程序是部署在 linux 里面, 和 web 端是同一个后台,app 是通过调用后台接口来获取数据的。 (ios 和安卓的后台接口是分开写的, 有两套)
2 工具方面, 偶尔会在本地 windous 下通过 Monkey 工具做 app 的稳定性测试。

PS:

  1. 用于 Android 的工具: monkey、 monkeyrunner、 Appium
  2. 用于 iPhone 工具 Appium
  3. ios 系统比较封闭, 所以测试工具比较少, 我们就测测功能和兼容性。 Android 一般也只是测试功能和兼容性。 兼容性还会考虑各种网络(2g、 3g、 4g、 wifi) (手机网络设置里可以设置这些网络) 。
APP 没用到 Linux 吗? 手机端只是前端, 后台呢?

答: 后端程序全部部署在 linux 的 tomcat 服务器上。
APP 有个 web 端控制后台, 可以在上面发布相关信息, 后台不是我负责的, 不是我的关注点。(一般后台比较稳定, 不需要测试)

APP 这么多主流机型如何测试, 那么多系统版本, 如何覆盖? 或者手机那么多主流型号, 如何测试共存性?

答: 我们公司就买了, 魅族, 华为, 小米, iphone7、 iphone8 、 iphone8plus 、 iphone x 测试兼容性,有些没有的机型,先借用同事的手机进行测试,同时申请公司购买。

PS: APP 测试不要写 CS, 写终端测试, 不要定义太严格了。
App 升级的条件: 相同的包名和签名, 不同的版本号。 并且不能降级覆盖安装。

monkey 命令的几个参数, -p, -v, -s 分别是什么意思?

答:
-p: 指定程序的 package 包名。
-v: -v 反馈信息的级别, Level 0( 1 个-v ) 提供较少信息。 Level 1(2 个-v) 提供较为详细的测试信息, Level 2(3 个-v) 提供更加详细的设置信息。
-s: 伪随机数生成器的 seed 值。 如果用相同的 seed 值再次运行 Monkey , 它将生成相同的事件序列。

App 的性能测试怎么做?

答:
1 搭建安卓测试环境, 安装 JDK 和 SDK, 设置环境变量。连接手机, 手机设置为 usb 调试模式
2 用 itest 工具监控目标 app。
3 打开 cmd 命令行窗口, 通过 adb 命令首先清除 logcat 中的日志, 再获取 logcat 日志。
4 再打开新的 cmd 命令行窗口, 执行 adb shell monkey 命令, 发送一定数量的伪随机事件。 那么 itest
工具就会监控该 app 的性能指标(比如 cpu、 内存、 流量、 耗电量) , itest 会形成走势图, 走势图的数据保存到安卓设备里面。 (可以把这些数据和 app 运行时的日志文件发给开发。 )

你负责 APP 的哪些模块

答: 一般来讲所有的模块自己都会测过, 不存在每个人负责不同模块。
(现在 app 主要有交友, 美食, 交通, 聊天, 支付, 视频, 浏览器, 打车类, 炒股类, 地图类, 网络电话, 移动 ktv 购物, 应用市场, 根据不同类别讲述 app 的主要功能, 同一类的 app 功能基本一致,App 功能基本不多)

App 的测试点(或者测试方法)

  • 12
    点赞
  • 115
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在软件测试app面试中,可能涉及到以下一些常见的题: 1. 请介绍一下软件测试的基本概念和目的。 软件测试是指通过运行、检查和评估软件系统来验证软件是否满足设计要求、发现其中的缺陷,并确保其质量和可靠性。其目的是提高软件的稳定性和可用性,减少潜在的风险和错误。 2. 请简要介绍一下软件测试的生命周期。 软件测试生命周期包括测试计划、测试设计、测试执行、缺陷管理和测试评估等阶段。在测试计划阶段,确定测试目标、范围和资源,并编制测试计划。在测试设计阶段,根据需求和设计文档,设计测试用例和测试数据。在测试执行阶段,执行测试用例并记录测试结果。在缺陷管理阶段,跟踪和管理发现的缺陷。最后,在测试评估阶段,评估测试的完整性和效果,生成测试报告。 3. 请说明什么是黑盒测试和白盒测试,并列举它们的区别。 黑盒测试是在不考虑内部结构和实现细节的情况下,仅根据软件的功能需求进行测试的方法。白盒测试是基于了解软件内部结构和代码的情况下,设计和执行测试用例的方法。区别在于黑盒测试关注的是软件的外部行为和功能,而白盒测试则关注软件内部的逻辑和代码覆盖。 4. 请解释一下alpha测试和beta测试的概念以及它们的区别。 alpha测试是在公司场地内由公司员工主导进行的测试,旨在发现和解决软件系统中的题和缺陷。而beta测试则是在客户场地由客户主导进行的测试,旨在评估软件在真实环境中的稳定性和用户体验。区别在于alpha测试是在公司内部进行的,而beta测试是对外发布给客户进行的。 5. 请说说您对自动化测试的理解和经验。 自动化测试是使用自动化工具和脚本来执行软件测试的过程。它可以提高测试的效率和准确性,并能够在短时间内执行大量的测试用例。通过编写脚本和使用自动化测试工具,可以自动化执行重复性的测试任务,减少人工测试的工作量。同时,也需要关注自动化测试的可维护性和稳定性。 以上是关于软件测试app面试题的一些常见题和回答,希望对您有帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [17道APP测试面试题分享带参考答案](https://blog.csdn.net/okcross0/article/details/129389176)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [App测试经典面试题及参考答案](https://blog.csdn.net/m0_67695717/article/details/130588000)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值