鸿蒙应用App测试-通用测试

 注意:大家记得学完通用测试记得再学鸿蒙专项测试

鸿蒙应用App测试-专项测试(DevEco Testing)-CSDN博客

注意:博主有个鸿蒙专栏,里面从上到下有关于鸿蒙next的教学文档,大家感兴趣可以学习下

如果大家觉得博主文章写的好的话,可以点下关注,博主会一直更新鸿蒙next相关知识

专栏地址: https://blog.csdn.net/qq_56760790/category_12794123.html

鸿蒙next学习交流

qq群号:767465523

目录

1. App测试基本流程图

2. 功能测试的基本方法

2.1 等价类划分:有效等价类和无效等价类

2.2 边界值:最大值和最小值

2.3 错误推测法

2.4 因果图:对于相互影响关联的功能测试

2.5 业务流程图

3. 性能测试

4. 中断测试

5. 兼容性测试

6. 存储测试

7. 安全测试

8. 用户体验测试

9. 稳定测试

10. 测试设计

10.1 基本介绍

10.2 要求

11. 测试用例

11.1 基本介绍

11.2 要求

12. 测试报告

12.1 基本介绍

12.2 要求


1. App测试基本流程图

2. 功能测试的基本方法

2.1 等价类划分:有效等价类和无效等价类

等价类划分是一种常用的黑盒测试技术,它将输入数据划分为几个合理的等价类,然后从每个等价类中选取少量具有代表性的数据作为测试用例。

假设有一个系统接收年龄作为输入,年龄的有效范围是18至60岁。

  • 有效等价类:[18, 60]
  • 无效等价类:小于18(如17);大于60(如61)

2.2 边界值:最大值和最小值

边界值分析是一种补充等价类划分的方法,它专注于测试输入变量的边界值,因为程序往往在边界值附近更容易出错。

延续上面的年龄输入例子,边界值可能包括17、18、19、59、60和61。

2.3 错误推测法

基于经验和直觉,预测可能出现错误的情况,然后针对这些情况进行测试。

假设一个登录页面,可以尝试输入过长的用户名或密码、特殊字符、空白输入等,看系统如何响应。

2.4 因果图:对于相互影响关联的功能测试

因果图方法首先使用因果图模型化输入与输出之间的关系,之后将因果图转换为决策表,最后从决策表中导出测试用例。这种方法特别适用于处理多个输入条件之间存在复杂逻辑关系的情况。

一个银行转账系统,其中转账成功与否取决于账户余额是否足够、账户状态是否正常等多个因素。可以通过因果图来分析这些因素之间的关系,从而设计出有效的测试用例。

2.5 业务流程图

业务流程图用于描述系统的业务流程,帮助测试人员理解整个业务场景,进而设计更贴近实际使用的测试用例。

电商平台的购物流程,从用户浏览商品、加入购物车、选择支付方式到最后完成支付,每一步都涉及到不同的功能点。通过绘制业务流程图,可以清晰地看到各个步骤之间的关系,有助于全面覆盖测试点。

3. 性能测试

1.关注应用使用时资源消耗(CPU、内存、流量、功耗)

2.应用启动时耗时(冷启、热启)

3.主要页面加载时间、响应时间

4.应用安装、卸载、更新

5.极限测试:在各种边界情况下验证app的响应能力(低电量、储存满、弱网等)

6.压力测试:在反复长期操作下或高负载情况下,应用资源的使用情况、请求响应时间等

4. 中断测试

干扰,比如正在使用应用播放音乐,突然来电话,短信等对应用的影响

5. 兼容性测试

1、应用在不同的网络环境(wifi,2g,3g,4g,5g等)的兼容性

2、应用在不同鸿蒙手机分辨率和系统基线不同的兼容性

3、应用在多设备兼容性(手机、平板、手表等)

6. 存储测试

存储测试过程中,一般会受到设备本身性能的影响

7. 安全测试

1、APP权限

2、反编译

3、日志打印

4、账号安全

8. 用户体验测试

