APP测试的面试准备

1.app测试和web测试有什么区别?

从测试流程上来说没有区别,都需要进行测试计划设计,用例设计,用例执行,缺陷管理;测试类型基本相似,都需要进行功能测试,性能测试,安全测试,GUI测试等。

主要区别在于具体的测试的细节和方法不同:

兼容性测试:web端兼容的是不同种类浏览器,比如chrome,firefox,safari,ie等;手机端兼容的是不同品牌,不同分辨率的手机;web兼容性测试的工具用IETester,app兼容性测试的工具用 Testin。

app测试需要进行专项测试:网络测试,流量测试,耗电量测试,安装卸载及升级测试,交叉时间和push消息测试,操作类型测试等

1.1交叉时间和push消息测试需要考虑那些方面:

参考:App测试点之交叉时间测试、push消息测试 - 木子~* - 博客园

1.2安装卸载和升级测试:

手动安装,卸载app测试;

如果服务端做了修改,客户端app的核心版本需要进行回归测试;升级测试的提醒机制,升级取消是否影响原有功能的使用,升级成功后用户数据是否被保留。

1.3操作类型测试:

横屏测试,手势测试

1.4网络测试:

移动网络与wifi切换测试;测试弱网所造成 的用例体验,重点考虑回退和刷新是否造成二次提交

1.5流量测试:

1.6耗电量测试:

2.对于 Android 和 iOS 两个系统来说,测试同一款 APP,又有哪些区别呢?

App测试中ios和Android的区别? - 知乎

App测试中Android和IOS测试区别-从系统和内核角度分析(转载+总结)_瓜瓜的测试日志-CSDN博客_app测试android和ios的区别

6.app出现ANR,是什么原因导致的?

Android App开发之ANR异常的原因分析及处理总结_白色枫车-CSDN博客_app出现anr的原因

Android 程序未响应(ANR) - 简书

Application Not Responding,也就是应用程序无响应。如果App在特定时间无法相应屏幕触摸或键盘输入事件,或者特定事件没有处理完毕,就会出现ANR。

  • Service Timeout:比如前台服务在20s内未执行完成,后台服务在200秒内没有执行完毕。
  • BroadcastQueue Timeout:比如前台广播在10s内未执行完成,后台广播在60秒内没有执行完
  • ContentProvider Timeout:ContentProvider的publish在10s内没进行完
  • InputDispatching Timeout: 屏幕触摸或输入事件响应超过5秒

ANR产生的原因:

主线程执行耗时操作,比如访问网络,访问数据库,执行大量的读写操作等

service binder数量达到上限;system server发生了watchDog ANR;service忙导致超时无响应

其他线程持有锁,导致主线程等待超时;其他线程终止或崩溃,导致主线程等待超时。

其他进程占用CPU,导致本进程得不到时间片,比如其他进程频繁进行读写操作。

12.列举常见的 adb 命令

1.查看当前连接的设备:adb devices

   登录终端设备 shell:adb shell

2.启动adb服务: adb start-server

   关闭adb服务: adb kill-server

3.安装软件:adb install 路径\xx.apk

   卸载软件:adb uninstall 路径\xx.apk

4.从电脑上发送文件到设备:adb push <本地路径> <远程路径> 

   从设备上下载文件到电脑:adb pull <远程路径> <本地路径> 

5.启动 APP 启动;adb shell am start -n 包名/activity;

   关闭 app 语法:adb shell am force-stop 包名;

6.实时获取日志:adb logcat > D:\mylog.log;

   清除缓存日志:adb logcat -c

7.监控 APP 启动时间 adb shell am start -W packageName/activity;

13.Monkey基础知识

Monkey是Android系统自带的命令行工具,使用Monkey对应用程序进行压力测试,检查和评估被测应用程序的稳定性。

Monkey向系统发送伪随机的用户事件,模拟用户的按键输入,触摸屏输入,手势输入等,从而对正在运行的应用程序进行压力测试,看设备多长时间会产生异常,并观察系统的稳定性和容错性能。

1)如果应用程序崩溃或接收到任何失控异常,Monkey将记录对应的错误日志,根据输入的命令判断继续运行还是停止运行

2)如果应用程序出现ANR的错误,Monkey将记录对应的错误日志,根据输入的命令判断继续运行还是停止运行

monkey的启动命令: monkey [参数配置项] <执行的事件数>

mokey停止方法:杀掉monkey进程,具体方法:

adb shell ps |grep monkey获取monkey进程ID;

adb shell kill pid杀死monkey进程

1)日志级别配置参数:

-v除启动提示,测试完成和最终结果之外,提供较少信息

-v -v提供较信息的测试信息

-v -v -v提供更加详细的测试信息

2)事件类型和频率配置参数

