一、app测试
1.app测试类型
(1)app手工测试:
功能测试在web,在app端进行手工测试
(2)app自动化测试(app的UI自动化,app接口自动化 测试)
用代码或工具代替手工测试app
2、web端和app端测试的区别?
单纯从功能测试的层面上来讲的话,APP 测试、web 测试 在流程和功能测试上是没有区别的。
(1)根据两者载体不一样,则区别如下:
系统结构方面
web项目,b/s架构,基于浏览器的;web测试只要更新了服务器端,客户端就会同步会更新。
app项目,c/s结构的,必须要有客户端;app 修改了服务端,则客户端用户所有核心版本都需要进行回归测试一遍。
(2)性能方面
web项目 需监测 响应时间、CPU、Memory
app项目 除了监测 响应时间、CPU、Memory外,还需监测 流量、电量等
(3)兼容方面
web项目:
1. 浏览器(火狐、谷歌、IE等)
2. 操作系统(Windows7、Windows10、Linux等)
app项目:
1. 设备系统: iOS(ipad、iphone)、Android(三星、华为、联想等) 、Windows(Win7、Win8)、OSX(Mac)
2. 手机设备可根据 手机型号、分辨率不同
(4)相对于 Wed 项目,
app端测试:
1. 功能测试
安装(需考虑安装时的中断、弱网、安装后删除安装文件等情况)
卸载测试:正常安装卸载后app的所有功能是否都正常(需考虑 卸载后是否删除app相关的文件)
升级测试:升级之后app的数据是否丢失 (分强制更新、非强制更新、增量包更新、断点续传、弱网状态下更新)
业务逻辑测试:分解需求使用xmind思维导图工具梳理测试点编写用例用例评审后执行测试
UI测试:界面布局是否混乱 界面内容是否显示正确、清晰
异常测试:断网 弱网 网络切换 来电话 来短信 电量不足等提示
2适配测试:
适配测试:在不同的硬件设备上app能否正常运行的测试
不同的平台:MTK(联发科(芯片产商))/高通(芯片与cpu产商)/展讯(国内芯片)
不同的组件:屏幕、接口、听筒
不同的可选项:cpu、内存、存储
3. 兼容性测试:
兼容性测试:不同软件环境的App能否正常运行的测试
不同的操作系统:android ios以及系统版本
不同的手机品牌:小米 华为 苹果 oppo vivo 三星等以及型号
不同手机尺寸:4.8 5.1 5.5 6.1 ( (关于手机端测试,需注意手势,横竖屏切换,多点触控,前后台切换))
不同屏幕的分辨率:1080*1920 1080*2340 1080*2400(宽1080个像素点*
长2400个像素点)越高表示屏幕的像素点越多 图案就更清晰
不同网络:2G 3G 4G 5G wifi
4. 专项测试:
专项测试:因为app的终端是手机,严格来说属于手机的测试范畴
耗电测试:正向耗电测试(直接测试耗电量) 逆向耗电测试(系统资源占用情况)
后台耗电测试(后台运行耗电量)
流量测试:流量占用 后台流量
内存泄漏测试:内存占用 内存泄漏 内存不足
网络专项测试:弱网
蓝牙专项测试:蓝牙连接
T卡专项测试:2g 4g 8g 16g 32g手机存储卡
SIM卡专项测试:中国移动SIM卡 中国电信SIM卡 中国联调SIM卡
PS:指出响应报文协议及版本,状态码,响应头,响应体
权限测试:设置某个App是否可以获取该权限,例如是否可访问通讯录、相册、照相机等
边界测试:可用存储空间少、没有SD卡/双SD卡、飞行模式、系统时间有误、第三方依赖(QQ、微信登录)等
5. App稳定性测试:
稳定性测试:软件长时间持续运行,系统版本是否稳定,是否能持续的为用户
提供服务
2. 稳定性指标:
异常次数
异常频率
6、安全测试:安装包是否可反编译代码、安装包是否签名、权限设置,例如访问通讯录等
面试题:
app你关注哪些方面?
web 端和app端测试区别?
如何做好app测试?
=====================================================
(3)IOS 和 Android
1.两者运行机制不同:IOS采用的是沙盒运行机制,
iphone沙盒机制解释:应用程序位于文件系统的严格限制部分,程序不能直接访问其他应用程序。以杀毒软件中的沙盒技术解释一下。“沙盒”技术是发现可疑行为后让程序继续运行,当发现的确是病毒时才会终止。“沙盒”技术的实践运用流程是:让疑似病毒文件的可疑行为在虚拟的“沙盒”里充分表演,“沙盒”会记下它的每一个动作;当疑似病毒充分暴露了其病毒属性后,“沙盒”就会执行“回滚”机制:将病毒的痕迹和动作抹去,恢复系统到正常状态。
2. 安卓采用的是虚拟机运行机制。
安卓虚拟机机制解释:android本身不是为触摸屏打造的,所以所有的应用都是运行在一个虚拟的环境中,由底层传输数据到虚拟机中,再由虚拟机传递给用户UI,任何程序都就可以轻松访问其他程序文件。
② 两者后台制度不同:IOS中任何第三方程序都不能在后台运行;安卓中任何程序都能在后台运行,直到没有内存才会关闭。
③ IOS中用于UI指令权限最高,安卓中数据处理指令权限最高。
④ ios系统流畅性更具优势。Android系统采用虚拟机的运行机制,需要消耗更多系统资源。Android系统使用一段时间后容易出现卡顿,而ios系统则很少出现卡顿现象,并且Android系统的桌面灵敏性不如ios系统。
⑤ Android的编程语言是JAVA,而iOS的则为Objective-C。Objective-C的优势是效率高但比较“唯一”,而JAVA的优势则是跨平台不过运行效率相对偏低。
⑥ 操作界面来讲,ios系统界面单一。而Android的界面可以根据自己的喜好来设置,更加多样化。
⑦ 省电的角度来讲,ios系统更加省电。这是系统机制决定的。Android会占用更多的资源来支撑系统运行,导致了它会比较费电。
=========================================================================================
(4)app测试包 (apk包)
测试app下载apk
线上包:生产包 (上线产品)
测试包:(灰度包) 没有上线
开发提交代码包======合并代码包========jenkins构建=======控制台生成一个下载连接,下载(扫二码)
下载方式:
(1)通过扫二维码,通 过扫码下载最新的灰度包
(2)通过jenkins自动打包,生成下载地址,点击链接下载灰度包
在线生成二维码:
https://cli.im/
=========================================================================================
4、app测试流程
1)看需求,分析需求
(2)写测试计划(自动化用例场景设计)
(3)写用例( 自动化脚本的编写)
(4)搭建环境(需要下载app测试包)
(5)部署项目包
(5)测试(测试前:冒烟测试,测试中:执行用例 修改bug,验证bug,又要重新打包 安装新的app包在测试)
(6)输出app测试报告
=========================================================================================
5、搭建app自动化测试环境
原创文章,作者:sunnyman218,如若转载,请注明出处:https://blog.ytso.com/tech/273266.html