zoukankan      html  css  js  c++  java
  • App项目测试实战(一)--手工测试理论基础

    APP测试范围

    APP测试分类

    • 业务功能测试
    • APP专项测试
      • 兼容性测试
      • 安装、卸载、升级测试
      • 交叉事件测试
      • Push消息推送测试
      • 性能测试
      • 其他测试
        • 用户体验
        • 极限、边界
        • 权限

    业务功能测试

    概念

    按照用户的需求(需求说明书、原型等)去检验检测开发的代码是否实现用户的功能性需求。

    测试对象

    • 功能点(单独模块)==》单元测试
    • 多模块==》集成测试
    • 业务流程==》系统测试、验收测试、冒烟测试

    测试方法

    • 测试理论阶段与测试用例设计方法等既可适用于WEB产品,也适用于APP产品。
    • 理论阶段设计测试用例8大方法:
      • 等价类
      • 边界值
      • 因果图
      • 判定表
      • 场景法
      • 流程图
      • 正交法
      • 错误推测法
    • 项目阶段适用的测试用例设计方法:
      • 等价类与边界值组合
      • 需求==》测试点==》测试用例(一个测试点就是一条测试用例)
      • 基于场景与业务流程设计测试用例

    APP专项测试——兼容性测试

    概念

    APP产品在不同的软件环境与硬件环境上都有很好的可移植性(都能正常工作)。

    测试关注点

    手机型号
    操作系统
    • Android
      • 4.X
      • 5.X
      • 6.X
      • 7.X
      • 8.X
      • 9.X
    • iOS
      • 11.X
      • 12.X
    屏幕分辨率、尺寸
    屏幕分辨率
    • Android
      • 1080x1920
      • 720x1280
    • IOS
      • 2208*1242
      • 1334*750
    尺寸
    • 4.7
    • 5.5

    参考网站:http://www.woshipm.com/screen/

    网络环境
    • wifi
    • 2G
    • 3G
    • 4G
    • 5G

    测试机的选取原则

    信息的获取渠道(扩展)

    • 第三方在线统计排名(腾讯移动分析、百度研究院等)
    • 官方数据(android、ios的官网)
    • 埋点技术(技术手段)

    APP专项测试——交叉事件测试

    概念

    交叉测试又叫冲突测试或者干扰测试。
    是指一个功能正在执行过程中,另外一个事件或操作对该过程进行干扰的测试。

    测试的关注点

    • 拨打/接听电话
    • 接收/发送短信息
    • 插拔耳机
    • 网络切换
    • 系统自带应用(摄像头、计算器等)

    APP专项测试——安装、卸载、升级测试

    安装类型

    • Andriod:.apk
    • ios: .ipa

    安装渠道

    • Andriod
      • 应用商城(小米、华为、vivo等)
      • 豌豆荚
      • 应用宝、360手机助手等
    • ios
      • APP Store

    安装测试测试关注点

    正常情况
    • 正常安装测试,检查是否安装成功
    • APP版本覆盖测试
    • 回退版本测试
    • 在不同型号、操作系统、屏幕大小、分辨率上的手机进行安装
    • 安装完成后,能否正常启动应用程序
    • 安装完成后,重启手机能否正常启动应用程序
    异常情况
    • 安装时内存不足
    • 安装过程中的意外情况(强行断电、断网、来电话了、查看信息)等等
    • 能否取消安装

    卸载测试关注点

    正常情况
    • 用自己的卸载程序进行卸载,检查是否卸载干净
    • 用第三方工具,检查是否卸载干净
    • 不同系统、硬件环境、网络环境下进行卸载
    • 卸载后再次安装,是否正常使用
    异常情况
    • 卸载中出现异常情况能否恢复(比如手机关机,内存、没电等),程序是否还能运行
    • 卸载后是否有残留,是否能够再次进行安装
    • 是否可以取消卸载 软件恢复使用

    升级测试关注点

    更新版本需要提示用户
    考虑是否进行强制升级
    • 软件存在严重缺陷
    • 软件不能够向前兼容
    是否能够跨版本升级
    • V5.0 ==》 V6.0 ==》 V7.0

    断点续传

    程序下载中间断开(断网,关机),恢复后,能够接着原来的内容继续下载。

    APP专项测试——push消息推送测试

    概念

    push即为消息推送测试,主要目的就是为了唤醒或提醒用户

    对象

    • 全部推送
    • 部分推送
    • 精确推送

    消息形式

    • 弹窗
    • 消息通知栏

    测试关注点

    • Push消息应该按设定规则发送特定用户
    • APP在后台运行时,应能正常收到其Push消息
    • 设备锁屏状态下,应能正常收到APP的Push消息
    • 设备网络断开后再一次建立连接时,应能收到Push消息
    • 系统设置不接收该APP通知消息时,用户应该不再收到Push消息

    APP专项测试——性能测试

    性能测试指标

    • 内存
    • CPU
    • 流量
    • 电量
    • 启动速度
    • 界面切换速度

    测试的关注点

    • APP的启动时间是否过长;
    • APP使用时对CPU、内存的占用情况;
    • APP使用时,电量流量的消耗情况;
    • 反复长期的操作情况下,系统资源的使用情况。

    面试题(扩展)

    内存溢出与内存泄漏
    1. 内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;
    2. 内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光;
    3. 二者的关系:memory leak会最终会导致out of memory!
    冷启动与热启动
    1. 指app被后台杀死后,在这个状态打开app,这种启动方式叫做冷启动;
    2. 热启动:指app没有被后台杀死,仍然在后台运行,通常我们再次去打开这个app,这种启动方式叫热启动。

    APP专项测试——其他测试

    用户体验

    测试关注点
    • 界面的美观性
    • 保持登录(APP)
    • 页面层级关系在4层左右

    边界(极限测试)

    测试关注点
    • 电量不足(<5%)
    • 内存不足

    权限测试

    测试关注点
    • 摄像头权限
    • 相册权限
    • 位置权限
    • 通讯录权限

    Web测试与APP测试的差异性(面试题)

    • APP的兼容性测试尤为重要:由于手机厂商生产的手机型号及相关软硬件存在千千万万的差异性,进而APP端需要着重考虑分辨率、系统版本、尺寸、主流机型等等;
    • APP性能测试指标不一样:除了需要和web一样考虑APP客户端的性能外,我们还需要考虑电量、流量的消耗、GPU渲染等;
    • APP网络测试场景的复杂性:如2G、3G、4G、5G、wifi、弱网环境等
    • APP基于手机载体存在的交叉事件测试、前后台切换、安装/卸载/升级测试
    • APP基于手机载体特有的一些用户操作习惯类测试,如横竖屏切换、多点触控、事件触发区域等

    APP测试环境

    APP的项目环境

    • 开发环境==》开发工程师
    • 测试环境==》测试工程师
    • 生产/线上环境==》运维工程师

    APP项目环境与项目流程的对照关系

    • 开发(开发环境)》测试(测试环境)》上线(生产/线上环境)

    APP发布平台

    内测分发平台

    工作流程

    1. 开发将打好的程序包上传到内测分发平台上
    2. 内测分发平台基于上传的安装包生成唯一的二维码
    3. 测试扫描此二维码即可进行下载、安装并测试

    常见的内测分发平台

    线上发布平台

    • Andriod
      • 应用商店(华为、小米)
      • 豌豆荚
      • 360手机助手等
    • ios
      • APP Store

    注意:需要一定的审核过程、审核周期。

    敏捷开发模式(了解)

    前置基础

    • 瀑布模型
    • 快速原型

    互联网的特点

    • 追求创新
    • 需求的高度不确定性

    移动互联网的解决方案

    • 快速的反馈机制
    • 快速试错
    • 思考:瀑布模型能解决移动互联网的痛点吗?

    敏捷开发模式

    Scrum

    角色
    • 产品负责人(PO):主要是负责整理需求,需求的呈现形式为用户故事
    • Scrum Master(SM):负责带领团队完成相关任务
    • 开发团队(Dev Team)
      • 开发
      • 测试
      • UI/UE
    输出物
    • 产品待办列表(用户故事)
    • 迭代待办列表
    • 产品增量(可工作的软件)
    5个活动
    • 迭代(冲刺)sprint
    • 迭代计划:确定迭代待办列表内容
    • 每日站会
    • 评审会
    • 回顾会

    敏捷测试流程(一次迭代)

      1. 需求分析与评审
      2. 编写测试计划(测试方案)
      3. 设计测试用例与评审
      4. 执行测试用例与缺陷跟踪
      5. 编写测试报告
  • 相关阅读:
    spring5 源码深度解析----- Spring事务 是怎么通过AOP实现的?(100%理解Spring事务)
    spring5 源码深度解析----- @Transactional注解的声明式事物介绍(100%理解事务)
    spring5 源码深度解析----- AOP目标方法和增强方法的执行(100%理解AOP)
    spring5 源码深度解析----- AOP代理的生成
    spring5 源码深度解析----- 创建AOP代理之获取增强器
    spring5 源码深度解析----- AOP的使用及AOP自定义标签
    spring5 源码深度解析-----ApplicationContext容器refresh过程
    Netty源码分析 (十二)----- 心跳服务之 IdleStateHandler 源码分析
    Netty源码分析 (十一)----- 拆包器之LengthFieldBasedFrameDecoder
    Netty源码分析 (十)----- 拆包器之LineBasedFrameDecoder
  • 原文地址:https://www.cnblogs.com/Wl55387370/p/14429824.html
Copyright © 2011-2022 走看看