软件测试---测试分类

news2025/4/16 15:43:32

一 : 按测试对象划分

在这里插入图片描述

1.1 可靠性测试

可靠性(Availability)即可用性,是指系统正常运行的能力或者程度,一般用正常向用户提供软件服务的时间占总时间的百分比表示。

在这里插入图片描述
在这里插入图片描述

1.2 容错性测试

行李箱 , 四个轮子 , 坏了一个 , 说明这个容错性很好 ; 如果坏一个就不能拖着动了 , 那说明其容错性不好 .

容错性测试是指系统能够处理异常,用户的错误操作而不至于系统崩溃,从而能够提高系统的可用性。

容错性测试包含以下方面:

  • 输入异常数据或进行异常操作,以检验系统的保护性。如果系统的容错性好,系统只给出提示或内部消化掉,而不会导致系统出错甚至崩溃。比如数据级测试,校验测试,环境容错性测试,界面容错性测试
  • 灾难恢复性测试。通过各种手段,让软件强制性地发生故障,然后验证系统已保存的用户数据是否丢失,系统和数据是否能尽快恢复。

1.3 文档测试

国家有关计算机软件产品开发文件编制指南中共有14 种文件,可分为3 大类。

  1. 开发文件:可行性研究报告、软件需求说明书、数据要求说明书、概要设计说明书、详细设计说明书、数据库设计说明书、模块开发卷宗。
  2. 用户文件:用户手册、操作手册,用户文档的作用:改善易安装性;改善软件的易学性与易用性;改善软件可靠性;降低技术支持成本。
  3. 管理文件:项目开发计划、测试计划、测试分析报告、开发进度月报、项目开发总结报告。

在实际的测试中,最常见的是用户文件的测试,例如:手册说明书等。也会有一些公司对需求文档进行测试,来保证需求文档的质量。

文档测试的关注点:

  • 文档的术语
  • 文档的正确性
  • 文档的完整性
  • 文档的一致性
  • 文档的易用性

1.4 安装卸载测试

应用的安装和卸载在任何一款APP中都属于最基本功能。一旦出错,就属于优先级为紧要Critical的缺陷。

这个很容易理解 , 一个应用 , 用户都装不上 , 这不闹呢 ? 用户想卸卸载不掉 , 那这个应用的评价必然急速下降 ; 卸载之后无法重装 , 也是乏善可陈 .

对于安装卸载测试 , 主要需要考虑以下方面 :

  1. 软件不同的安装和卸载方式;
  2. 应用是否可以在不同的环系统,版本下安装(安装兼容性)
  3. 安装或者卸载过程中是否可以手动暂停,或者取消
  4. 安装空间不足的时候系统是否有提示
  5. 是否可以正常的卸载,以及应用软件的各种卸载方式
  6. 卸载和安装过程中出现环境问题,软件是否可以正常并且合理的应对,比如死机,断电,断网等

1.5 内存泄漏测试

从用户使用的角度来看,内存泄露本身不会造成什么危害,一般用户可能根本不会感觉到内存泄露的存在。但是内存泄露是会累积的,只要执行的次数足够多,最终会耗尽所有可用内存,使软件的执行越来越慢,最后停止响应。可以把这种软件的问题比喻成软件的“慢性病”。

造成内存泄露的原因有很多,最常见的有以下几种。

  • 分配完内存之后忘了回收。
  • 程序写法有问题,造成没办法回收(如死循环造成无法执行到回收步骤)。
  • 某些API函数的使用不正确,造成内存泄露。

内存泄漏的检测方法 :

  1. 人工检查
  2. 借助工具进行代码静态扫描

1.6 弱网测试

如果你有一个功能需要做弱网测试 , 那么你首先应该分析一下这个功能为什么要做弱网测试 , 这样才能有针对性地去进行弱网测试 . 一般原因无外乎两个 :

1.你要看下在弱网环境下 , 客户端的用户体验怎么样 .

对于第一种原因 , 我们可以借助工具去模拟弱网环境 , 如使用Fiddler .

在这里插入图片描述

在这里插入图片描述

2.你的功能里 , 有网络相关的逻辑 . 什么是网络相关的逻辑呢 ? 典型就是上传和下载的逻辑 .

二 : 按是否查看代码划分

在这里插入图片描述
Q : 为什么不能让灰盒测试取代黑盒测试和白盒测试?

A : 灰盒测试没有白盒测试那么详尽,灰盒测试没有黑盒测试覆盖产品的广度大。所以灰盒测试不能取代黑白盒 .

Q : 哪种测试方法用的多?

A : 黑盒测试和白盒测试测试人员都会使用到,在工作根据具体情况来结合白盒测试和黑盒测试。通常情况下对于测试人员来说使用黑盒测试相对要多一些。

三 : 按开发阶段划分

在这里插入图片描述

3.1单元测试(Unit Testing)

