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 手机自动化测试工具有哪几种? - 知乎

APP测试的面试准备相关推荐

  1. 安卓APP测试知识大全【面试储备】

    一.安卓系统知识概述 1.1 安卓系统架构 应用程序层 应用程序框架层 系统运行库库层 系统内核层 四大组件和API 1.2 安卓权限系统 Android操作系统其实是一个多用户的linux操作系统, ...

  2. 【面试-八股文】万字app测试 面试题,助你吊打面试官系列

    大家好,我是温大大. 最近温大大的读者们问我有没有app相关的面试题, 作为「平易近人」的大大怎么能忍心说没有呢, 这不继续爆肝 输出app测试工程师专项面试题, 本篇从:app测试基础.app 测试 ...

  3. 带答案APP测试面试题分享,助攻你的面试!面试官都惊呆了..

    基础篇 1.请介绍一下,APP测试流程? APP测试流程与web测试流程类似,分为如下七个阶段: 1.根据需求说明书编写测试计划: 2.制定测试方案,主要是测试任务.测试人员和测试时间的分配: 3.测 ...

  4. 【吊打面试官系列】APP测试常见面试题解析

    App测试 1.什么是手机测试?什么是手机软件测试? 手机测试:指对手机硬件.软件和结构等多方面的测试. 手机软件测试:就是对手机上的软件App进行测试的一个过程,他是符合多种网络,不同系统不同分辨率 ...

  5. ios和android测试面试题目,App测试面试题总结

    前言 现在面试个测试岗位,都是要求全能的,web.接口.app啥都要会测,那么APP测试一般需要哪些技能呢? 面试app测试岗位会被问到哪些问题,怎样让面试管觉得你对APP测试很精通的样子? 本篇总结 ...

  6. 关于面试总结-app测试面试题

    前言 现在面试个测试岗位,都是要求全能的,web.接口.app啥都要会测,那么APP测试一般需要哪些技能呢? 面试app测试岗位会被问到哪些问题,怎样让面试管觉得你对APP测试很精通的样子? 本篇总结 ...

  7. security面试_17道APP测试面试题分享带参考答案

    1.Android四大组件 Android四大基本组件:Activity.BroadcastReceiver广播接收器.ContentProvider内容提供者.Service服务. Activity ...

  8. APP测试面试题汇总,面试必考一定要看

    目录 一.基础篇 1.请介绍一下,APP测试流程? 2.APP测试需要提前准备哪些测试资源? 3.APP测试和Web测试的区别? 4..相对于 Wed 项目,APP有专项测试 4.Android手机和 ...

  9. 面试官出的APP测试问题

    一.开场问题:(自由发挥) 1.请自我介绍一下: 2.为什么离开上一个公司呢? 3.做测试多久了?以前做过哪些项目?你们以前测试的流程是怎样的?用过哪些测试工具? 4.你觉得为什么要在一个团队中开展软 ...

最新文章

  1. torch.meshgrid
  2. Redis cluster
  3. Pandas高级教程之:category数据类型
  4. CSS3中的pointer-events
  5. MATLAB 生成exe 的几种方法
  6. maven跳过单元测试
  7. 2022-07-12
  8. oracle 字符串日期转指定格式日期,Oracle和Sql 日期格式与字符串格式相互转换
  9. Interactive Path Reasoning on Graph for Conversational Recommendation阅读笔记
  10. 宝贝宝贝用计算机弹奏,原神宝贝宝贝琴谱 原神琴谱两只老虎爱跳舞怎么弹
  11. 使用dig/nslookup命令查看dns解析详情
  12. Linux超级强大的十六进制dump工具:XXD命令,我教你应该如何使用!
  13. 浅析如何减小iOS版微信安装包的大小
  14. group by 分组后 再对所有的数据求和
  15. 我写的书:《C++,挑战编程——程序设计竞赛进阶训练指南》
  16. python获取pdf页数_Python读取pdf页面的一部分
  17. Jekins localhost:8080打不开
  18. # SOM-算法原理
  19. 3.7V锂电池使用中电量与电压关系
  20. hi3798编译linux,EC6108V9(HI3798MV100)刷(linux)ubuntu16.04

热门文章

  1. 用Python实现简易音乐播放器(mp3类型)3
  2. 成为音频专家从音频工程学校培训
  3. html jsgif效果类似,js浮动图片的动态效果
  4. Redis(四)Redis内存
  5. 私人工具集7——webapi中的Token时效性验证
  6. 要有所得,就要先有所失去
  7. 关于最新WP8.1版本提交商店审核流程xx
  8. 一次calico起不来的问题排查
  9. 以物言志——溟㠭(展)艺术
  10. iPhone向多个号码发送短信的代码