app 测试梳理


APP测试流程与web测试流程类似,分为如下七个阶段:
    1.根据需求说明书编写测试计划;
        参与人员
        各阶段所需时间
        测试目标
    2.制定测试方案,主要是测试任务、测试人员和测试时间的分配;
    3.测试准备,包括搭建测试环境,准备测试数据,确定测试方法;
    4.测试用例的设计与编写,进行用例评审及补充完善;
    5.执行测试时首先进行冒烟测试,然后对主功能流程进行测试,包括客户端的单个功能模块,及功能业务逻辑功能交互,回归测试;
        冒烟测试
        主功能流程测试,性能,压力等非功能性测试
        回归测试
        上线测试
    6.提交测试结果,包括测试用例,测试计划;
    7.日常维护性测试;


APP测试需要提前准备哪些测试资源?
    1.IOS设备、Android设备(选取市面上主流手机产品);
    2.支付宝/银联支付的项目,需要提前申请支付宝/银联账户等等;
    3.有秒杀专题的题目,需要规划秒杀时间表;
    4.有优惠券使用的项目,需要添加优惠券数据;


安卓 app 内存不足时,如何获取内存
    系统优先结束被挂起(暂停)的进程,释放内存
    
app 测试常见问题有哪些?原因有哪些
    常见问题:
        crash
        ANR(应用无响应、卡死)
    一般原因:
        设备碎片化
        网络波动大
        内存泄漏
        代码编写错误

app自动化测试工具
        (对比其他熟悉的自动化工具的优缺点
        自动化的简要方案)

