app测试包(后缀名是apk的包)(ios的后缀名:.ipa)
在网上可以看到的包是(生产包) app 的包下载(灰度包,测试包),开发提交代码,合并代码,通过jenkins 构建,生成测试包:生成的方式:第一种:一个连接(url)的方式 (下载灰度包) 第二种:二维码的形式 (下载灰度包)
app功能测试和app自动化测试
一、app手工测试
app手工测试:就是在app上进行手工测试(手点)
app自动化测试使用代码或工具来代替手工测试(python+appium)
二、web测试和app测试区别?( 重点)
(1)单纯从功能测试的层面上来讲的话,app测试、web测试在流程和功能测试上是没有区别
(2)根据两者载体不一样,区别:
web项目:b/s 架构,基于浏览器的;web测试只要更新服务器端,客户端就会同步更新
app项目 :c/s 架构 必须在客户端;app修改了服务端,则客户端用户所有核心版本都要进行回归测试一遍。
(3)性能方面:
web项目 需检测响应时间,cpu
app项目 需检测响应时间,cpu,还要考虑流量,电量
(4)兼容性方面
web项目:
浏览器(火狐、谷歌、IE等)、版本:ie8、ie10
操作系统(Windows7、Windows10、Linux等)
app项目:
设备系统: iOS(ipad、iphone)、Android(三星、华为、联想等) 、Windows(Win7、Win8)、OSX(Mac)、鸿蒙系统、mac
手机设备可根据 手机型号、分辨率不同
相对于 Wed 项目,
APP有专项测试:
干扰测试:中断,来电,短信,关机,重启等
弱网络测试(模拟2g、3g、4g,wifi网络状态以及丢包情况);网络切换测试(网络断开后重连、3g切换到4g/wifi 等)
安装、更新、卸载
安装:需考虑安装时的中断、弱网、安装后删除安装文件等情况(手动安装、自动安装)
卸载:需考虑卸载后是否删除app相关的文件
更新:分强制更新、非强制更新、增量包更新、断点续传、弱网状态下更新
界面操作:关于手机端测试,需注意手势,横竖屏切换,多点触控,前后台切换
安全测试:安装包是否可反编译代码、安装包是否签名、权限设置,例如访问通讯录等
边界测试:可用存储空间少、没有SD卡/双SD卡、飞行模式、系统时间有误、第三方依赖(QQ、微信登录)等
权限测试:设置某个App是否可以获取该权限,例如是否可访问通讯录、相册、照相机等
三、app系统分类
在市面上app测试流行,分为安卓端和ios端(ios端必须要maos系统,还要企业级的证书,在公司一般不会用ios做自动化)
开发人员都是用模拟器,(1、模拟手机种类多 2、连接稳定 3、运行稳定 )
面试题:app中ios和安卓区别?
① 两者运行机制不同:IOS采用的是沙盒运行机制,安卓采用的是虚拟机运行机制。
iphone沙盒机制解释:应用程序位于文件系统的严格限制部分,程序不能直接访问其他应用程序。以杀毒软件中的沙盒技术解释一下。“沙盒”技术是发现可疑行为后让程序继续运行,当发现的确是病毒时才会终止。“沙盒”技术的实践运用流程是:让疑似病毒文件的可疑行为在虚拟的“沙盒”里充分表演,“沙盒”会记下它的每一个动作;当疑似病毒充分暴露了其病毒属性后,“沙盒”就会执行“回滚”机制:将病毒的痕迹和动作抹去,恢复系统到正常状态。
安卓虚拟机机制解释:android本身不是为触摸屏打造的,所以所有的应用都是运行在一个虚拟的环境中,由底层传输数据到虚拟机中,再由虚拟机传递给用户UI,任何程序都就可以轻松访问其他程序文件。
② 两者后台制度不同:IOS中任何第三方程序都不能在后台运行;安卓中任何程序都能在后台运行,直到没有内存才会关闭。
③ IOS中用于UI指令权限最高,安卓中数据处理指令权限最高。
④ ios系统流畅性更具优势。Android系统采用虚拟机的运行机制,需要消耗更多系统资源。Android系统使用一段时间后容易出现卡顿,而ios系统则很少出现卡顿现象,并且Android系统的桌面灵敏性不如ios系统。
⑤ Android的编程语言是JAVA,而iOS的则为Objective-C。Objective-C的优势是效率高但比较“唯一”,而JAVA的优势则是跨平台不过运行效率相对偏低。
⑥ 操作界面来讲,ios系统界面单一。而Android的界面可以根据自己的喜好来设置,更加多样化。
⑦ 省电的角度来讲,ios系统更加省电。这是系统机制决定的。Android会占用更多的资源来支撑系统运行,导致了它会比较费电。
四、app测试包(后缀名是apk的包)(ios的后缀名:.ipa)
在网上可以看到的包是(生产包)
app 的包下载(灰度包,测试包),开发提交代码,合并代码,通过jenkins 构建,生成测试包:
生成的方式:
第一种:一个连接(url)的方式 (下载灰度包)
第二种:二维码的形式 (下载灰度包)
五、app测试流程:(和H模型一样)
1、看需求,分析需求
3、写用例 (自动化脚本的编写)
4、搭建环境(部署好app自动化环境)
5.测试(通过jenkins打包生成最新的apk包,下载后安装到模拟器或手机中)
6、测试,开发修改bug
7、重新提交版本,在打包,在进行测试
8、输出测试报告
六、app自动化工具appium 的优点?
优点
(1)支持多种应用程序
(2)测试对象无需编译
(3)脚本实现多样化以及工具的多样
(4)支持跨平台
缺点
(1)工具必须依赖电脑才能实现自动化
(2)工具只能用于ui自动化测试
七、App稳定性测试:
稳定性测试:软件长时间持续运行,系统版本是否稳定,是否能持续的为用户提供服务
2. 稳定性指标:
异常次数
异常频率
3. App稳定性测试实战:
Monkey工具
Monkey是向系统发送随机的用户事件流(如按键输入,触摸屏输入和手势输入等),实现对正在开发的应用程序进行稳定性测试。可以更好的模拟用户操作,确保App的稳定性
一、app出现ANR(无响应),是什么原因导致的?
导致ANR的根本原因简单的总结有以下两点:
1.主线程执行了耗时操作,比如数据库操作或网络编程
2.其他进程(就是其他程序)占用CPU导致本进程得不到CPU时间,比如其他进程的频繁读写操作可能会导致这个问题。
细分的话,导致ANR的原因有如下几点:
1.耗时的网络访问
2.大量的数据读写
3.数据库操作
4.硬件操作(比如camera)
5.调用thread的join()方法、sleep()方法、wait()方法或者等待线程锁的时候
6.service binder的数量达到上限
7.system server中发生WatchDog ANR
8.service忙导致超时无响应
9.其他线程持有锁,导致主线程等待超时
10.其它线程终止或崩溃导致主线程一直等待。
二、App出现crash(崩溃)原因有哪些?
为什么App会出现崩溃呢?百度了一下,查到和App崩溃相关的几个因素:内存管理错误,程序逻辑错误,设备兼容,网络因素等,如下:
1.内存管理错误:可能是可用内存过低,app所需的内存超过设备的限制,app跑不起来导致App crash。
或是内存泄露,程序运行的时间越长,所占用的内存越大,最终用尽全部内存,导致整个系统崩溃。
亦或非授权的内存位置的使用也可能会导致App crash。
2.程序逻辑错误:数组越界、堆栈溢出、并发操作、逻辑错误。
e.g. app新添加一个未经测试的新功能,调用了一个已释放的指针,运行的时候就会crash。
3.设备兼容:由于设备多样性,app在不同的设备上可能会有不同的表现。
4.网络因素:可能是网速欠佳,无法达到app所需的快速响应时间,导致app crash。或者是不同网络的切换也可能会影响app的稳定性。
三、app测试中的数据库数据和app上的不一致?
原因:app上勋在缓存和原有进程导致
在后台数据据中,新增数据进行测试,打开app端查看对应的数据,不存在最新的数据,没有更新;测试需要杀死进程、清理缓存,在进行app启动;
四、错误现象:登录状态下仅支持单点登录,会弹出提示:该账号在B手机已登录,A手机强制退出登录;实际要实现:登陆时不受单点登陆的限制或者指定登录设备次数3,5台
原因:未按产品需求说明书中的功能实现,如按照产品需求说明书,白名单内的用户进行登陆时不受单点登陆的限制,也就是说同一个账号可以同时在A手机和B手机登录,但是开发实现错误,白名单内的用户在A手机登录后,在B手机登录,然后点击A手机上APP的功能,会弹出提示:该账号在B手机已登录,A手机强制退出登录。
解决:找开发,增加多点登录功能权限,设置登录设备台数;
五、app闪退有哪些原因?
闪退的原因:一、软件本身有问题;二、系统出现问题。
1、软件问题
(1)app 不兼容系统当前系统版本
(2)app有了新版本,没有跟新(软件对手机分辨率有一定的要求)
(3)软件有bug
(4)下载和更新不是官网下载的,是第三方软件下载的
(5)网络差(软件对网速的要求比较高,如果用户使用 2 G/3 G 网络)
(6)分辨率不兼容(软件对手机分辨率有一定的要求)
(7)手机被植入病毒
2、系统出现问题
(1)手机内存不足,比如:打开很多app,导致后台反应出现问题
(2)软件授权出现问题
(3)设备已经越狱,导致系统不稳定,闪退成了常事
(4)手机 缓存垃圾太多
(5)安装路径位置错误(比如:安装外置存储卡)
(6)手机配置问题 (比如手机配置低)
解决办法:
1、卸载重新下载新版本,(安装并设置手机储存空间为安装路径即可)
2、及时更新新的版本
3、拒绝从第三方下载(卸载非官方下载的软件)
4、重启应用
5、检查应用兼容性
6、检查应用权限(授予必要的权限即可。 )
7、卸载重装应用
8、清理手机存储空间
9、 恢复出厂设置
10、检查网络(切换好的网络环境)
六、app白屏现象有哪些原因引起?
1、手机使用过长
2、手机本身质量问题
3、手机运行内存小,或不足
4、软件和设备不兼容
5、运行过多软件
6、手机版本问题