单元测试是对软件组成单元进行测试。其目的是检验软件基本组成单位的正确性。测试的对象是软件设计的最小单位:模块。又称为模块测试

  • 测试阶段:编码后或者编码前(TDD)
  • 测试对象:最小模块
  • 测试人员:白盒测试工程师或开发工程师
  • 测试依据:代码和注释+详细设计文档
  • 测试方法:白盒测试
  • 测试内容:模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试 .

3.2集成测试

集成测试也称联合测试(联调)、组装测试,将程序模块采用适当的集成策略组装起来,对系统的接口及集成后的功能进行正确性检测的测试工作。集成主要目的是检查软件单位之间的接口是否正确。

  • 测试阶段:一般单元测试之后进行
  • 测试对象:模块间的接口
  • 测试人员:白盒测试工程师或开发工程师
  • 测试依据:单元测试的模块+概要设计文档
  • 测试方法:黑盒测试与白盒测试相结合
  • 测试内容:模块之间数据传输、模块之间功能冲突、模块组装功能正确性、全局数据结构、单模块缺陷对系统的影响 .

3.3系统测试(System Testing)

将软件系统看成是一个系统的测试。包括对功能、性能以及软件所运行的软硬件环境进行测试。

  • 测试阶段:集成测试通过之后

  • 测试对象:整个系统(软、硬件)

  • 测试人员:黑盒测试工程师

  • 测试依据:需求规格说明文档

  • 测试方法:黑盒测试

  • 测试内容:功能、界面、可靠性、易用性、性能、兼容性、安全性等

回归测试

回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。在整个软件测试过程中占有很大的工作量比重,软件开发的各个阶段都会进行多次回归测试。

随着系统的庞大,回归测试的成本越来越大,通过选择正确的回归测试策略来改进回归测试的效率和有效性是很有意义的。

冒烟测试

冒烟测试的对象是每一个新编译的需要正式测试的软件版本,目的是确认软件主要功能和核心流程正常,在正式进行系统测试之前执行。冒烟测试一般在开发人员开发完毕后提交给测试人员来进行测试时,先进行冒烟测试,保证基本功能正常,不阻碍后续的测试。

如果冒烟测试通过,则测试人员开始进行正式的系统测试,如果不通过,则测试人员可以让开发人员重新修复代码直到冒烟测试通过,再开始进行系统测试。

回归测试和冒烟测试都属于系统测试。

3.4 验收测试

部署软件之前的最后一个测试操作 . 是甲方/用户进行的测试 .

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

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

相关文章

如何在香港BGP服务器上进行安全性和隐私性配置?

​  香港BGP服务器是在香港运营的,它是基于BGP多线路的网络拓扑所构建的服务器,主要面向于中国内地和海外地域。香港BGP服务器庞大的市场扩张,引来了国内外企业的眼光。然而,如果想要确保香港BGP服务器上的数据安全可靠&#xf…

Tapdata Cloud 基础课:新功能详解之「微信告警」,更及时的告警通知渠道

【前言】作为中国的 “Fivetran/Airbyte”, Tapdata 是一个以低延迟数据移动为核心优势构建的现代数据平台,内置 60 数据连接器,拥有稳定的实时采集和传输能力、秒级响应的数据实时计算能力、稳定易用的数据实时服务能力,以及低代码可视化操作…

MFC界面控件BCGControlBar v33.4 - 支持Win 11 Mica material主题

BCGControlBar库拥有500多个经过全面设计、测试和充分记录的MFC扩展类。 我们的组件可以轻松地集成到您的应用程序中,并为您节省数百个开发和调试时间。BCGControlBar专业版和BCGSuite for MFC v33.4已正式发布了,该版本包含了对Windows 11 Mica materia…

小Redis:开源一款迷你C++17 KV内存型数据库

A KV high-performance mini-database based on memory and C17 This project is inspired by Redis source code. 部分模仿Redis源码。 https://github.com/ZYunfeii/MiniKV Command line tools Developed command line tool kvctl. value type:string yunfeiubuntu:~/Min…

JavaScript函数之prototype原型和原型链

文章目录1. 原型2. 显式和隐式原型3. 原型链3.1 访问顺序4. instanceof4.1 如何判断1. 原型 函数的prototype属性 每个函数都有一个prototype属性,它默认指向一个Object空对象(即:原型对象)。原型对象中有一个属性constructor&a…

【C++从入门到放弃】类和对象(中)———类的六大默认成员函数

🧑‍💻作者: 情话0.0 📝专栏:《C从入门到放弃》 👦个人简介:一名双非编程菜鸟,在这里分享自己的编程学习笔记,欢迎大家的指正与点赞,谢谢! 类和对…

Python | 蓝桥杯进阶第一卷——字符串

欢迎交流学习~~ 专栏: 蓝桥杯Python组刷题日寄 蓝桥杯进阶系列: 🏆 Python | 蓝桥杯进阶第一卷——字符串 🔎 Python | 蓝桥杯进阶第二卷——递归(待续) 💝 Python | 蓝桥杯进阶第三卷——动态…

论文阅读-End-to-End Open-Domain Question Answering with BERTserini