app与web测试区别
    相同点:
        1、UI测试
            需要检查界面布局,风格和按钮是否美观,统一等
        2、设计测试用例依据等价类,边界值等方法,测试原理相同
        3、大多数都采用黑盒测试方法来验证业务功能
        4、性能测试
            测试页面载入、翻页的速度、登录市场是否溢出等问题(、
        5、测试应用系统的稳定性   
            
    不同点:
        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有专项测试
            干扰测试:中断,来电,短信,关机,重启等。    
            弱网络测试(模拟2g、3g、4g、5g,wifi网络状态以及丢包情况);网络切换测试(网络断开后重连、3g切换到4g、5g/wifi 等)。
            安装、更新、卸载,中断、前后台切换。
                安装:需考虑安装时的中断、弱网、安装后删除安装文件,全新安装、升级安装、第三方工具安装等情况;
                卸载:需考虑第三方工具卸载、直接卸载卸,载后是否删除app相关的文件;
                更新:分强制更新、非强制更新、增量包更新、断点续传、弱网状态下更新;
                中断:来电中断、短信中断、闹钟中断、手机锁定、手机断电、手机死机;
            界面操作:关于手机端测试,需注意手势,横竖屏切换,多点触控,前后台切换。
            安全测试:安装包是否可反编译代码、安装包是否签名、权限设置,例如访问通讯录等。
            边界测试:可用存储空间少、没有SD卡/双SD卡、飞行模式、系统时间有误、第三方依赖(QQ、微信登录)等。
            权限测试:设置某个App是否可以获取该权限,例如是否可访问通讯录、相册、照相机等。
        5.测试工具方面
            自动化工具:APP 一般使用 Appium; Web 一般使用 Selenium;
            性能测试工具:APP 一般使用Monkey、 JMeter; Web 一般使用 LR、JMeter;
            
            
Android手机和IOS系统区别
    两者运行机制不同:
        IOS采用的是沙盒运行机制
        安卓采用的虚拟机运行机制
    两者后台机制不同:
        IOS任何第三方程序都不能在后台运行
        安卓中任何程序都能在后台运行,直到没有内存才会关闭
    指令权限
        IOS用于UI最高
        安卓中数据处理指令权限最高
    

IOS和Android的APP测试有什么区别?
    1.物理按键:
        Android长按home键呼出应用列表和切换应用,然后右滑则终止应用;iOS所有的返回上一层,只能靠页面功能实现。
    2.多分辨率测试:
        Android端20多种;IOS较少。
    3.手机操作系统:
        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的消息推送渠道由苹果官方提供。    
    
    
    

安装和卸载
    对于安装,要考虑以下几点
        是否可以正常安装:1.命令行;2.第三方工具,比如豌豆荚、pp助手等;
        不同的系统、机型、版本是否能安装
        安装过程是否可以暂停,暂停后能否再继续;
        安装时空间不足时,是否有提示;
        安装时关机或者断网等,是否符合需求;
        卸载也是如此,除此要考虑是否所有所有安装的文件夹都被删除。

                        
运行:
    APP运行,从以下几个方面考虑:
        是否可以正常打开;
        运行是否流畅;
        网络异常时,运行会不会受影响;
        
        
注册和登录:
    主流的注册和登录有三种:
        账号密码注册;
            正常注册和登录;
            已注册的账号,再次注册;
            未注册直接登录;
            密码展示:明文还是**;
            长度和规则,数据校验;
            单点登录、多点登录,修改信息是否同步;
            修改密码后,已登录的用户是否要重新登录;
            切换账号,信息是否及时更新;
        
        
        手机号、邮箱验证注册;
            手机号、邮箱是否有格式校验;
            验证短信或者邮件是否及时;
            正确输入后,是否可以正常登录;
            验证码错误,是否有提示;
            短信或者邮件文案是否友好;
            重复发送验证码,前一个是否失效;
            验证码发送次数是否有做限制;
            验证码是否设置有效时长;
        
        第三方授权直接登录:
            数据同步是否正确;
            取消授权,是否符合需求;            
        
    

权限设置:
    由于很多APP都依赖于位置、通知、网络等用户权限,针对权限可以通过以下方面去测试:
        首次安装或者启动时,是否同意启用这些权限;
        消息权限开启,能接收信息;关闭后是否不再接受信息;
        位置权限开启,可以定位;关闭位置权限,需要定位才能使用的功能是否会提示或者引导开启;
        网络关闭是否有提示或者引导;

软件更新:
    强制更新:多次关闭或者打开应用,是否跳过强制更新;点击更新,是否前往下载页面;是否可以关闭弹出框;
    非强制更新:是否正常关闭弹出框;重启是否提醒更新;点击更新,是否前往下载页面;
    取消更新,老版本是否有影响;
    更新能否成功,是否是最新版本;
    
    
    
网络环境:
    主要是针对2G、3G、4G、5G、WIFI网络环境进行测试:
        网络正常时,各个功能是否正常;
        网络异常时,数据交换失败是否有错误提醒;
        有网 >>>无网 >>> 有网,数据是否能恢复;


兼容性测试:
    从不同系统,版本,分辨率,机型(不同厂家ROM)等维度进行适配测试;
    通常选择在少数主流设备上执行全向的用例,在其他兼容性范围内的设备上覆盖主要功能的测试用例;
        功能界面在不同分辨率下是否存在UI展示问题;
        可以测试主流的机型或者版本,也可以用第三方平台。
        
        
异常需求测试:
    内存空间为空时,应用能否运行;
    是否有重力感应,切换横竖屏;
    反复操作某个功能,是否出现闪退;
    运行时出现电话等是否有影响;
    分页处理技术,是否有重复的数据,数据显示是否完整,到达最后一页后是否还有数据进行显示;
    数据的排序方式;
    界面跳转是否正确;
    出现异常情况是否有提示,是否跳转到已经设定好的默认页面;
    图片处理的地方,是否容易出现程序崩溃现象,主要是图片压缩机制;
    前端展示的数据,后台进行变动(增、删、改),是否是实时更新;
    前端主动发出请求,后台数据库中是否存在相应的数据同时包括数据的关联性。


    
    
    
        
    

app测试有哪几种环境
    1、本地环境
        app安装的手机环境和电脑搭建的自动化测试环境(比如安卓SDK)
    2、服务器环境
        war包部署的服务器,服务器可以通过浏览器访问
        
简单介绍按android SDK的安装步骤
    1、下载jdk和安装sdk
    2、安装jdk、配置环境变量(java_home、classpath、path)


移动应用及其服务端的测试点
    移动应用:
        权限
        ui
        功能
        性能测试
        中断
        安装运行卸载
        兼容性
        安全性
        回归
        升级更新
        用户体验
    服务端:
        接口测试
        性能测试
        安全测试
 


如何判断bug是客户端还是后台问题
    1.界面UI布局显示问题--前端
    2.页面字段校验问题--前端
    3.页面功能实现问题--前端?后台?
        前2个很容易确定是前端的问题。第3个牵扯到前端和后台共同处理,所以区分时需要理清楚。谷歌浏览器F12开发者工具Network一栏。
        如下图:点击【搜索】按钮,可以看到一个请求pageQuerySupplier
        点击进去之后Headers状态是200,表示请求发送成功。Request Payload是请求数据。
        Preview里面试响应数据。 
            如果请求发送失败;或者请求发送成功,返回数据失败。问一下开发是不是服务器关了(可能是在发版)。
            如果请求成功,返回结果也成功。这时候查看返回数据。如果没有返回前端需要的字段,后台问题。如果返回了前端需要的字段,前端没有校验住,前端问题。
    4.页面白板。页面本来就没有内容,或者加载缓慢。
    5.数据库数据也更新了,浏览器缓存也清理了,数据就是之前的老数据,是什么问题?应该使用了redis缓存数据库,redis中没有修改值。
    


安卓中如何取出日志信息
    1、把安装系统日志信息实时导入到本地   adb logcat - v.time>d:\mylog.log;
    2、运行使用某个app、实时获取该app的日志信息(cmd里面的返回信息):  adb shell monkey -p com.andorid.calendar -v 1000>d:\mylog2.log;

adb三个组件是指?
ADB作为一个客户端/服务器架构的命令行工具,主要由3个部分组成。
    adb clent(客户端):可以通过它对Android应用进行安装、卸载及调试。
    adb service(服务器):管理客户端到Android设备上abd后台进程的连接,负责管理client和damon进行通信。  
a   db daemon(守护进程):运行在Android设备上的adb后台进程。

常见的adb命令:
    查看当前连接的设备  
        adb devices;
    安装软件:
        adb install 路径\xx.apk;
    卸载软件:
        adb uninstall<包含>
    从电脑上发送文件到设备
        adb push <本地路径> <远程路径> adb push c:\test1.txt/sdcard/:
    从设备上下载文件到电脑
        adb push <远程路径> <本地路径> adb push /pull/sdcard/test1.txt D:
    实时获取日志
        adb logcat -v time > d:\mylog.log
    登录终端设备:
        adb shell;
    查找包名/活动名
    关闭APP语法
    监控APP启动时间
    Monkey命令
    
APP这么多主流机型如何测试
    魅族
    华为
    小米
    苹果
    
App(闪退)原因
    缓存垃圾过多
    应用版本兼容问题
    
    
appium 都有哪些启动方式
    命令端启动
    命令行启动
    

安卓UI自动化测试工具
    appium
    robotium
    

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值