测试分类篇

news2024/9/23 1:20:32

小王学习录

  • 测试分类
  • 按测试对象划分
    • 1. 界面测试
    • 2. 可靠性测试
    • 3. 容错性测试
    • 4. 文档测试
    • 5. 兼容性测试
    • 6. 易用性测试
    • 7. 安装卸载测试
    • 8. 安全测试
    • 9. 性能测试
    • 10. 内存泄露测试
  • 按是否查看代码划分
    • 1. 黑盒测试
    • 2. 白盒测试
    • 3. 灰盒测试
  • 按开发阶段分
    • 1. 单元测试
    • 2. 集成测试
    • 3. 系统测试
    • 4. 回归测试
    • 5. 冒烟测试
    • 6. 验收测试
  • 按测试实施组织划分
    • 1. α测试和β测试的区别
    • 2. 第三方测试
  • 按是否运行划分
    • 1. 静态测试
    • 2. 动态测试
  • 按是否手工划分
    • 1. 手工测试
    • 2. 自动化测试
  • 按测试地域划分
    • 1. 国际化测试
    • 2. 本地测试

测试分类

测试的分类可以分为以下几类. 本篇文章将大致介绍这几类测试.
在这里插入图片描述

按测试对象划分

1. 界面测试

界面是软件与用户进行交流的工具, 是软件提供给用户的可视化界面, 用户可以通过界面与软件进行交互. 一个美观的界面可以给用户留下良好的印象.

界面测试又称为UI测试, 测试的依据是UI设计稿, 测试的内容主要有以下几点:

  • 界面内容的完整性, 一致性, 准确性, 友好性. 比如屏幕的大小自适应, 自动换行, 内容是否清晰展示等.
  • 验证整个界面布局和排版是否合理, 包括图片的位置和大小, 字体的颜色和大小等.
  • 对界面所有控件的测试, 如: 文本框, 滚动条, 选择按钮等是否可以正常使用.
  • 界面的布局和色调也要符合当前时事的发展.

2. 可靠性测试

可靠性指的是系统正常运行的能力. 又称可用性, 用正常运行时间/(正常运行时间+非正常运行时间)*100%来表示

可用性指标一般要求达到4个或5个9, 即99.99%或99.999%. 对于不同的应用系统, 可用性要求不一样.

  • 99.99% : 对于一个全年不中断运行(7*24)小时运行的系统, 99.99%意味着全年不能正常工作的时间只有52min, 不到一个小时.
  • 99.999%: 同样的系统, 可用性达到99.999意味着一年不能正常工作的时间只有5分钟.

对于可靠性测试, 需要使用测试工具.

3. 容错性测试

容错性是指系统对于用户输入了一个非法数据, 或用户操作错误, 不会使系统奔溃.

对于容错性测试可以采用下面的方法.

  • 输入非法数据或进行异常操作, 看系统的反应. 如果容错性好, 系统会给出提示或内部捕获处理, 而不会导致系统奔溃.
  • 灾难恢复性测试, 强制使软件发生故障, 验证系统恢复的时间以及数据是否发生丢失. (将数据存储到多台服务器中, 这些服务器分布在不同的地方, 当一处的服务器由于外部原因被损坏, 可以从其他服务器中获取到用户数据)

4. 文档测试

文档测试是测试文档的专业术语, 文档的正确性, 完整性, 一致性, 易用性等.

软件开发中的文档有开发文档, 用户文档, 管理文档等.

5. 兼容性测试

兼容性测试主要涉及以下几个方面:

  • 系统版本的兼容, 新发布版本是否能兼容之间版本的用户数据
  • 应用环境的兼容, 在不同设备(手机, 电脑, 平板), 不同型号, 不同操作系统版本, 不同的浏览器版本下系统能否正常运行.
  • 第三方系统与本系统的兼容. 本系统是否会因为有第三方系统运行而无法正常启动的情况.

6. 易用性测试

易用性测试验证用户使用起来是否方便流畅

  • 标准性和规范性. 比如要开发一个已经被开发出来的同类型平台, 应该遵守已经开发出来的平台的规范, 因为用户在潜意识中已经将早开发出来的系统作为标准, 已经习惯了之前的用法.
  • 直观性. 用户界面的直观性, 要求软件功能特性清晰. 不需要用户进行繁琐的操作.
  • 灵活性. 软件应该有不同的选项以满足不同使用习惯的用户.
  • 舒适性. 强调界面友好, 美观, 操作顺畅, 色彩恰当.