论文链接:https://aclanthology.org/N19-4013.pdf 目录 摘要 1 简介 2 背景及相关工作 3 系统架构 3.1 Anserini Retriever 3.2 BERT 阅读器 4 实验结果 5演示 6结论 摘要 我们展示了一个端到端的问答系统,它将 BERT 与开源 Anserini 信息检索…

MSYS2安装

最近在学习windows上编译FFmpeg,需要用到msys2,在此记录一下安装和配置过程。 点击如下链接,下载安装包: Index of /msys2/distrib/x86_64/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 我下载的是:ms…

相信人还是相信ChatGPT,龙测首席AI专家给出了意料之外的答案

最近,关于ChatGPT的话题太火了!各大社交软件都是他的消息!从去年12月份ChatGPT横空出世,再到近期百度文心一言、复旦Moss的陆续宣布,点燃了全球对AIGC(内容人工智能自动生成)领域的热情&#xf…

搭建Bitbucket项目管理工具详细教程

目录 1.安装前准备 2.jdk安装 2.1.rpm安装方式: 3.创建bitbucket数据库 4.安装Git 5.安装bitbucket 5.1下载完成上传至服务器的 /usr/atlassian/ 目录下 5.2安装atlassian-bitbucket-7.21.0 5.3安装MySQL驱动 5.4破解激活bitbucket 1.安装前准备 首先查看操…

Python 之网络式编程

一 客户端/服务器架构 即C/S架构,包括 1、硬件C/S架构(打印机) 2、软件B/S架构(web服务) C/S架构与Socket的关系: 我们学习Socket就是为了完成C/S的开发 二 OSI七层 引子:   计算机组成…

【Spark分布式内存计算框架——Spark Streaming】13. 偏移量管理(下)MySQL 存储偏移量

6.3 MySQL 存储偏移量 此处将偏移量数据存储到MySQL表中,数据库及表的DDL和DML语句如下: -- 1. 创建数据库的语句 CREATE DATABASE IF NOT EXISTS db_spark DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_0900_ai_ci; USE db_spark ; -- 2. 创建表的语句 CRE…

蓝牙资讯|2022 年 Q4 全球 TWS 耳机出货量 7900 万部

Canalys 最新数据显示,2022 年第四季度,全球个人智能音频设备出货量下降 26%,跌至 1.1 亿部。所有品类的出货量都面临不一的下滑趋势,甚至是一直支撑市场的 TWS 品类也遭遇 23% 两位数的下降至 7900 万部。 全球市场方面&#x…

MySQL中varchar(M)存储字符串过长

最近写项目&#xff0c;数据库报了一个错&#xff0c;错误原因是MySQL中存储的字符串过长最近在学MySQL的基础&#xff0c;刚好学到了关于varchar类型要存储的字符串是 “<p>12121212121212</p>\n<p><img src\"https://zzjzzjzzjbucket.oss-cn-hangz…

附录5-大事件项目前端

目录 1 前言 2 用到的插件 2.1 截取图像 cropper 2.2 富文本编辑器 tinymce 3 项目结构 4 config.js 5 主页 5.1 iframe 5.2 页面的宽高 5.3 修改文章 6 个人中心-基本资料 7 个人中心-更换头像 8 个人中心-更换密码 9 文章管理-文章分类 10 文章…

Springboot集成kafka(环境搭建+演示)|超级详细,建议收藏

Springboot集成kafka一、前言&#x1f525;二、环境说明&#x1f525;三、概念&#x1f525;四、CentOS7安装kafka&#x1f525;1.下载kafka安装包2.下载好后&#xff0c;进行解压六、kafka项目集成&#x1f525;1️⃣pom引入2️⃣配置kafka3️⃣一个kafka消息发送端4️⃣定义一…

MySQL45讲笔记04深入浅出索引上

索引的目的: 索引的出现其实就是为了提高数据查询的效率&#xff0c;就像书的目录一样。常见索引模型&#xff1a; hash表&#xff0c;以K-V键值对的形式的一种数据结构&#xff0c;底层是数组加链表形式。通过一定的hash运算找到数据合适的位置放入&#xff0c;如果放入的位置…

[jetson]paddlepaddle2.4.0在jetpack5.0.2源码编译流程

由于官方暂时没有提供jetson对应的jetson jetpack5.0.2预编译包&#xff0c;因此只有源码编译&#xff0c;本次编译不带Tensorrt,编译已经顺利成功&#xff0c;注意本次使用的设备是jetson NX 测试环境&#xff1a; ubuntu20.04 jetpack5.0.2 GCC-8.4 Software part of jet…

Centos7搭建NFS

1.NFS简介Network File System(网络文件系统&#xff0c;通过网络让不同的机器系统之间可以彼此共享文件和目录&#xff0c;类似Samba服务。2.NFS挂载原理 在网络中服务器和客户端进行连接都是通过端口进行数据传输&#xff0c;而NFS服务端的端口是随机的&#xff0c;从而导致N…