• 功能测试复习


    一。测试流程

    1.需求评审        确保各部门需求理解一致

    2.计划编写        测什么,谁来测,怎么测

    3.用例设计        验证项目是否符合需求的操作文档

    4.用例执行        项目模块开发完成开始执行用例文档实施测试

    5.缺陷管理        对缺陷进行管理的过程

    6.测试报告        实施测试结果文档

    1.需求评审:

            1.评审之前:阅读需求,记录疑问点

            2.评审形式:一般以会议的形式展开(产品经理、项目经理、 开发人员、测试工程师)

            3.评审目的:明确测试范围,站在不同角度对需求进行查漏补缺,各部门对需求理解一致

            4.评审产出:各部门工作内容,评审通过的需求文档

    2.测试计划:

            编写测试计划目的: 指导测试组成员进行工作和让测试组以外的项目成员了解测试的工作

            编写人员:项目测试负责人

            计划类型:项目总计划/个人执行计划

            核心内容:测试对象和范围/测试进度安排/准入准出标准

    二。业务流程测试

    1.业务流程定义:客户使用软件的过程中,为了达成自身的所想 要的目的,按照指定的顺序去操作软件的功能,这样的操作过程叫业务流程

    2.业务流程来源:

            正常情况:一般由产品提供

            特殊情况:测试人员自己画

    3.业务流程测试方法:流程图

    流程图法也叫场景法,是用流程图描述用户的使用场景,然后通过覆盖流程路径来设计测试用例。 适用场景: 在业务场景中涉及多功能的组合逻辑

    使用步骤:

            根据流程图找出路径

            编写测试用例(从开始到结束为一条路径,有多少条路径就有多少条用例)

    流程图法测试不需要深入功能内部详细测试,主要测试流程

    业务流程测试完成后需要针对单模块进行更加详细的测试

    三。单模块测试

    1.单模块测试内容:

            1.功能

            2.UI界面性

            3.兼容性

            4.易用性

            5.性能

            6.安全

       

            以用户角度,待测试软件的可见功能(需求说明书)

            产品原型图(UI/UE设计稿)所绘制的效果(显示与布局)

            以用户角度,待测试软件的可见功能(需求说明书)

            以用户角度,检查系统是不是很好操作,很好上手

    2.单模块功能测试步骤:

            1.熟悉需求

            2.提取测试点,编写测试用例

            3.测试用例评审

            4.执行测试用例

            5.记录执行过程,登记跟进缺陷

            6.测试报告

            1.熟悉需求:

                    需求来源:需求文档/UI或UE设计稿(产品原型图)/已存在的软件界面

                    怎么熟悉需求:阅读并理解文档描述,操作已存在的软件界面,能构造出对应场景

                    熟悉程度:说清楚用户使用该功能时能做什么? 能列出该模块下的功能点有哪些?

            2.用例编写:

                    根据测试点逐条编写测试用例

                    将分析设计后的测试点,进行逐条覆盖,转化为测试用例(8要素形式)
                    1条 测试用例尽可能多的覆盖 多个 正向测试点(1对多)
                    1条 测试用例只能覆盖 1个 逆向测试点(1对1)
                    用例设计编写格式说明
                    用例编号:项目_模块_编号
                    用例标题:预期结果(测试点)
                    模块/项目:所属项目或模块
                    优先级:表示用例的重要程度或影响力P0~P4(P0最高)
                    前置条件:要执行此条用例,有哪些前置操作
                    测试步骤:描述操作步骤
                    测试数据:操作的数据,没有的话可以使用/表示空
                    预期结果:期望达到的结果
            3.用例评审

                    评审目的:1.查漏补缺  2.与开发人员实现方案保持同步

                    评审形式:1.会议形式 2.交叉评审

                    评审结果:项目内一致认可的测试用例

            4.执行测试

                    何时执行:1.冒烟测试通过 2.按照测试计划约定的时间 3.测试环境以及准备就绪

                    用例执行方式:1.逐条执行 2.按优先级执行 3.按模块重要性逐一执行

                    执行结果记录:

                            测试通过----PASS

                            测试失败----FALL

                            测试阻塞----BLOCK

                            功能缺失----N/A

            5.缺陷跟进与管理

                    1.登记缺陷:缺陷要保证能够复现,一个缺陷报告只描述一个 BUG

                    2.跟进缺陷:每日跟进禅道上缺陷情况。优先级较高的缺陷要及时驱动开发进行修复

                                         目标:缺陷的修复速度不能影响测试进度和上线时间

                    3.回归缺陷:对于禅道状态为已解决的问题进行再次测试 。回归测试时一定保障测试环

                                         境包含了修复缺陷的代码。回归测试通过则关闭,不通过则重新打开
            6.测试报告

                  报告核心内容:

                    1.测试过程回顾:测试过程中实际使用的环境、资源、进度、配置等信息。
                    2.测试统计分析:测试过程中产生的数据,主要是测试用例和缺陷报告的数据。
                    3.测试结果确认:测试结果的模块确认和整个产品系统的整体结果确认。
                    4.测试总结改进:测试过程中好的地方和不足之处的总结,为后续项目提供经验。
                   测试报告需要测试执行人员最终汇总编写,要求实事求是,是对产品质量的承诺。

    四。抓包

    1.说明:客户端向服务器发送请求以及服务器响应客户端的请求,都是 以数据包 来传递的。
    2.抓包 (packet capture):通过工具拦截客户端与服务器交互的数据包
       常用抓包工具有哪些:
            Ø Fiddler
            Ø Charles
            Ø Firebug等
    3.Fiddler 是一个 http 协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的 http 通讯。
    4.常见的三种应用场景
            1.定位前后端Bug
            2.弱网测试
            3.绕过界面限制直接测试服务器
    5.定位前后端 Bug 的步骤
            ① 如果抓不到请求,显然是前端问题。
            ② 如果有请求但是没响应,那就是后端的问题;
            ③ 如果有请求也有响应,需要查看响应信息,如果返回报错了,则需要具体分析报错内容
    6.

    7.弱网测试

    弱网环境下可能会出现的异常

            Ø 上传文件时进度卡住不动
            Ø 登录不上或者登录后立即掉线
            Ø 响应过程中页面控件可点击,导致崩溃
            Ø 搜索不响应,多次点击后结果显示总在刷新被替换
    弱网测试步骤:
            1.设置要模拟的网络速度
            2.开启网络延时
            3.测试项目
    弱网延迟时间计算公式:
    延时ms=[1KB/(速率bps/8)B/s]*1000
    单位换算关系:( B:字节 b:位)
    Ø 1B = 8b
    Ø 1B/s = 8b/s(或1Bps=8bps)
    Ø 1KB = 1024B
    Ø 1KB/s = 1024B/s
    Ø 1MB = 1024KB
    Ø 1MB/s = 1024KB/s
    Ø 1Mbps=1000 000bps
    Ø 1M带宽:速率为1Mbps
    Ø 1s = 1000ms
    例如:
    上行:[1/(2.7/8)]*1000=2962ms
    下行:[1/(9.6/8)]*1000=833ms
    为什么 要绕过界面限制做测试?界面限制导致部分异常数据无法输入
    绕过界面限制直接测试服务器步骤:
    1.设置断点
    2.修改请求
    3.修改响应
    请求之前设置断点:
    修改请求
    设置断点:响应之后
    修改响应

    七。互联网公司知识

    1.迭代模型

           速度不同:开发模型不一样

            传统行业:瀑布模型
            互联网行业:敏捷模型
    敏捷开发(scrum)模型
    Scrum 是一个敏捷开发框架,是一个增量的,迭代的开发过程
            迭代(sprint):项目开发过程中最小周期,每个sprint周期建议为2-4周。在scrum框架                                      中,整个开发周期包括若干个小的迭代周期。
            产品功能列表( Backlog ):在 Scrum 中,将产品 Backlog 商业价值 排出需求列表
    Scrum 三种角色:
            Product Owner(产品负责人 ) :定义需求,进行需求排期
            Scrum Master(项目经理 ) :管理项目,确保scrum 顺利执行
    Dev Team( 开发团队 )
              实现客户需求
            成员:开发、测试、UI
            团队人数:一般5 人到 9 人。开发测试比一般为: 3:1 — 5:1
    2.发布策略

    3.APP软件包类型

    4.APP客户端(内部)发布平台

    在实际测试工作中,为了方便测试程序包的安装和管理,可以使用一些应用内测分发平台。如:蒲公英、Testlink等
    操作步骤:
    Ø 开发将应用测试包上传到这些平台上
    Ø 平台可以生成对应的二维码
    Ø 测试直接扫码进行应用安装
    5.APP客户端(线上)发布平台
    产品测试完成后要在线上进行发布,让用户进行下载使用。下面是安卓和 IOS 应用常用的发布平台和渠道
    Ø 安卓应用:豌豆荚、应用宝、 360 手机助手、各类手机品牌商城等;
    Ø IOS 应用: 主要有 App store iTools
    l 操作步骤:
    Ø 开发者账号注册,申请在发布平台(各种应用商店)上架
    Ø 针对不同的发布平台,在软件包中加入对应的平台ID(渠道ID),上传到发布平台
    Ø 平台审核通过后,用户即可在应用商店中下载
    l 一般线上发布过程,由开发人员负责。
    l 在软件包加入平台ID后,上传到发布平台时,需要测试人员验证核心的业务功能

    六。APP测试基本知识

    1.APP应用环境与web项目环境对比

    相同点:1. APP和web使用的后端服务器是相同的

                  2. 前后端都使用HTTP协议进行交互(也有部分APP用socket来交互)

    不同点:1. APP是C/S结构,web浏览器是B/S结构

                   2. APP前后端交互的数据格式以Json 为主,web前后端交互的数据格式为Json/HTML都有

    C/S结构(Client/Server结构)是一种分布式计算模型,其中客户端应用程序和服务器应用程序通过网络进行通信。在C/S结构中,客户端负责处理用户界面和用户输入,并向服务器发送请求,而服务器负责处理客户端请求并提供相应的服务。这种结构通常涉及两个独立的应用程序,即客户端应用程序和服务器应用程序。

    B/S结构(Browser/Server结构)是一种Web应用程序的架构模式。在B/S结构中,客户端使用Web浏览器作为用户界面,而服务器提供网站的功能和服务。客户端通过浏览器向服务器发送请求,并接收由服务器生成的HTML等响应。这种结构使得用户可以通过浏览器访问服务器上的应用程序,而无需在本地安装任何特定的客户端软件。

    总结:

    • C/S结构是一种分布式计算模型,涉及独立的客户端和服务器应用程序之间的通信。
    • B/S结构是一种Web应用程序的架构模式,涉及通过浏览器访问服务器上的应用程序。
    • C/S结构和B/S结构在应用场景和通信方式上存在差异,选择哪种结构取决于具体的需求和应用程序的特点。
    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。采用完全独立于编程语言的文本格式来存储和表示数据。
    JSON最常用的格式是对象的键值对。例如: {"firstName": "Brett", "lastName": "McLaughlin"}
    2。APP项目测试内容介绍

    功能测试:1.业务测试 2.功能模块测试

    专项测试:1.安装卸载升级 2.push消息推送 3.交叉事件测试 4.用户体验测试 5.兼容性测试

    性能测试:1.CPU、内存占用 2.启动速度 3.流量、电量消耗 4流畅度 5稳定性

    3.模拟器

    Mumu模拟器是一款专门用于在电脑上模拟安卓操作系统的软件。它允许用户在电脑上运行安卓应用程序和游戏,提供了一个虚拟的安卓环境。

    Mumu模拟器的主要用途如下:

    1. 运行安卓应用程序:Mumu模拟器允许用户在电脑上运行安卓应用程序,包括社交媒体应用、通讯应用、办公工具、娱乐应用等。用户可以在大屏幕上更便捷地使用安卓应用程序,并享受与手机类似的体验。

    2. 玩安卓游戏:Mumu模拟器提供了一个虚拟的安卓环境,可以在电脑上玩安卓游戏。用户可以通过键盘、鼠标或游戏手柄等设备来控制游戏角色,享受更大屏幕和更流畅的游戏体验。

    3. 开发和测试应用程序:对于安卓应用程序的开发人员和测试人员来说,Mumu模拟器是一个方便的工具。它提供了一个虚拟的安卓环境,可以用于应用程序的开发、调试和测试,加快开发过程并提高测试效率。

    4. 录制和分享操作:Mumu模拟器支持屏幕录制功能,可以将操作过程录制下来,方便用户进行操作教学、游戏攻略录制等用途。用户可以录制屏幕操作并将其分享给其他人。

    七。APP专项测试

    1。安装卸载升级 2.兼容性 3.push消息推送 4.交叉事件 5.用户体验

    1。安装卸载升级
    安装卸载升级: APP是客户端程序,客户端程序就需要提前进行安装才能使用,因此需要测试安装、卸载、升级操作
    安装测试关注点:
    l 正常场景:
    Ø 在不同的操作系统版本上安装
    Ø 从不同的安装渠道安装(APP商城、手机助手 、直接下载apk或者ipa文件安装)
    Ø 不同的安装路径(安装到手机上、安装到SD卡 上)
    l 异常场景:
    Ø 安装时出现异常(关机、断网),恢复后能否 继续安装
    Ø 安装时存储空间不足
    Ø 安装时手动取消后再次安装
    Ø 正在运行时覆盖安装
    Ø 低版本覆盖安装高版本
    Ø 卸载后安装
    卸载测试关注点:
    Ø 正常卸载(APP手动卸载、工具卸载)
    Ø 运行时卸载
    Ø 取消卸载
    Ø 卸载异常中断
    Ø 卸载后无数据残留
    升级测试关注点:
    Ø 从临近版本升级
    Ø 跨版本升级
    Ø 不同渠道升级(应用商场、手机助手)
    Ø 升级提醒成功(可不提醒、可以提示升级、强 制升级)
    Ø 应用内升级时非WIFI提醒 l 升级后要观察升级前的数据正常(当数据结构改 变而开发没有处理好时很容易出现升级前的数据混乱)
    2.兼容性
    APP在不同的机型上由于软件、硬 件等不同可能出现各种各样的问题, 因此需要做兼容性测试
    手机型号
    覆盖市场主流机型(Android:三星、小米、
    OPPO、华为)考虑APP线上排名
    系统版本
    安卓系统:4.4、5.1、6.0、7.0 ...
    ios系统:9.X、10.X、11.X、12.X...
    分辨率
    分辨率:1080x1920、720x1280...
    屏幕尺寸 屏幕尺寸:5.5、4.7...
    网络 2G\3G、4G、WIFI...
    应用兼容性 手机硬件、外部硬件、操作系统、其他APP
    app应用兼容性

    与手机硬件兼容性:home键、电源键、音量调节等

    与操作系统软件兼容
    与外部硬件兼容性:耳机,蓝牙
    与操作系统软件兼容性:wlan设置、系统时间调节、LBS定位等
    与其他APP兼容
    与其他app兼容性:后台在播放音乐时,进入动态页面点击动态视频的播放, 系统如何处理
    如何选择品牌、机型、系统、分辨率网络?
    l 查看线上排名网站(流量研究院: https://mtj.baidu.com/data/mobile/device
    如何执行兼容性测试?
    l 一般情况下,在公司中会存在各种型号的手机,使用真机进行兼容性测试即可
    l 如果项目的用户量非常大,真机无法覆盖完全,可以找第三方的兼容性平台进行测试
    Ø 如:线上云测平台testin(https://www.testin.cn/)
    3.push消息推送
    什么是Push消息?
    l Push消息:是APP给你推送的各种消息。
    l 通常手机中“设置”-“通知”就是进行push消息的设置 ,因此需要进行push消息测试。
    什么时候会使用Push消息?
    消息推送场景:
    l 产品角度:功能需要,如:资讯类产品的新闻推送、工具类产品的公告推送、快递签收通知,等等
    l 运营角度:活动运营需要,如:电商类产品的促销活动;召回用户 / 提高活跃度等等
    push消息推送的本质:服务器有更新消息,推送服务器,client app 用户
    常见的推送服务器分类
    操作系统级别的消息推送服务器
    IOS: APNs(Apple Push Notification service)
    Android: C2DM(Cloud to Device Messaging)
    自己搭建推送服务器
    好处:性能强、安全性高
    缺点:成本高
    第三方推送平台
    手机厂商类:小米推送、华为推送。
    第三方平台类:友盟推送、极光推送、 云巴(基于MQTT)
    BAT大厂的平台推送:阿里云移动推送 、腾讯信鸽推送、百度云推送
    Push消息推送的设置:
    l APP服务器设置:
    Ø 推送内容
    Ø 推送时机
    Ø 推送频率
    Ø 推送人群(全部用户/部分用户)
    l 手机端设置:
    Ø 是否接收通知
    Ø 提醒位置等
    push消息测试关注点:
    l APP服务器设置测试点:
    Ø Push消息是否按指定业务规则发送
    Ø 当Push消息是针对特定用户时,检查收到的Push与用户
    身份是否相符等
    l 手机端设置测试点:
    Ø 设置不接收推送消息时,用户是否会收到Push消息
    Ø 设置push消息显示的位置,是否与配置一致
    Ø 收到push消息,是否能正常打开跳转等
    l 其他测试:
    Ø APP在前台使用时,收到push消息如何提示
    Ø APP在后台运行时,收到push消息如何提示
    Ø APP离线,是否能收到PUSH消息。
    4.交叉事件
    交叉测试: 又叫冲突测试或者干扰测试,是指一个功能正在执行过程中,另外一个事件或操作对该过程进行干扰的测试
    。例如:在App前台/后台运行同时接听来电或者下载文件等等。
    交叉事件测试关注点:
    Ø APP运行时接打电话;
    Ø APP运行时收发信息;
    Ø APP运行时查看应用推送
    Ø APP运行接上蓝牙设备
    Ø APP运行时接收文件弹窗提醒
    Ø APP运行时旋转屏幕
    Ø APP运行时切换网络(4G、Wi-Fi);
    Ø App运行时使用相机、计算器等手机自带应用;
    Ø App运行时电量告警、插拔充电器。
    注意事项  模拟用户使用场景,所有可能会影响APP正常运 行的场景 都是交叉事件
    5.用户体验
    用户体验: 以主观的普通消费者的角度去感知产品或服务的舒适、有用、易用、友好亲切程度。
    UI界面测试:对照 UI 交互设计文档,检查每个界面 设计菜单、对话框、窗口、风格、布局等
    易用性测试:• 是否有空数据界面设计,引导用 户去执行操作
    菜单层次是否太深
    完成业务操作的步骤是否过多
    界面中按钮可点击范围是否适中
    关注手机应用上的其他辅助功能:可以重点关注“放大字体”、“反 色”、“语音转换”、多点触碰等功 能
    横竖屏测试:横竖屏的切换是否正常(特别要关注 APP中有表格,因为横竖屏的显示宽 度不一样)
    l 用户体验测试较为主观,描述问题时尽量具体,需要有一定依据
    注意事项
    黑马程序员-软件测试
    传智

    八。APP性能测试

    1.SoloP性能测试
    SoloPi 是一个无线化、非侵入式的 Android 自动化工具,具备录制回放、性能测试等功能。
    作用如下:
    基础性能测试 :能够记录待测应用的各项指标,可以在悬浮窗中观察实时更新的数据,也可以对性能数据进行录制,在录制结束后查看图
    表;同时,还支持性能加压,能够对CPU、内存与网络环境进行限制,复现应用在性能较差、网络环境不佳场景下的表现。
    录制回放 :通过SoloPi执行用例步骤,能够将用户的操作记录下来,支持在各个设备上进行回放,这一切都能够在手机上独立完成。
    一机多控: 支持通过操作一台主机设备来控制多台从机设备,不需要在各个设备上分别进行重复冗杂的兼容性测试,能够极大提升兼容性
    测试的效率。
    SoloPi 安装:
    l
    可独立安装的 SoloPi(APK,IOS无该版本),像普通APP一样安装。
    (1)打开SoloPi,选择性能测试
    (2)选择被测应用,勾选监控指标,勾选后悬浮窗会出现在手机屏幕
      (3)点击开始监控,随后打开被测APP应用,开始测试
    2.APP性能指标

            1.内存 2.CPU 3.流量 4.电量 5.启动速度 6.流畅度 7.稳定性

    1.内存
    每个程序运行时都需要将代码和数据放入内存中,内存不足则程序无法正常运行。
    SoloPi工具提供了两个内存的监控指标:PSS和Private dirty
    Private dirty(私有内存):
    进程独占内存,也就是进程销毁时可以回收的内存容量。
    PSS(实际使用内存):
    将跨进程共享页也加入进来, 进行按比例计算PSS。这样能够比较准确的表示进程占用的实际物理内存。
    常见的内存问题:
    l 内存泄漏:
    Ø 内存泄露 memory leak,是指程序在申请内存后 ,无法释放已申请的内存空间,一次内存泄露危 害可以忽略,但内存泄露堆积后果很严重,无论 多少内存,迟早会被占光。
    l 内存溢出:
    Ø 内存溢出 out of memory,是指程序在申请内存 时,没有足够的内存空间供其使用,出现out of
    memory Ø memory leak会最终会导致out of memory!
    内存问题产生的影响:
    l 程序实际使用的内存PSS持续增长 —— 可能是 内存泄漏
    l 程序出现crash(崩溃) —— 可能是内存溢出
    2.CPU
    每个程序运行都需要占用CPU,那么单CPU的机器是如何同时运行多个程序的?
    l 时间片即CPU分配给各个程序的时间,每个程序被分配一个时间段,称作它的 时间片 ,即该程序允许运行的时间
    SoloPi工具提供了两个CPU的监控指标:全局占用CPU和应用进程CPU
    全局占用CPU:
    l 整机的CPU使用水平,即当前手机的CPU整体使用率。
    l 计算公式:
    Ø 在 Linux 系统下,CPU 利用率分为用户态、系统态和空闲态
    Ø 用户态:表示 CPU 处于应用程序执行的时间
    Ø 系统态:表示系统内核执行的时间
    Ø 空闲态:表示空闲系统进程执行的时间。
    Ø
    CPU 使用率 = CPU 执行非系统空闲进程使用量 / CPU 总的使用量
    应用进程CPU:
    l 表示自开机以来,应用程序消耗的CPU时间片的总数
    CPU出现问题产生的影响:
    l CPU使用长时间处于90%以上
    l 手机发热、耗电量增加
    l 反应变慢、引起ANR(Application Not Responding)
    3.流量
    手机上网时消耗的流量需要收费的,因此流量测试是app性能测试中比较重要的一项。
    流量(指网络流量):
    用手机打开APP进行互联网操作时,会和服务器之间交换数据,手机流量就是指这些数据的总大小。
    数据报文是包含手机上下行的报文
    注意:上行消息是APP发送给服务器的报文,下
    行消息是APP接收的服务器的报文 但上行消息不一定都是请求消息 例如:用百度网盘上传资料
    SoloPi工具提供了流量监控指标:网络
    网络
    即网络流量,可以自动统计APP每秒上行和下行的报文大小
    常用的流量测试方法:
    l 统计测试法
    Ø 利用工具获取应用程序收发的数据报文,统计出对应的流量
    流量优化方法
    Ø 数据的压缩
    Ø 不同数据格式的采用
    Ø 控制访问的频次
    Ø 只获取必要的数据
    Ø 缓存机制
    Ø 针对不同的网络类型设置不同的访问策略
    4.电量
    相对于PC来说,移动设备的电池电量是非常有限的,因此电量测试是app性能测试中比较重要的一项。
    电量测试:
    l
    就是测试移动设备电量消耗快慢的一种测试方法。
    l
    一般是用平均电流来衡量电量消耗速度(电池生产厂家一般都采用mAh来标记电池容量大小,平均电流越小,说明设备
    使用时间就越长)
    常见的耗电量大的场景:
    定位,尤其是调用 GPS 定位。
    网络传输,尤其是非 Wi-Fi 环境。
    屏幕亮度
    CPU 运算:复杂的运算逻辑、死循环等会直接导致CPU负载过高,会导致耗电;
    wake_locker(锁屏-解锁)时间和次数
    常用的电量测试方法:
    l 系统自带接口
    Ø 最新的IOS和Android系统内置的Setting里可以查看各个APP的电池消耗
    Ø 该方案不能检测固定某一时间段内的电池精准消耗。
    l 硬件检测
    Ø 通过硬件可以精准地获得应用的电量消耗(如: PowerMonitor 硬件设备)
    Ø 该方案测试时需要拆机,成本太高比较麻烦。
    l 软件工具检测
    Ø 通过第三方的软件来获取应用的电量消耗(如: AccuBattery、360省电王、SoloPi等)
    Ø 该方案取决于第三方软件的计算准确性。
    l 通过API计算应用电量消耗
    Ø 通过代码方式调用电量相关API接口,获取应用维度精细的电量消耗
    Ø 该方案计算准确,但是计算方式复杂,难度高。
    电量的测试结果分析:
    我们可以根据不同的业务场景测试出对应的电量消耗数据,但是是否有问题需要对比分析,对比方法:
    与基准数据对比。(基准数据来自于产品经理,或者以往数据积累)
    横向对比,拉上竞品一起测(目前多数采用这种方法)
    Ø 同样的网络、手机,相似的测试场景,最后对比我们的产品和竞品在耗电量方面的差距,给出优化建议。
    黑马程序员-软件测试
    5.启动速度
    APP启动测试: 测试从启动app到主页面显示的时间,打开一个app等待的时间过长时就会有一种较差的体验
    APP启动: 分为冷启动,热启动
    冷启动:
    指app被后台杀死后,在这个状态打开app,这种启动方式叫做冷启动。
    热启动:
    指app没有被后台杀死,仍然在后台运行,通常我们再次去打开这个app,这种启动方式叫热启动。
    启动速度测试方法(Android):
    l 格式:adb shell am start -W 包名/Activity名
    l TP商城单商户包名/Activity名为:
    com.tpshop.malls/com.tpshop.malls.SplashActivity
    l 该命令获取3个关键指标:
    Ø ThisTime: 当前activity的时间。
    Ø TotalTime:应用的启动时间,包括创建进程、App初始化、
    Activity初始化到界面显示。
    Ø WaitTime:前一个应用activity pause的时间+TotalTime
    热启动和冷启动的启动速度测试命令完全相同
    冷启动的时间 一般 大于 热启动的时间
    6.流畅度
    FPS:
    l
    即Frames per second:GPU在一秒内绘制的帧数。(简单理解为一秒内呈现给用户的图片数)
    FPS值越高画面越流畅
    流畅度问题产生的影响:
    l
    想要让大脑觉得动作是连续的,至少是每秒10-12帧的速度
    l
    想达到流畅的效果,至少需要每秒24帧
    l
    60帧每秒的流畅度是最佳的,我们的目标就是让程序的流畅度能接近60帧每秒
    当页面多为静态时,FPS值很小是正常的
    l 页面数据多为动态加载时,FPS值比较大(建议在24帧以上)
    7.稳定性
    稳定性测试: 通过长时间对应用程序进行无序操作,检验应用程序是否会出现异常。如闪退crash、无响应
    ANR等。
    稳定性测试工具——Monkey:
    l
    Monkey是一个命令行工具,是由安卓官方提供的。
    l
    测试人员可以通过Monkey来模拟用户的 触摸 点击 滑动 以及 系统按键 等操作(操作事件都是随机的),从而实现对
    APP压力的测试和稳定性测试。(具体Monkey的使用在后续app自动化章节介绍)
    l
    开发人员结合monkey 打印的日志和系统打印的日志,修改测试中出现的问题。
    稳定性测试的时机:
    l
    一般需要等产品稳定了,bug比较少的时候,再用monkey去测试待测试应用的稳定性。
    3.ADB命令
    1.显示系统中全部设备:
    adb devices
    这个命令是查看当前连接的设备, 连接到计算机的android设备或者模拟器将会列出显示
    2.开启或关闭ADB服务:
    adb start-server
    adb kill-server
    3.连接设备:
    adb connect IP
    如果是USB连接,直接会连接ADB,如果是想通过网络连接(有线或者无线),则需要在 同一个局域网 ,通过 IP 连接。上
    面192.168.1.61替换成想要连接设备的IP即可
    4.安装、卸载软件包
    安装软件:adb install - (APK路径)
    -r 代表如果apk已安装,r重新安装apk并保留数据和缓存文件。apk路径则可以直接将apk文件拖进cmd窗口,记得加
    空格。
    卸载软件:adb uninstall (apk包名)
    如果卸载 app 但需要保留数据和缓存文件:adb uninstall -k (apk包名)
    5.获取软件包名
    列出手机装的所有app的包名:
    adb shell pm list packages
    列出系统应用的所有包名:
    adb shell pm list packages -s
    列出除了系统应用的第三方应用包名:
    adb shell pm list packages -3
    显示当前打开的软件包名(如右图):
    Windows:adb shell dumpsys window | findstr mCurrentFocus(需要打开目标软件)
    Mac/Linux:adb shell dumpsys window | grep mCurrentFocus
    6.获取APP日志
    格式:adb logcat >指定路径
    举例:
    ① adb logcat >C:\Users\18810\Desktop\1.txt
    ② 执行完后Ctrl+C结束日志获取
    ③ 查看获取的1.txt文档即可
    7.获取APP启动时间
    格式 :adb shell am start -W 包名/activity名
    常见参数
    -S:表示每次启动前先强行停止
    -R:表示重复测试次数
    常见的三个指标
    Ø ThisTime: 当前activity的时间。
    Ø TotalTime:应用的启动时间,包括创建进程、App初始化、Activity初始化到界面显示。
    Ø WaitTime:前一个应用activity pause的时间+TotalTime
    8.获取内存
    格式:adb shell dumpsys meminfo <包名>
    (1) Native/Dalvik 的 Heap 信息
    如果发现这个值一直增长,则代表程序可能出现了内存泄漏(Out of
    memary)。
    (2) Total 的 PSS 信息
    这个值是应用真正占据的内存大小,通过这个信息,可以轻松判别手
    机中哪些程序占内存比较大
    9.查看CPU占用情况
    1.格式:adb shell top -s 列号
    (-s 按指定行排序)
    参数含义:
    PID : 应用程序ID
    S : 进程的状态(S表示休眠,R表示正在运行,Z表示僵死状态,N表示
    该进程优先值是负数)
    #THR : 程序当前所用的线程数
    VSS : 虚拟耗用内存(包含共享库占用的内存)
    RSS : 实前台际使用物理内存(包含共享库占用的内存)
    PCY : (fg)和后台(bg)进程
    UID : 用户身份ID
    Name : 应用程序名称
    10.获取APP使用流量
    1.获取进程pid
    win : adb shell ps | findstr 包名
    mac : adb shell ps | grep 包名
    如:adb shell ps | grep com.tpshop.malls
    2.获取流量
    adb shell cat /proc/{pid}/net/dev
    3.查看
    Wlan0:是网卡-wifi
    Receive是接收、Transmit是发送

    在日志里搜索ANR是bug反馈

    如果只是adb shell am -W 包名/启动名的话会报错,提示不能识别-W。

    4.Monkey
    1、什么是monkey
    顾名思义,Monkey就是猴子, Monkey测试,就像一只猴子 在电脑面前,乱敲键盘在测试。
    2、monkey作用
    通过Monkey程序模拟用户触摸屏幕、滑动Trackball、 按键等操作来对设备上的程序进行压力测试,检测
    程序多久的时间会发生异常。
    3、monkey异常情况分析
    Monkey 测试出现错误后,一般的分析步骤 看Monkey的日志:
    Ø 程序无响应的问题: 在日志中搜索 “ANR”
    Ø 崩溃问题:在日志中搜索 “NullPointerException”
    4、monkey环境
    Ø Monkey程序由Android系统自带,使用Java语言写成,在Android文件系统中的存放路径
    /system/framework/monkey.jar;
    adb shell monkey -p 包名 –v 模拟次数 > 路径/log.txt

    -s参数:只要两次-s参数值一样,monkey测试过程就能复现

    九。APP抓包--Charles

    十。微信小程序概念

    十一。微信小程序与APP对比

  • 相关阅读:
    【从零开始学微服务】03.软件架构的演化过程
    国民经济行业代码查询系统-公司行业代码查询
    Linux 中如何使用 id 命令
    【六祎 - Dubbo】Dubbo 应用 XML配置分析;Dubbo 配置篇;Dubbo参考手册
    【C++】:类和对象(3)
    【算法随笔:HDU 3333 Turing tree】(线段树 | 离线 | 离散化 | 贪心)
    【POJ No. 1182】 食物链
    大环境之下软件测试行业趋势能否上升?
    3、动态库与静态库
    2022全国中职网络安全比赛正式赛题
  • 原文地址:https://blog.csdn.net/qq_51250393/article/details/133624313