7. 安装卸载测试

  • 软件是否能以不同的方式进行安装或卸载. 比如在软件商店中安装或卸载, 在网页中安装或卸载, 使用命令进行安装或卸载等.
  • 软件是否能在不同的系统和版本下进行安装或卸载.
  • 软件安装或卸载过程中是否能手动停止和取消.
  • 安装空间不足时是否会提示.
  • 安装或卸载过程中突然断电, 死机如何处理等

8. 安全测试

安全测试属于非功能测试中很重要的一个方面

  • 在输入框中输入恶意脚本
  • sql攻击, xss攻击等.
  • 数据加密存储, 加密展示, 加密传输.
  • 严格的权限分配.

9. 性能测试

软件运行过程中越来越慢, 查询数据时的响应速度长等问题都属于性能问题. 常见性能问题有如下几种:

  • 资源泄露
  • 线程死锁
  • 接口响应速度慢
  • 系统受外部系统影响越来越大
  • 系统cpu占用率过大

衡量一个系统性能好坏的关键性指标有, 响应用户时间, 事务平均响应时间, 吞吐率, 内存和cpu使用率.

10. 内存泄露测试

内存泄露问题对于缺乏自动垃圾回收机制的语言编写的系统中更为常见, 内存泄露是可积累的, 当耗尽所有内存之后, 软件的执行就会越来越慢, 最后奔溃.

对于内存泄露的测试方法:

  • 人工静态法. 人工观察代码, 发现内存泄漏.
  • 自动工具法. 使用一些测试内存泄露的工具, 如Visual Leak Detector.

按是否查看代码划分

1. 黑盒测试

按是否查看代码可以划分为黑盒测试和白盒测试.
黑盒测试, 又叫数据驱动测试, 只注重系统的功能, 而忽略代码的内部逻辑和结构. 直接按照需求说明测试软件功能是否符合功能描述.

黑盒测试的优点:

  • 黑盒测试不需要关注代码的内部结构和逻辑, 对代码要求较低.
  • 黑盒测试基于需求文档, 不容易遗漏需求文档中需要测试的功能.
  • 黑盒测试是从用户的角度出发设计测试用例, 很容易知道用户使用哪些功能, 在使用这些功能时会遇到什么问题, 锻炼测试人员的产品思维.

黑盒测试的缺点: 不能覆盖所有代码.

2. 白盒测试

白盒测试又称为逻辑测试 / 结构测试, 关注代码内部结构和逻辑, 忽略业务功能, 针对程序的逻辑结构来设计测试用例.

白盒测试的测试目的是, 通过检查软件内部的逻辑结构, 对软件中的逻辑结构进行覆盖测试.

白盒测试有六种测试方法: 语句覆盖, 判定覆盖, 条件覆盖, 判定条件覆盖, 条件组合覆盖, 路径覆盖.

白盒测试的优点: 代码覆盖率高
白盒测试的缺点: 业务逻辑覆盖率低

3. 灰盒测试

灰盒测试是介于白盒和黑盒测试之间的一种测试, 灰盒测试多用于集成测试阶段. 不仅关注业务逻辑, 同时也关注着代码内部的情况.

按开发阶段分

测试金字塔

在这里插入图片描述
从上到下依次是ui测试, 业务测试, 单元测试. 越靠下的排查成本越低. 越靠上越靠近用户.

1. 单元测试

单元测试是对软件最基本的组成单元进行测试. 测试的对象是软件设计的最小单位:函数/方法. 又称为模块测试.

测试阶段: 编码后或这编码前
测试对象: 函数/方法等最小模块
测试人员: 白盒测试工程师或软件开发工程师
测试依据: 代码, 注释, 详细设计文档
测试方法: 白盒测试

2. 集成测试

单元测试完之后, 对多个单元结合起来所对应的接口进行测试. 主要是检查软件单位之间的接口是否正确.

测试阶段: 单元测试之后
测试对象: 模块间的接口
测试人员: 白盒测试工程师或开发工程师
测试依据: 概要设计文档.
测试方法: 黑盒测试和白盒测试
测试内容: 模块之间的数据传输, 功能冲突等.

3. 系统测试

系统测试是对整个软件系统的测试, 包括了功能, 性能, 环境等的测试.

测试阶段: 集成测试完成之后
测试对象: 整个系统
测试人员: 黑盒测试人员
测试依据: 需求规格说明书.
测试方法: 黑盒测试
测试内容: 功能, 性能, 兼容, 安全, 界面, 易用性, 可靠性等

4. 回归测试

回归测试是指修改了代码之后, 重新进行测试确认修改没有引入新的错误或导致其他代码产生了错误. 软件开发的各个阶段会多次进行回归测试, 随着系统的逐步完善, 回归测试的成本也会逐渐扩大.

5. 冒烟测试