-s  <伪随机数生成器种子值> 相同的种子值再次运行monkey,将产生相同的事件序列

--throttle <毫秒数> 事件之间的延迟事件

--pct touch <百分百> 触摸事件百分比,屏幕某个单一位置的down-up事件

--pct montion<百分百>动作事件百分比,屏幕某处一个down事件,一系列伪随机事件和一个up事件

--pct rotation<百分百>屏幕旋转事件百分比

--pct flip<百分百>键盘事件百分比,点击输入框,键盘弹起,点击输入框以外区域,键盘收起

--pct syskeys<百分百>系统按键百分比,home键,回退键,音量键

3)约束限制类参数

-p 包名

-c 类别名,如果不指定,将选择下列类别中的Intent.CATEGORY_LAUNCHER或Intent.CATEGORY_MONKEY

4)调试类参数

--hprof 将monkey执行前后的内存快照存放在data/misc目录,通过对比monkey执行前后的内存快照文件,协助定位内存泄漏问题

获取monkey执行过程中是否有内存泄漏

adb shell dumpsys meminfo <进程名>

获取monkey执行过程中cpu消耗信息

adb shell top -n 1 |find "进程名"

获取monkey执行过程中电量信息

adb shell dumpsys battery

获取monkey执行过程中流量信息

adb shell cat /proc/uid_stat/<被测应用uid>/tcp_rcv

获取应用uid方法:

adb shell ps |grep <被测应用包名>

adb shell cat /proc/$pid/status

获取当前应用包名:

adb shell dumpsys window | findstr mCurrentFocus

获取monkey执行过程中GPU信息

adb shell dumpsys gfxinfo <进程名>

Monkey运行日志分析
将monkey运行日志保存在monkey.txt,将异常日志保存在error.txt

adb shell monkey [option] <count> 1>/sdcard/monkey.txt 2>/sdcard/error.txt

Monkey运行输出日志包含4类信息:测试命令信息,伪随机事件信息,异常信息,执行结果信息

Monkey执行过程中常见错误类型:应用程序无响应ANR,闪退Crash,通过搜索日志中ANR和crash关键字,定位错误原因。

常见的Crash错误有:NullPointerException,ArrayIndexOutOfBoundsException,ClassNotFoundException,ArithmeticException,IllegalArgumentException,FileNotFoundException,NumberFormatException,StackOverflowError,OutOfMemoryError

13.app测试的工具

Android 手机自动化测试工具有哪几种? - 知乎

软件测试面试练习应用是一种专为准备软件测试领域面试者设计的应用程序。这类应用程序的主要目标是帮助用户提升他们的技能、知识以及解决实际问题的能力,以便在真正的面试过程中取得更好的成绩。 ### 功能概述: 1. **理论知识**:涵盖各种基础至高级的软件测试理论,包括但不限于需求分析、测试计划制定、缺陷报告编写、测试策略选择等,通过详细的解释和实例,帮助用户深入理解每个概念。 2. **实践操作**:提供模拟真实工作环境中的测试案例,如功能测试、性能测试、安全性测试、兼容性测试等,让用户在实践中学习如何设计测试用例、执行测试并记录结果。 3. **面试题库**:包含常见软件测试面试问题,例如常见的测试理论、工具使用、项目经验分享等,有助于用户准备可能遇到的各种面试题型,并提供解答思路和参考答案。 4. **解析和反馈**:对于用户提交的答案或解题过程给出即时反馈,指出优点和需要改进的地方,帮助用户了解自己的不足之处并加以改正。 5. **进度跟踪与认证**:设置个人成长路径和里程碑,记录用户的进步情况,完成特定任务或达到一定水平后,可以解锁认证徽章或证书,证明其专业能力。 6. **社区交流**:内置论坛或群组功能,允许用户与其他软件测试专业人士交流经验、共享资源,形成互助的学习氛围。 ### 使用场景及价值: - **初级学习者**:适合刚刚开始接触软件测试领域的学生或职场新人,通过系统化的学习和实践,快速建立起对软件测试的基本认知和操作技巧。 - **求职准备**:即将参加软件测试岗位面试的人士,利用这个平台熟悉面试流程、增强自信心、提高面试表现。 - **职业发展**:已有工作经验的测试工程师希望通过持续学习提升自身竞争力,保持技术更新,适应行业变化和发展趋势。 ### 相关问题: 1. 这种类型面试练习应用如何评估用户的表现和进步? 2. 它是否提供个性化的学习路径,以满足不同用户的需求? 3. 用户在遇到困难或疑问时,如何获得及时有效的支持与指导? --- 通过上述信息,我们不仅介绍了软件测试面试练习应用的概念和基本功能,还探讨了它在个人学习、面试准备和职业发展中可能带来的价值,同时提出了几个关键点供进一步讨论。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值