1、UI界面是否美观

2、操作是否流畅

3、功能是否达到用户使用要求

9. 稳定测试

通过模拟极端条件来测试应用的极限,例如非常高的数据流量或长时间连续运行,以检查应用是否会崩溃或出现错误

10. 测试设计

10.1 基本介绍

1、熟悉app的功能需求、用户故事和设计文档、用户群体、使用场景等

2、编写测试方案(包含功能测试、性能测试、安全测试、兼容性测试、风险评估等)

3、编写测试计划(测试周期,完成时间等)

4、根据需求文档和软件设计文档编写详细的测试用例

10.2 要求

充分性:测试设计对应用功能、场景的覆盖率;

可读性:测试设计撰写的可读性和可理解性,要求清晰易理解,无歧义;

全面性:除功能外,性能、功耗、稳定性等方面的考虑,测试工具依赖和测试资源的诉求;

11. 测试用例

11.1 基本介绍

一个完整的测试用例通常包含以下几个部分:

  1. 测试用例ID:唯一标识符,用于追踪和管理测试用例。
  2. 测试标题:简短描述测试的目的或要验证的功能点。
  3. 前置条件:执行测试前必须满足的条件或环境设置。
  4. 输入数据:测试过程中需要提供的数据。
  5. 测试步骤:详细列出执行测试的具体步骤。
  6. 预期结果:期望的测试结果,包括系统的行为和输出。
  7. 实际结果:测试执行后的实际结果(这部分通常在测试执行后填写)。
  8. 测试结果:判断测试是否通过(Pass/Fail)。
  9. 备注:任何额外的信息,如依赖项、注意事项等。

示例:登录功能测试用例

测试用例ID: test001

测试标题: 验证正确的用户名和密码可以成功登录

前置条件:

1、用户已注册账号。

2、应用处于登录界面。

输入数据:

1、用户名: testuser

2、密码: 123456

测试步骤:

1、打开APP并进入登录界面。

2、在用户名字段中输入“testuser”。

3、在密码字段中输入“123456”。

4、点击“登录”按钮。

预期结果:

用户成功登录,跳转至主界面。显示欢迎信息:“您好,testuser”。

实际结果: (测试执行后填写)

测试结果: (测试执行后填写)

备注:

如果用户已经登录,则需要先注销。

检查是否有验证码要求,如果有,需要正确输入验证码。

11.2 要求

1、充分性:对测试功能点的用例覆盖率;

2、准确性:测试用例撰写要求可读性强,易解性,可重复;

3、规范性:测试用例的必填字段均被规范且完整的填写、用例级别定义是否合理;

4、测试方法的全面性:是否使用了边界值、等价类等常用方法;

12. 测试报告

12.1 基本介绍

一个完整的测试报告通常包含以下几个部分:

  1. 封面
    • 项目名称
    • 报告标题(例如:APP测试报告)
    • 测试日期
    • 编写人
    • 审核人
    • 版本号
  1. 目录
    • 列出报告的主要章节和页码。
  1. 概述
    • 项目背景:简要介绍项目的背景和目的。
    • 测试目标:明确本次测试的主要目标和范围。
    • 测试范围:列出本次测试覆盖的功能模块和未覆盖的部分。
  1. 测试环境
    • 硬件环境:测试所用的设备型号、操作系统版本等。
    • 软件环境:测试所用的应用版本、测试工具等。
    • 网络环境:测试所用的网络类型(如Wi-Fi、4G等)。
  1. 测试用例概览
    • 总测试用例数
    • 成功通过的测试用例数
    • 失败的测试用例数
    • 未执行的测试用例数
  1. 测试结果
    • 功能测试
      • 各个功能模块的测试结果汇总。
      • 发现的问题和缺陷列表,包括问题描述、严重程度、重现步骤等。
    • 性能测试
      • 性能测试的数据和图表,如响应时间、吞吐量等。
    • 兼容性测试
      • 不同设备和操作系统上的测试结果。
    • 安全测试
      • 安全漏洞和风险评估。
    • 用户体验测试
      • 用户体验方面的反馈和改进建议。
  1. 问题和缺陷
    • 列出所有发现的问题和缺陷,按严重程度分类(如致命、严重、中等、轻微)。
    • 每个问题应包括:
      • 问题ID
      • 问题描述
      • 重现步骤
      • 截图或视频(如有)
      • 当前状态(如已解决、未解决)
  1. 总结和建议
    • 测试总结:总体评价应用的质量和测试过程。
    • 改进建议:针对发现的问题提出具体的改进建议。
  1. 附件
    • 测试用例文档
    • 测试日志
    • 相关截图和视频

