app如何测试
测试前,先熟悉app的原型图和业务需求,确定测试点,编写测试用例,app开发好后,先做一个冒烟测试,看看软件的基本功能是否可用,如果正常,我们再做功能测试,UI测试,兼容性测试,交叉事件测试,安装卸载测试等。
app测试考虑哪些方面
功能、ui、兼容、交叉事件、用户体验、安全、性能、安装/卸载/升级、弱网
app测试与web测试的区别
1)、系统架构:web端系统,更新服务器,不需要更新客户端;APP如果更新了服务端,客户端也要更新并测试;
2)、兼容性。Web端要考虑不同的浏览器内核进行测试(IE、chrome、Firefox),APP的兼容性要考虑选择主流的机型,不同的分辨率、尺寸, 以及不同的操作系统;
3)、App要考虑交叉事件测试,安装,卸载,前后台切换测试;
4)、App还要考虑界面操作,如:横竖屏切换,多点触控,事件触发区域。
app兼容性测试关注哪些?
项目组有哪些手机就测试哪些手机,如果正规测试的话会考虑以下方面:
1.主流手机型号
2.不同的操作系统和版本
安卓(7-12)
ios(10以上)
3.不同的手机屏幕/尺寸/分辨率
andoid 的主流分辨率为:1920*1080,1280*720,2340*1080 等,主流尺寸是 5.x、6.x 英寸。
iOS 的主流分辨率为:2208*1242, 1334*750, 2436*1125 等,主流尺寸为 5.5~6.5 英寸。
4.APP老版本的兼容
app兼容性存在哪些问题
1.ui界面显示不对
适配性问题
2.部分功能不能使用
公司预算不够如何完成兼容性测试
1.用模拟器测试
2.采用云平台
testin平台
3.网上租赁手机
4.借项目组手机
adb命令有哪些?
adb命令查看cpu、内存
cpu:adb shell "top"
内存:adb shell dumpsys meminfo 包名
app性能测试
手机端
(monkey)一种稳定性测试,考虑app是否存在崩溃无响应(面试优先讲这个)
monkey
一般运行1晚上
(延时300毫秒,运行次数5万会运行1小时)
面试建议讲这个
(itest+monkey)一种是监控app对手机的cpu/内存/电量/流量等指标
监控工具:itest/gt/性能狗
指标怎么来的
指标:运行过程中cpu在20%以下,内存在200MB以下(不同的app指标不一样),电量1小时在10%以下
服务端(jmeter+接口并发)
拿到开发提供接口文档,用jmeter并发
app稳定性测试的流程
APP出现ANR的原因
1、线程阻塞的
2、内存不足
3、CPU满负荷
APP出现CRASH的原因
1、空值指针
2、数组越界
3、内存不足
4、CPU满负荷
monkey原理
每个安卓都有monkey,需要用adb使用它,是一个随机自动化的工具
monkey的优缺点
优点:操作简单,方便好用
缺点:随机自动化,不能指定点击某个地方(需要白名单)
monkey如何延迟执行?
--throttle 300
monkey忽略异常的命令
--ignore-crashes
忽略崩溃
--ignore-timeouts
忽略超时
--ignore-security-exceptions
忽略安全许可/网络许可
monkey回归测试?
-s seed值
monkey正在运行如何停止
1.adb shell进入shell模式
2.输入命令ps | grep monkey查看进程号
3.kill pid(进程号)杀死即可停止
monkey怎么设置触摸、滑动事件
--pct-touch 50
--pct-motion 50
安卓测试和ios测试的区别
物理按键
安卓有是三个按键
苹果只有一个home键
兼容性
安卓多
苹果少
环境
生产环境
安卓任何商店都可以下载
app store下载(上线要审核)
测试环境
安卓直接apk安装
ios需要依赖平台(蒲公英/testflight)
埋点测试
概念:主要是用于运营,收集用户平时访问app的数据,针对某个页面/模块/场景
实现:一般采用的也是第三方平台
友盟
神策
流程:产品提供个埋点字段表看相关eventcode是否都上报就行了,查看埋点日志方式可以通过抓包或者使用Android studio和Xcode,操作某些业务app主功能case,可以在控制台过滤关键词查到日志信息对比埋点表是否一致
app的分类
原生app
优点
加载速度快
缺点
1.研发费用高,时间长
2页面不够精致
混合app
优点
研发费用不高
页面比较好看
缺点
加载速度慢
区别
服务器原生的代码更新,客户端也要更新
H5的代码更新后,客户端只需要刷新就更新了
webapp
H5页面
app如何打包
安卓
一般是开发打包好的apk包,直接用adb命令安装测试
ios
公司采用的是蒲公英平台,开发给二维码,扫码安装
把ios设备的UDID给ios开发绑定
testflight
app的开发工具
安卓
开发语言java,开发工具eclipse(过时)
主流用的是Android studio+安卓sdk
ios
开发语言Object-C、Swift,开发工具Xcode
APP推送的原理
一般采用第三方平台推送(极光推送)
支付费用,app植入推送sdk
推送机制
定时推送
一般在第三方公司推送管理后台设置
app推送如何测试?
定时推送是否推送成功,信息是否准确
点击推送内容是否跳转到指定页面
未开启通知是否可以接受推送
不同手机系统是否可以接受推送
在2G/3G/4G/wifi网络情况下是否接受推送
推送的数量,在app角标统计数量是否正确
app运行情况下接受推送
app进程在后台情况下接受推送
APP未开启是否接受到推送
手机锁屏情况下接受推送
手机关机后开机是否接受到推送
冷启动,热启动什么意思?
冷启动重新打开app
热启动就是再后台打开
如何查看app内存泄漏
概念:app在使用过程占用内存越来越多,闲置内存没被释放
1.使用eclipse的DDMS工具
1.把手机和电脑用usb进行连接
2.打开eclipse的DDMS窗口
3.点击手机上的应用进程,在ddms窗口选中进程,点击update heap
4.在ddms右边窗口点击Cause CG(一次即可),然后开始玩手机上的app
5.关注ddms窗口data object内的Total Size的值,是否一直再增长
6.如果在增长就存在内存泄漏
2.使用GT工具监控内存泄漏
1.打开GT工具,选择需要监控的app,选择指标pss
2.监控一段时间后,到处GT的监控结果,主要查看内存指标
3.查看内存指标内的Native/Dalvik值,如果一直再持续增长就存在内存泄漏
3.使用adb命令也可以监控内存泄漏
定位内存泄漏的工具
Mat
安全测试怎么做的
1.敏感是否加密,在网络传输中是否加密,拦截篡改数据
2.异地登录是否有提示
3.同一个账号登录不同的设备是否有提示
4.系统是否允许多次非法的登陆,是否有次数限制;
5.注册的验证码是否能重复使用,是否有超时限制;
6.获取验证码后,换一个手机号是否可以登录或者注册、修改密码
7.是否可以一直获取验证码
8.限制/允许使用手机某些功能,如:读取联系人信息,调取相机,接入网络等;
9.sql注入漏洞
有专门的安全测试平台(专门安全测试人员)
app端用免费爱加密平台(爱加密)
直接把apk丢进去生成测试报告
web端可以使用IBM公司的APPScan工具
直接把url丢进去生成测试报告
app自动化
一般使用python+appium去做,也是根据元素定位操作,和selenium差不多
面试可以说没有在实际项目作过,因为app研发周期比较短,前端元素不稳定,劳力和产出不成正比,所以没做。
如果要做的话,可以用接口自动化实现回归测试.