冒烟测试的对象是每一个新编译的正式测试的软件版本, 也就是测试此次开发新加的需求, 目的是确认软件本次新加的主要功能和核心流程正常. 回归测试和冒烟测试都属于系统测试, 但是冒烟测试在正式进行系统测试之前进行, 由开发人员先进行冒烟测试, 然后由测试人员进行冒烟测试. 冒烟测试通过之后, 测试人员开始正式的系统测试.

6. 验收测试

验收测试通常由产品经理或运营进行, 是产品上线之前最后的一个测试流程. 又称为交付测试. 目的是确保软件准备就绪.

测试阶段: 系统测试之后
测试对象: 整个系统
测试人员: 最终用户或需求方.
测试依据: 用户需求, 验收标准(由测试人员编写)
测试方法: 黑盒测试

按测试实施组织划分

1. α测试和β测试的区别

  • 环境: α测试在公司内部进行, β测试的测试环境是不确定的
  • 测试人员类型: α测试是由公司的内部人员进行测试的, β测试是由用户进行测试(类似于公测)
  • 测试人员数量: α测试人员较少, β测试人员较多
  • 阶段: α测试是在β测试之前进行的
  • 测试周期: α周期较短, β测试周期较长.

2. 第三方测试

介于开发方和用户方间的组织(公司中单独的组织)的测试

按是否运行划分

1. 静态测试

不运行代码, 静态分析检查源代码, 检查程序的正确性.

2. 动态测试

运行被测试系统, 输入测试用例, 检查输出结果是否与预期结果相符合.

按是否手工划分

1. 手工测试

手工测试由人工手动输入一个个的测试用例. 执行效率慢, 手工测试出错率大, 但是可以进行探索性测试, 具有发散性思维.

2. 自动化测试

自动化测试是将以人为手工的测试行为转化为机器执行.
按照功能划分分为功能测试自动化, 性能测试自动化, 安全测试自动化
按照测试对象可以分为接口测试, UI测试等.

下篇文章将具体介绍自动化测试.

按测试地域划分

1. 国际化测试

如果系统不止国内使用, 则需要进行国际化测试, 要有与对应国家相适应的语言, 日期, 界面风格等.

2. 本地测试

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

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

相关文章

02. Eureka、Nacos注册中心及负载均衡原理

01小节中订单服务远程调用用户服务案例实现了跨服务请求,在微服务中一个服务可能是集群部署的,也就是一个服务有多个实例,但是我们在调用服务时需要指定具体的服务实例才能调用该服务,在集群模式下,服务地址应该写哪个…

【leetcode】力扣热门之回文链表【简单难度】

题目描述 给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。 用例 输入:head [1,2,2,1] 输出:true 输入:head [1,2] 输出:f…

深度学习:解决CNN的困境——胶囊网络

从2017年底到2018年初,整个人工智能学术研究领域谈论最多的应该就是被誉为深度学习之父Geoffrey E. Hinton 发表的论文 Dynamic Routing Between Capsules,其中介绍了全新的深度学习模型——胶囊网络(Capsule Network) 1. 普通CNN的困境 虽…

【JaveWeb教程】(8)Web前端基础:Vue组件库Element之Table表格组件和Pagination分页组件 详细示例介绍

目录 1 Table表格组件1.1 组件演示1.2 组件属性详解 2 Pagination分页2.1 组件演示2.2 组件属性详解2.3 组件事件详解 接下来我们来学习一下ElementUI的常用组件,对于组件的学习比较简单,我们只需要参考官方提供的代码,然后复制粘贴即可。本节…

二叉搜索树|不同、验证、转换等