12.2 要求

1、测试结论&风险:准备给出应用的测试结论及详细的缺陷风险描述;

2、测试报告规范性:测试报告的可读性、可理解性;

3、测试报告准备性:测试报告内容描述、截图与应用情况一致,缺陷可复现。测试用例通过率真实可靠;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/58475.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker 容器网络模式详解

Docker 容器网络模式详解 1.1 引言 1.1.1 Docker 网络简介 Docker 是一个开源的应用容器引擎,它允许开发者将应用和依赖打包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器采用沙箱机制,彼此…

100种算法【Python版】第53篇——无损压缩之LZW算法

本文目录 1 算法步骤2 算法示例3 算法应用3.1 压缩字符串3.1 压缩图像Lempel-Ziv-Welch (LZW) 是一种无损数据压缩算法,广泛应用于图像格式(如 GIF)和其他文件格式。LZW 通过查找输入数据中的重复子串,并使用短码替换这些子串,从而实现压缩。 1 算法步骤 (1)初始化字典…

Linux 配置JDK

文章目录 一、下载Oracle-JDK1.1、如何正确的下载JDK二、配置JDK环境变量2.1 环境变量配置2.1.1、修改vim /etc/profile 添加jdk的路径一、下载Oracle-JDK 1.1、如何正确的下载JDK 首先我要安装的是oracle-jdk,这个时候什么地方都不要去,就去oracle的官网,然后找到,jdk的下…

EasyExcel 学习之 导出 “提示问题”

EasyExcel 学习之 导出 “提示问题” 现象分析解决(伪代码)前端 POST 实现后端实现 现象 EasyExcel 支持导出 xlsx、xls、csv 三种文件格式。在导出过程中可能发生各种异常,当发生异常时应该提示错误信息而非导出一个错误的文件。 分析 首…

springBoot 自动配置与starter

目录 一、自动配置 Springboot实现自动配置的核心机制 Conditional的作用是什么? 如何自定义自动配置? 步骤 例子分析 自动配置的优先级 如何禁用特定的自动配置? 二、starter 如何理解Spring Boot中的starter? 如何自…

Json 类型与多值索引 — OceanBase 4.3.2 AP 功能体验

本文来自 2024年OceanBase技术征文大赛——“让技术被看见 | OceanBase 布道师计划”的用户征文。也欢迎更多的技术爱好者参与征文,赢取万元大奖。和我们一起,用文字让代码跳动起来! 参与2024年OceanBase技术征文大赛>> MySQL在5.7.8…

ORACLE建表(11G)

