测试理论知识_移动端

软件测试工程师_app

一、基础篇

1. APP测试流程?

APP测试流程与web测试流程类似,分为如下八个阶段:

1)测试计划:根据需求说明书,项目计划书等编写;来确定测试各个阶段所需时间,测试目标,风险评估等。

2)测试方案:根据测试计划明确测试方法,测试任务,测试人员,测试时间的分配和所需的资源。

3)测试准备:搭建测试环境,准备测试数据,测试人员分工;

4)测试用例的设计与编写:参考需求文档,原型图等,后进行用例评审及补充完善;

5)执行测试;进行冒烟测试,后对主功能流程进行测试,包括客户端的单个功能模块,及功能业务逻辑功能交互,回归测试;再对正式环境进行完整系统测试

6)提交测试结果:跟踪测试结果,提交测试报告;

7)文档归纳:测试计划、测试方案、测试用例、测试报告;

8)日常维护性测试;

APP测试周期可根据项目的开发周期来确定测试时间,一般测试时间为两三周,根据项目情况以及版本质量可适当缩短或延长测试时间。


2.APP测试需要提前准备哪些测试资源?

具体要准备的测试资源,根据实际项目来,可以从以下几个方面出发:

1.IOS设备、Android设备(选取市面上主流手机产品);

2.支付宝/银联支付的项目,需要提前申请支付宝/银联账户等;

3.有秒杀专题的题目,需要规划秒杀时间表;

4.有优惠券使用的项目,需要添加优惠券数据;


3.APP测试和Web测试的区别?

单纯从功能测试的层面上来讲的话,

APP测试、web测试在流程和功能测试上是没有区别的。

相同点:

1.同样的测试用例设计方法;

2.同样的测试方法:都会依据原型图或效果图检查UI;

3.测试页面载入和翻页的速度、登录时长、内存是否溢出等;

4.测试应用系统的稳定性;

不同点:

1.系统结构方面

web项目,b/s架构,基于浏览器的;web测试只要更新了服务器端,客户端就会同步更新。

app项目,c/s结构的,必须要有客户端;app 修改了服务端,则客户端用户所有核心版本都需要进行回归测试一遍。

2.性能方面

web项目 需监测 响应时间、CPU、Memory;

app项目 除了监测 响应时间、CPU、Memory外,还需监测 流量、电量等;

3.兼容性方面

web项目:浏览器(火狐、谷歌、IE等);操作系统(Windows7、Windows10、Linux等)。

app项目:设备系统:iOS(ipad、iphone)、Android(三星、华为、联想等) 、Windows(Win7、Win8)、OSX(Mac);手机设备可根据 手机型号、分辨率、屏幕尺寸不同。

4.相对于 Wed 项目,APP有专项测试

1)干扰测试:中断,来电,短信,关机,重启等。

2)网络测试(模拟2g、3g、4g、5g,wifi网络状态以及丢包情况);网络切换测试(网络断开后重连、3g切换到4g、5g/wifi 等)。

3)安装、更新、卸载,中断、前后台切换。

安装:需考虑安装时的中断、弱网、安装后删除安装文件,全新安装、升级安装、第三方工具安装等情况;

卸载:需考虑第三方工具卸载、直接卸载卸,卸载后是否删除app相关的文件;

更新:分强制更新、非强制更新、增量包更新、断点续传、弱网状态下更新;

中断:来电中断、短信中断、闹钟中断、手机锁定、手机断电、手机死机;

4)界面操作:关于手机端测试,需注意手势,横竖屏切换,多点触控,前后台切换。

5)安全测试:安装包是否可反编译代码、安装包是否签名、权限设置,例如访问通讯录等。

6)边界测试:可用存储空间少、没有SD卡/双SD卡、飞行模式、系统时间有误、第三方依赖(QQ、微信登录)等。

7)权限测试:设置某个App是否可以获取该权限,例如是否可访问通讯录、相册、照相机等。

5.测试工具方面

自动化工具:

APP 一般使用 Appium;

Web 一般使用 Selenium;

性能测试工具:

APP 一般使用Monkey、 JMeter;

Web 一般使用 LR、JMeter;


4.Android手机和IOS手机,系统有什么区别?

1.两者运行机制不同:IOS采用的是沙盒运行机制,安卓采用的是虚拟机运行机制。

IOS 沙盒运行机制:

每个程序都有自己的虚拟地址空间。所以,程序之间不能进行访问。

默认只会将应用的最后运行数据,记录在RAM里面。


Android 虚拟机运行机制:

所有的应用程序都是运行在虚拟机中,用户界面其实是由虚拟机传递的,并且通过虚拟机,Android的任何程序都就可以轻松访问其他程序文件。

所有的Android的应用程序都是运行在RAM里面的,所以会发现有时候Android用着用着就开始有点卡顿。


2. 两者后台制度不同:

IOS中任何第三方程序都不能在后台运行;

安卓中任何程序都能在后台运行,直到没有内存才会关闭。

3.IOS中用于UI指令权限最高,安卓中数据处理指令权限最高。

IOS和Android的APP测试有什么区别?

1.物理按键:Android长按home键呼出应用列表和切换应用,然后右滑则终止应用;iOS所有的返回上一层,只能靠页面功能实现。

2.多分辨率测试:

Android端20多种;

IOS较少。

3. [endif]手机操作系统:

Android较多,

IOS较少且不能降级,只能单向升级;新的IOS系统中的资源库不能完全兼容低版本中的IOS系统中的应用,低版本IOS系统中的应用调用了新的资源库,会直接导致闪退。