二叉搜索树|不同、验证、转换等 文章目录 二叉搜索树|不同、验证、转换等[96 不同的二叉搜索树](https://leetcode.cn/problems/unique-binary-search-trees/description/)[98 验证二叉搜索树](https://leetcode.cn/problems/validate-binary-search-tree/description/)[538 把…

基于机器视觉的车牌检测-车牌图像倾斜矫正位

Radon变换 Radon变换常用于车牌图像倾斜矫正,主要包括水平倾斜和垂直倾斜矫正。Radon变换定义:下图显示了在指定的旋转角度的单一投影。间距为1个像素的平行光穿过图像,则radon变换计算穿过图像光线的线积分。 Radon变换的本质是将原来的XY平…

全志V853 NPU开发之Demo使用说明

上一章节中配置 NPU 扩展包后可以在 menuconfig 里看到两个 Demo 测试应用程序。这里我们来介绍一下怎么使用这两个 Demo。 YOLOV3 在 NPU Package 中我们提供了一个较为完整的 YOLOV3 Demo 作为测试,程序源码位于: openwrt/package/npu/yolov3/src这个…

Spark基础内容

Spark基本介绍 Spark是什么 定义 Apache Spark是用于大规模数据(large-scala data)处理的统一(unified)分析引擎. Spark与MapReduce对比 mapreduce架构图如下: MapReduce的主要缺点: 1- MapReduce是基于进程进行数据处理,进程相对线程来说&#x…

【数据结构—排序—交换排序】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一、排序的概念及其运用 1、排序的概念 2、排序运用 3、 常见的排序算法 二、交换排序 1、冒泡排序 1.1算法讲解 1.2冒泡排序的实现: 1.2.1头文件的…

6.云原生之jenkins集成SonarQube

文章目录 搭建 SonarQube配置SonarQube创建sonar-token生成令牌查看jenkins暴露的NodePort端口创建Webhook 服务器将 SonarQube 配置添加到 ks-installer Jenkins集成SonarQube将 SonarQube 服务器添加至 Jenkinsjenkins配置SonarQubejenkins中配置SonarQube创建Jenkins凭证将 …

LDD学习笔记 -- Linux字符设备驱动

LDD学习笔记 -- Linux字符设备驱动 虚拟文件系统 VFS设备号相关Kernel APIs动态申请设备号动态创建设备文件内核空间和用户空间的数据交换系统调用方法readwritelseek 写一个伪字符设备驱动在主机上测试pcd(HOST)在目标板上测试pcd(TARGET) 字符驱动程序用于与Linux内核中的设备…

Docker使用扩展

日升时奋斗,日落时自省 目录 1、容器 1.1、容器的生命周期 1.1.1、容器OOM 1.1.2、容器异常退出 1.1.3、容器暂停 1.2、容器命令 1.2.1、创建容器 1.2.2、启动容器 1.2.3、容器日志 1.2.4、容器交互 1.2.5、容器停止 1.2.6、扩展 1.3、综合演示 2、存…

FPGA高端项目:纯verilog的 25G-UDP 高速协议栈,提供工程源码和技术支持

目录 1、前言免责声明 2、相关方案推荐我这里已有的以太网方案本协议栈的 1G-UDP版本本协议栈的 10G-UDP版本1G 千兆网 TCP-->服务器 方案1G 千兆网 TCP-->客户端 方案10G 万兆网 TCP-->服务器客户端 方案 3、该UDP协议栈性能4、详细设计方案设计架构框图网络调试助手…

《Learning eBPF》读书笔记

文章目录 章节内容简介第1章 什么是ebpf,为什么它很重要?第2章 ebpf版hello world第3章 ebpf程序剖析ebpf虚拟机一个xdp的hello word例子c语言程序编译为ebpf字节码加载bpf程序到内核检查加载的程序运行时编译机器码附加到事件分离程序卸载程序 第4章 bp…

CAN物理层协议介绍

目录 ​编辑 1. CAN协议简介 2. CAN物理层 3. 通讯节点 4. 差分信号 5. CAN协议中的差分信号 1. CAN协议简介 CAN是控制器局域网络(Controller Area Network)的简称,它是由研发和生产汽车电子产品著称的德国BOSCH公司开发的,并最终成为国际标准(ISO11519) &#xff0…

光明源@智慧公厕系统的功能介绍-详情可点击查看

什么是智慧公厕系统?智慧公厕系统是一种通过科技手段提升公共卫生设施管理和服务水平的解决方案。智慧公厕系统都有哪些功能呢?那么小编讲以光明源的角度来讲一下公厕系统都有哪些功能! 光明源智慧公厕系统-实时监控和管理公厕 该系统使用各…

【leetcode】力扣算法之旋转图像【难度中等】

题目描述 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 用例 输入: matrix [[1,2,3],[4,5,6],[7,8,9]] 输出&…

【Spring实战】26 使用Spring Security 保护 Spring Boot Admin

文章目录 1. 定义1.集成流程1)添加 Spring Boot Admin 依赖2)配置 Spring Boot Admin3)启动 Spring Boot Admin 服务4)访问 Spring Boot Admin 服务5)添加 Spring Security 依赖6)配置 Spring Security7&am…

【书生大模型00--开源体系介绍】

书生大模型开源体系介绍 0 通用人工智能1 InternLM性能及模型2 从模型到应用 大模型成为目前很热的关键词,最热门的研究方向,热门的应用;ChatGPT的横空出世所引爆,快速被人们上手应用到各领域; 0 通用人工智能 相信使…

02、Kafka ------ 配置 Kafka 集群

目录 配置 Kafka 集群配置步骤启动各Kafka节点 配置 Kafka 集群 启动命令: 1、启动 zookeeper 服务器端 小黑窗输入命令: zkServer 2、启动 zookeeper 的命令行客户端工具 (这个只是用来看连接的节点信息,不启动也没关系&#…