BEGIN EXECUTE IMMEDIATE DROP TABLE business CASCADE CONSTRAINTS; EXCEPTION WHEN OTHERS THEN IF SQLCODE ! -942 THEN -- 942 是表不存在的错误码 RAISE; END IF; END; CREATE TABLE business ( uuid VARCHAR2(255) NOT NULL, product VARCHAR2(255) NULL, promotion VARC…

Spark on YARN:Spark集群模式之Yarn模式的原理、搭建与实践

Spark 的介绍与搭建:从理论到实践-CSDN博客 Spark 的Standalone集群环境安装与测试-CSDN博客 PySpark 本地开发环境搭建与实践-CSDN博客 Spark 程序开发与提交:本地与集群模式全解析-CSDN博客 目录 一、Spark on YARN 的优势 (一&#…

java后端工程师转行AI大模型岗,工作、自我提升两不误!

随着技术的不断进步,人工智能(AI)已经成为当今科技领域最热门的话题之一。许多开发者开始考虑从传统的软件开发领域,如Java,转向人工智能领域,今天小编和大家一起来探讨Java开发者是否可以转型到人工智能&a…

【系统设计】提升Kafka系统性能:Spring Boot实现Lag感知的生产者与消费者

在分布式系统中,消息队列扮演着至关重要的角色,而Kafka凭借其高吞吐量和低延迟的特性,成为了流数据处理的首选。然而,随着应用规模的扩大,如何有效管理Kafka的offset与lag,确保系统的高可用性和性能稳定&am…

通宵修bug

前两个月的某天凌晨,我司全新的一个营销工具,在全国如期上线。然而整个发布过程并非一帆风顺,在线上环境全量发布后,有同事观测到他所负责模块的监控曲线有异常!监控曲线在发布的时刻近乎于直线下跌。 经过初步排查&am…

Rust-宏编程

巴山楚水凄凉地,二十三年弃置身。 怀旧空吟闻笛赋,到乡翻似烂柯人。 沉舟侧畔千帆过,病树前头万木春。 今日听君歌一曲,暂凭杯酒长精神。 ——《酬乐天扬州初逢席上见赠》唐刘禹锡 【哲理】翻覆的船只旁仍有千千万万的帆船经过&a…

leetcode912.排序数组的题解

题目描述: 题目要求在不使用任何内置函数的情况下解决问题,时间复杂度为 O(nlog(n))。 笔者使用了快速排序,但是直接使用最原始的快速排序,有些特殊的测试用例会超时。 1)如果数组本身基本有序,则使用原始…

TikTok品牌出海:从“流量为王”到“价值为王”

随着市场竞争的加剧,品牌逐渐意识到,仅仅依靠流量已不足以在海外市场立足,必须实现从“流量为王”到“价值为王”的转变。本文Nox聚星将和大家探讨品牌如何与TikTok达人合作,在海外市场中建立长期稳定的品牌形象。 一、品牌出海的…

纯血鸿蒙系统 HarmonyOS NEXT自动化测试实践

1、测试框架选择 hdc:类似 android 系统的 adb 命令,提供设备信息查询,包管理,调试相关的命令ohos.UiTest:鸿蒙 sdk 的一部分,类似 android sdk 里的uiautomator,基于 Accessibility 服务&…

Kafka 可观测性最佳实践

Kafka 概述 Kafka 是由 LinkedIn 开发一个分布式的基于发布订阅模式的消息队列,是一个实时数据处理系统,可以横向扩展。与 RabbitMQ、RockerMQ 等中间件一样拥有几大特点: 异步处理服务解耦流量削峰 监控 Kafka 是非常重要的,因…

《XGBoost算法的原理推导》12-13树的叶子节点权重w和映射关系q 公式解析

本文是将文章《XGBoost算法的原理推导》中的公式单独拿出来做一个详细的解析,便于初学者更好的理解。 我们重新定义一颗树,包括两个部分: 叶子结点的权重向量 w w w;实例 -> 叶子结点的映射关系 q q q(本质是树的…

电商API:开启电商新时代的关键钥匙

一、电商API:定义与发展 电商API,即应用程序编程接口,是连接不同软件系统的桥梁,在电商领域中发挥着至关重要的作用。电商API的发展历程可以追溯到20世纪90年代,当时电子商务刚刚兴起,企业开始意识到通过A…

多client向同一个pushgateway推送指标被覆盖问题

问题: 多个client向同一个pushgateway推送指标,每个client推送的指标名称相同但是lable不同。如下: # TYPE ObjectCount gauge ObjectCount{server_id"server1"} 4 ObjectCount{server_id"server2"} 4 ObjectCount{server_id"…

C++__XCode工程中Debug版本库向Release版本库的切换

Debug和Release版本分别设置编译后,就分别得到了对应的lib库,如下图: 再生成Release后如下图: