1.请问App测试的主要内容包含?
功能测试:
业务逻辑正确性测试:依据产品文档->测试用例编写。
界面的测试
界面测试:依据产品UI设计文档(高保真图,原型图)。
升级,安装,卸载测试:
升级测试:临近版本升级(1.0->1.1);跨版本(1.0->....->2.2)
安装测试:首次安装;覆盖安装(同版本,不同版本覆盖);卸载后安装。
卸载测试:首次卸载;卸载安装后再卸载。
兼容性测试:
系统版本:Android:官方版本,定制版本;IOS:官方提供版本。
手机品牌和型号:华为,vivo,小米等。
分辨率:720 * 1280 1080* 1920。
网络情况:2g 3g 4g 5g Wi-Fi。
自身软件的兼容性
与其他常用软件的兼容性
异常测试:
热启动应用:应用在后台长时间待机;应用在后台待机过程中,手机重启。
网络切换和中断恢复。
电话信息中断恢复。
性能测试
安装和启动时间
CPU的占用
内存的占用
流量的耗用
电量的耗用
FPS
后端, 测试App中的各类操作是否满足用户响应时间要求,主要是测试点在网速方面,2g,3g,wifi, 4g一定要覆盖到
后端 有网络并发
安全性测试
对App的输入有效性校验、认证、授权、敏感数据存储、数据加密等方面进行检测,以期发现潜在的安全问题;
从数据的本地存储到数据的传输、处理以及远程访问等各个环节,基于相应的安全标准/行业标准评估App的安全特性;
检测App的用户授权级别,数据泄漏,非法授权访问等;
借鉴在Web App和网络安全测试的一些成功经验在智能终端App测试中进行裁减或适配;
基于各种通信协议或相应的行业安全标准检视App是否满足相应的要求。
健壮性测试:
在各种边界压力情况下(如电池、存储、网速等),验证App是否能正确响应
反复/长期操作下,系统资源是否占用异常;Android 可是使用adb命令
压力测试主要集中在后端,前端的压力测试目前测的较少
2.App闪退的原因有哪些?
考察点:移动app测试的过程中是否遇到闪退情况
原因有很多,举例:
1.缓存垃圾太多,Android系统的特性,如果长时间不清理垃圾文件,会导致越来越卡,甚至闪退。
2.运行程序太多,导致内存不足。
3.应用版本兼容问题,分辨率兼容问题。
4.APP的SDK与手机系统不兼容。
5.系统升级后,新版本不兼容老版本的API,返回对象失败,报空指针。
6.软件权限未开放。
3.App测试的实时日志如何获取?
考察点:是否有移动app测试的日志获取相关经验
一般可以通过以下方式获取:
1.可以使用adb命令:adb logcat | find "com.sankuai.meituan" >d:\test.txt
2.用ddms抓取,手机连上电脑,打开ddms工具;
3.在Android Studio开发工具中获取,打开ddms工具;
4.用monitor工具获取,手机连上电脑,打开monitor工具
4.常用的adb命令有哪些?
考察点:是否有移动app测试的相关命令的操作经验
获取设备列表及设备状态:adb devices,adb-getstat,adb get-serialno
安装应用:
adb install 路径\xx.apk, 安装应用;
adb install -r 重新安装
adb shell pm install 安装
adb shell pm install -r
3. 卸载应用:adb uninstall <包名>, adb shell pm uninstall <包名>,后面的参数是应用的包名,区别于 apk 文件名adb uninstall
将 Android 设备上的文件或者文件夹下载到电脑本地:adb pull <远程路径> <本地路径>adb pull复制 Sdcard 下的 pull.txt 文件到 D 盘:adb pull sdcard/pull.txt d:\rename.txt
上传本地文件至 Android 设备:adb push <本地路径> <远程路径>
eg: adb push推送 D 盘下的 ITester.txt 至 Sdcard:adb push d:\ITester.txt sdcard/ (注意sdcard 后面的斜杠不能少)
6. 结束和启动adb服务:adb kill-server /adb start-server , 结束 adb 服务/启动 adb 服务,
通常两个命令一起用,设备状态异常时使用 kill-server,运行 start-server 进行重启服务。adb kill-server adb start-server
打印及清除系统日志:adb logcat打印 Android 的系统日志adb logcat -c
5.讲一下安卓 SDK中自带工具的功能
考察点:是否熟悉Android SDK工具及使用实际相关经验
ddms:Dalvik Debug Monitor Service,是 Android 开发环境中的Dalvik[虚拟机]调试监控服务。
monkey:Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。
uiautomator:是Eclipse自带的用于UI自动化测试工具,可仿真APP上的单击、滑动、输入文本等操作。
monitor:同uiautomator,包含ddms工具的相关功能
adb:ADB的全称为Android Debug Bridge,是一种debug工具。
monkeyrunner: monkeyrunner是一个Android自动化测试工具。它提供一个API,运用该API编写的程序可以不用通过Android代码来直接控制Android设备和模拟器,我们可以写一个Python程序对android应用程序或测试包进行安装,运行,发送模拟击键,对用户界面进行截图并将截图存储在workstation上等操作。
功能测试:
业务逻辑正确性测试:依据产品文档->测试用例编写。
界面的测试
界面测试:依据产品UI设计文档(高保真图,原型图)。
升级,安装,卸载测试:
升级测试:临近版本升级(1.0->1.1);跨版本(1.0->....->2.2)
安装测试:首次安装;覆盖安装(同版本,不同版本覆盖);卸载后安装。
卸载测试:首次卸载;卸载安装后再卸载。
兼容性测试:
系统版本:Android:官方版本,定制版本;IOS:官方提供版本。
手机品牌和型号:华为,vivo,小米等。
分辨率:720 * 1280 1080* 1920。
网络情况:2g 3g 4g 5g Wi-Fi。
自身软件的兼容性
与其他常用软件的兼容性
异常测试:
热启动应用:应用在后台长时间待机;应用在后台待机过程中,手机重启。
网络切换和中断恢复。
电话信息中断恢复。
性能测试
安装和启动时间
CPU的占用
内存的占用
流量的耗用
电量的耗用
FPS
后端, 测试App中的各类操作是否满足用户响应时间要求,主要是测试点在网速方面,2g,3g,wifi, 4g一定要覆盖到
后端 有网络并发
安全性测试
对App的输入有效性校验、认证、授权、敏感数据存储、数据加密等方面进行检测,以期发现潜在的安全问题;
从数据的本地存储到数据的传输、处理以及远程访问等各个环节,基于相应的安全标准/行业标准评估App的安全特性;
检测App的用户授权级别,数据泄漏,非法授权访问等;
借鉴在Web App和网络安全测试的一些成功经验在智能终端App测试中进行裁减或适配;
基于各种通信协议或相应的行业安全标准检视App是否满足相应的要求。
健壮性测试:
在各种边界压力情况下(如电池、存储、网速等),验证App是否能正确响应
反复/长期操作下,系统资源是否占用异常;Android 可是使用adb命令
压力测试主要集中在后端,前端的压力测试目前测的较少
2.App闪退的原因有哪些?
考察点:移动app测试的过程中是否遇到闪退情况
原因有很多,举例:
1.缓存垃圾太多,Android系统的特性,如果长时间不清理垃圾文件,会导致越来越卡,甚至闪退。
2.运行程序太多,导致内存不足。
3.应用版本兼容问题,分辨率兼容问题。
4.APP的SDK与手机系统不兼容。
5.系统升级后,新版本不兼容老版本的API,返回对象失败,报空指针。
6.软件权限未开放。
3.App测试的实时日志如何获取?
考察点:是否有移动app测试的日志获取相关经验
一般可以通过以下方式获取:
1.可以使用adb命令:adb logcat | find "com.sankuai.meituan" >d:\test.txt
2.用ddms抓取,手机连上电脑,打开ddms工具;
3.在Android Studio开发工具中获取,打开ddms工具;
4.用monitor工具获取,手机连上电脑,打开monitor工具
4.常用的adb命令有哪些?
考察点:是否有移动app测试的相关命令的操作经验
获取设备列表及设备状态:adb devices,adb-getstat,adb get-serialno
安装应用:
adb install 路径\xx.apk, 安装应用;
adb install -r 重新安装
adb shell pm install 安装
adb shell pm install -r
3. 卸载应用:adb uninstall <包名>, adb shell pm uninstall <包名>,后面的参数是应用的包名,区别于 apk 文件名adb uninstall
将 Android 设备上的文件或者文件夹下载到电脑本地:adb pull <远程路径> <本地路径>adb pull复制 Sdcard 下的 pull.txt 文件到 D 盘:adb pull sdcard/pull.txt d:\rename.txt
上传本地文件至 Android 设备:adb push <本地路径> <远程路径>
eg: adb push推送 D 盘下的 ITester.txt 至 Sdcard:adb push d:\ITester.txt sdcard/ (注意sdcard 后面的斜杠不能少)
6. 结束和启动adb服务:adb kill-server /adb start-server , 结束 adb 服务/启动 adb 服务,
通常两个命令一起用,设备状态异常时使用 kill-server,运行 start-server 进行重启服务。adb kill-server adb start-server
打印及清除系统日志:adb logcat打印 Android 的系统日志adb logcat -c
5.讲一下安卓 SDK中自带工具的功能
考察点:是否熟悉Android SDK工具及使用实际相关经验
ddms:Dalvik Debug Monitor Service,是 Android 开发环境中的Dalvik[虚拟机]调试监控服务。
monkey:Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。
uiautomator:是Eclipse自带的用于UI自动化测试工具,可仿真APP上的单击、滑动、输入文本等操作。
monitor:同uiautomator,包含ddms工具的相关功能
adb:ADB的全称为Android Debug Bridge,是一种debug工具。
monkeyrunner: monkeyrunner是一个Android自动化测试工具。它提供一个API,运用该API编写的程序可以不用通过Android代码来直接控制Android设备和模拟器,我们可以写一个Python程序对android应用程序或测试包进行安装,运行,发送模拟击键,对用户界面进行截图并将截图存储在workstation上等操作。