4.操作习惯:

Android,Back键是否被重写,测试点击Back键后的反馈是否正确;应用数据从内存移动到SD卡后能否正常运行等。

5.push测试:

Android点击home键,程序后台运行时,此时接收到push,点击后唤醒应用,此时是否可以正确跳转;

IOS点击home键关闭程序和屏幕锁屏的情况(红点的显示)。

6.安装卸载测试:

Android可以通过手机自带的应用市场或者是第三方的手机助手进行下载,下载和安装的平台和工具和渠道比较多;

IOS主要有app store,iTunes和testflight下载。

7.升级测试:可以被升级的必要条件:新旧版本具有相同的签名;新旧版本具有相同的包名;有一个标示符区分新旧版本(如版本号)。

8.支付方式:对于一些有内购功能的APP,

Android直接调用第三方支付渠道完成支付;

IOS需要先在APP store里绑定支付方式,然后通过APP store去完成支付操作。

9.消息推送机制:

Android使用第三方或者自建平台进行消息推送;

IOS的消息推送渠道由苹果官方提供。


6.介绍一个APP抓包工具?

一般用Fiddler,主要用来做app抓包使用,先在Fiddler客户端做好各项配置,端口设置为8888;然后在手机上设置代理,就可以抓包,主要看的是服务器返回的值、还能够修改传入参数、传出的参数、模拟网络延时,构造不同场景。

7.APP日志如何抓取?

可以使用adb命令:adb logcat | find "com.sankuai.meituan" >d:\test.txt

也可以用ddms抓取,手机连上电脑,打开ddms工具;

或者在Android Studio开发工具中,打开DDMS;


7、常见的adb 命令

注:adb 使用的端口号是5037,以下总结工作中常用到的adb命令。

1.查看帮助手册列出所有的选项说明及子命令:

adb help

2. 获取设备列表及设备状态:

adb devices

3.安装应用:adb install 路径\xx.apk, 安装应用;adb install -r 重新安装。

adb install

adb install -r

4. 获取设备的状态,设备的状态有 device , offline , unknown3种,其中device:设备正常连接,offline:连接出现异常,设备无响应,unknown:没有连接设备。

adb get-state

5.卸载应用:adb uninstall <包名>, 后面的参数是应用的包名,区别于 apk 文件名。

adb uninstall

6.将 Android 设备上的文件或者文件夹复制到电脑本地:adb pull  <远程路径> <本地路径>, 如复制 Sdcard 下的 pull.txt 文件到 D 盘:adb pull sdcard/pull.txt d:\,重命名:adb pull sdcard/pull.txt d:\rename.txt。

adb pull

7.推送本地文件至 Android 设备:adb push  <本地路径> <远程路径>, 如推送 D盘下的 ITester.txt 至 Sdcard:adb push d:\ITester.txt sdcard/ (注意sdcard 后面的斜杠不能少)。

adb push

8.结束和启动adb服务:adb kill-server /adb start-server , 结束 adb 服务/启动 adb 服务,通常两个命令一起用,设备状态异常时使用 kill-server,运行 start-server 进行重启服务。

adb kill-server

adb start-server

9.打印及清除系统日志:adb logcat , 打印 Android 的系统日志 ;adb logcat -c,清除日志。

adb logcat

adb logcat -c

10.查找包名/活动名

adb logcat | findstr START

11.生成bugreport文件:adb bugreport , 打印dumpsys、dumpstate、logcat的输出,也是用于分析错误,输出比较多,建议重定向到一个文件中,如adb bugreport > d:\bugreport.log。

adb bugreport

12. 重启 Android 设备:adb reboot ,  adb reboot recovery,重启到Recovery界面;   adb reboot bootloader,重启到bootloader界面。

adb reboot

adb reboot recovery

adb reboot bootloader

13.获取 root 权限:adb root , adb remount,可以直接获取 root 权限,并挂载系统文件系统为可读写状态。

adb root

adb remount

14.返回设备序列号SN值:

adb get-serialno

15.获取设备的ID:

adb get-product

16.进入设备shell:

adb shell

17.列出所有的应用的包名:

adb shell pm list package

18.截屏并保存至 sdcard 目录:

adb shell screencap -p /sdcard/screen.png

19.录制视频并保存至sdcard:adb shell screenrecord sdcard/record.mp4,执行命令后操作手机,ctrl + c 结束录制,录制结果保存至 sdcard:

adb shell screenrecord sdcard/record.mp4

20.获取设备分辨率:

adb shell wm size

21.列出指定应用的 dump 信息,adb shell pm dump 包名。

adb shell pm dump

22.列出对应包名的 .apk 位置,adb shell pm path 包名。

adb shell pm path

23.查看当前终端中的进程信息:

adb shell ps

24.monkey测试:adb shell monkey –p 程序包 –v 测试次数 ,比如“adb shell monkey –p com.htc.Weather –v 20000”意思是对com.htc.Weather 这个程序包单独进行一次20000次的monkey测试。

adb shell monkey –p 程序包 –v 测试次数

25.显示所有程序包:

adb shell ps | grep [process]

26.根据进程pid或包名查看进程占用的内存:

adb shell dumpsys meminfo

adb shell dumpsys meminfo

27. APP 启动:

adb shell am start -n packageName/activity

28. APP 关闭:

adb shell am force-stop 包名

29.监控 APP 启动时间:

adb shell am start -W packageName/activity

你可能感兴趣的:(测试理论知识_移动端)