常见的二十种软件测试方法详解(史上最全)

2023-11-13

一.单元测试(模块测试)

单元测试是对软件组成单元进行测试。其目的是检验软件组成单位的正确性。测试对象是:模块。

对模块进行测试,单独的一个模块测试,属于静态测试的一类

  • 测试阶段:编码后或者编码前(TDD)
  • 测试对象:最小模块
  • 测试人员:白盒测试工程师或开发工程师(测源码)
  • 测试依据:代码和注释+详细设计文档
  • 测试方法:白盒测试(因为要测源码)
  • 测试内容:模块接口测试(测试模块里面的参数传递是否正确)、局部数据结构测试(测试变量的作用域范围)、路径测试(if-else 判断必须覆盖所有分支)、错误处理测试、边界测试( for 循环)

二.集成测试

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

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

三.系统测试

将软件系统看成是一个系统的测试。包括对功能、性能以及软件所运行的软硬件环境进行测试。时间大部分在系统测试执行阶段,包括回归测试和冒烟测试。

  • 测试阶段:集成测试通过之后
  • 测试对象:整个系统(软、硬件)
  • 测试人员:黑盒测试工程师(对功能测试)
  • 测试依据:需求规格说明文档
  • 测试方法:黑盒测试
  • 测试内容:功能、界面、可靠性、易用性、性能、兼容性、安全性等
  • 回归测试(Regression Testing)

四.回归测试

回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。

有了代码修改后就进行回归测试,根据测试阶段确定回归范围。

在整个软件测试过程中占有很大的工作量比重,软件开发的各个阶段都会进行多次回归测试。随着系统的庞大,回归测试的成本越来越大,通过选择正确的回归测试策略来改进回归测试的效率和有效性是很有意义的。

五.冒烟测试

这一术语源自硬件行业。
对一个硬件或硬件组件进行更改或修复后,直接给设备加电。如果没有冒烟,则该组件就通过了测试。也可以理解为该种测试耗时短,仅用一袋烟功夫足够了。

冒烟测试的对象是每一个新编译的需要正式测试的软件版本,目的是确认软件基本功能正常,可以进行后续的正式测试工作。冒烟测试的执行者是版本编译人员。

概念:对核心主干流程进行测试,如果成功,就认为成功
作用:判断是否接受测试的标准,若核心主干都走不通,那么直接打下去

六.验收测试

买到新手机,一般会有7天包退,一个月包换,我们会尽量在7天内把手机的所有功能都试一遍。

验收测试是部署软件之前的最后一个测试操作。它是技术测试的最后一个阶段,也称为交付测试。验收测试的目的是确保软件准备就绪,按照项目合同、任务书、双方约定的验收依据文档,向软件购买都展示该软件系统满足原始需求。

  • 测试阶段:系统测试通过之后
  • 测试对象:整个系统(包括软硬件)。
  • 测试人员:主要是最终用户或者需求方。
  • 测试依据:用户需求、验收标准
  • 测试方法:黑盒测试(对功能进行测试)
  • 测试内容:同系统测试(功能…各类文档等)

七.静态测试(不运行程序本身,测试文档)

静态测试是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。‘对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找错。

八.动态测试

动态测试方法是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等性能。大多数软件测试工作都属于动态测试。

九.手工测试

就是由人去一个一个的输入测试用例,然后观察结果,和机器测试相对应,属于比较原始但是不可缺少的一个步骤。

总结优缺点:
(1)优点:自动化无法替代探索性测试、发散思维结果的测试。
(2)缺点:执行效率慢,量大易错。

十.自动化测试

就是在预设条件下运行系统或应用程序,评估运行结果,预先条件应包括正常条件和异常条件。

简单说自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。

自动化实施步骤:
1.完成功能测试,版本基本稳定
2.根据项目特性,选择适合项目的自动化工具,并搭建环境
3.提取手工测试的测试用例转化为自动化测试的用例
4.通过工具、代码实现自动化的构造输入,自动检测输出结果是否符合预期
5.生成自动测试报告
6.持续改进,脚本优化。

十一.业务测试

业务测试是测试人员把系统各个模块串接起来运行、模拟真实用户实际的工作流程,满足用户需求定义的功能来进行测试的过程。

例如查看邮件:
登录网站-输入用户名、密码登录-进入收件箱-查到邮件-点击打开-查阅-关闭邮件-退出邮箱-关闭网站
业务测试关注需求和用户
所有业务流程进行测试,包过主干流程,分支流程,甚至更小的流程
测不同的业务,必须对项目的需求特别了解

十二.界面测试

界面测试(简称UI测试),测试用户界面的功能模块的布局是否合理、整体风格是否一致、各个控件的放置位置是否符合客户使用习惯,此外还要测试界面操作便捷性、导航简单易懂性,页面元素的可用性,界面中文字是否正确,命名是否统一,页面是否美观,文字、图片组合是否完美等。

十三.文档测试

在这里插入图片描述

十四.兼容性测试

大家经常上网,同一网站在不同的浏览器上表现不一样

WEB测试 ;APP测试

兼容性主要是指软件之间能否很好的运做,会不会有影响、软件和硬件之间能否发挥很好的效率工作,会不会影响导致系统的崩溃。

  • 平台测试
  • 浏览器测试
  • 软件本身能否向前或者向后兼容
  • 测试软件能否与其它相关的软件兼容
  • 数据兼容性测试

最常见的就是浏览器的兼容性测试,不同浏览器在css,js解析上的不同会导致页面的显示不同。

十五.易用性测试

易用性(Useability)是交互的适应性、功能性和有效性的集中体现。

手机拔打电话功能不放在首页,放在一个目录下边,点击三四次才可以找到拔打电话功能,这个功能好用吗?

十六.性能测试

检查系统是否满足需求规格说明书中规定的性能。

通常表现在以下几个方面:

  • 对资源利用(如内存、处理机周期等)进行的精确度量
  • 对执行间隔
  • 日志事件(如中断,报错)
  • 响应时间
  • 吞吐量(TPS)
  • 辅助存储区(例如缓冲区、工作区的大小等)
  • 处理精度等进行的监测

十七.易用性测试

易用性(Useability)是交互的适应性、功能性和有效性的集中体现。易用性属于人体工程学的范畴,人体工程学(ergonomics)是一门将日常使用的东西设计为易于使用和实用性强的学科。

手机拔打电话功能不放在首页,放在一个目录下边,点击三四次才可以找到拔打电话功能,这个功能好用吗?

在某些大厂会有专门的部门来进行易用性测试,又叫用户体验测试。

十八. 安装测试

测试程序的安装、卸载
典型的是app的安装、卸载

十九.安全测试

安全测试是一个相对独立的领域,需要更多的专业知识。例如web的安全测试,需要熟悉各种网络协议
TCP\HTTP,防火墙,CDN,熟悉各种操作系统的漏洞,熟悉路由器等。从软件来说,熟悉各种攻击手段,例如
SQL注入、Xss等。
作为web入门测试,可以IBM的appscan。

二十.内存泄漏测试

电脑打开的东西太多,机器反应慢甚至死机,重启之后就好了,过会同样的问题出现

很多软件系统都存在内存泄露的问题,尤其是缺乏自动垃圾回收机制的“非托管”语言 编写的程序,例如C、CH、Delphi等。从用户使用的角度来看,内存泄露本身不会造成什 么危害,一般用户可能根本不会感觉到内存泄露的存在。但是内存泄露是会累积的,只要执 行的次数足够多,最终会耗尽所有可用内存,使软件的执行越来越慢,最后停止响应。可以 把这种软件的问题比喻成软件的“慢性病”。

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

1.分配完内存之后忘了回收。
2.程序写法有问题,造成没办法回收。
3.某些API函数的使用不正确,造成内存泄露。
4.没有及时释放。

内存泄漏的检测:
1、对于不同的程序可以使用不同的方法来进行内存泄露的检查,还可以使用一些专门的工具来进行内存问题的检查,例如MemProof. AQTime、Purify、BundsChecker等。 有些开发工具本身就带有内存问题检查机制.要确保程序员在编写程序和编译程序的时候打开这些功能。
2、通过代码扫描分析工具来检查

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

常见的二十种软件测试方法详解(史上最全) 的相关文章

  • 软件测试开发/全日制/测试管理丨用户端 App 自动化测试

    随着移动应用的普及和发展 用户端 App 自动化测试成为确保应用质量 提高测试效率的关键环节 这一测试方法不仅可以模拟用户真实的操作行为 还能够覆盖多种设备和平台 为移动应用的稳定性和用户体验提供可靠的保障 选择合适的自动化测试框架 在用户
  • 【性能测试入门】:压力测试概念!

    压力测试可以验证软件应用程序的稳定性和可靠性 压力测试的目标是评估软件在极端负载条件下的鲁棒性和错误处理能力 并确保软件在紧急情况下不会崩溃 它甚至可以进行超出软件正常工作条件的测试 并评估软件在极端条件下的工作方式 在软件工程中 压力测试
  • 软件测试开发/全日制/测试管理丨性能测试

    性能测试是软件测试中的一项重要活动 旨在评估系统在不同条件下的性能 稳定性和可伸缩性 通过模拟实际用户负载 性能测试有助于发现潜在的性能瓶颈和优化空间 确保系统能够在各种情况下高效运行 性能测试的主要类型 负载测试 通过逐渐增加用户负载 测
  • 软件测试|好用的pycharm插件推荐(五)——Translation

    前言 在我们的日常工作中 经常会遇到需要查看各个第三方库源码的问题 在很多情况下 我们的英语能力不能够满足我们完全读懂源码 所以我们就需要借助翻译工具来帮助我们理解第三方库的源码 如果我们将源码复制再使用其他工具翻译 会显得比较繁琐 如果有
  • 外包干了2个月,技术退步明显...

    先说一下自己的情况 大专生 18年通过校招进入武汉某软件公司 干了接近4年的功能测试 今年年初 感觉自己不能够在这样下去了 长时间呆在一个舒适的环境会让一个人堕落 而我已经在一个企业干了四年的功能测试 已经让我变得不思进取 谈了2年的女朋友
  • Python接口自动化测试处理不同接口间参数依赖

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 2k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • Locust负载测试工具实操

    本中介绍如何使用Locust为开发的服务 网站执行负载测试 Locust 是一个开源负载测试工具 可以通过 Python 代码构造来定义用户行为 避免混乱的 UI 和臃肿的 XML 配置 步骤 设置Locust 在简单的 HTTP 服务上模
  • 2种方法,教你使用Python实现接口自动化中的参数关联

    通常在接口自动化中 经常会参数关联的问题 那么什么是参数关联 参数关联就是上一个接口的返回值会被下一个接口当做参数运用 其中Python中可以实现参数关联的方法有很多种 今天小编给大家介绍下 如何通过Python来实现接口自动化中的参数关联
  • 测试工程师能否作为一份「终身职业」?30岁+怎么办?

    讨论 测试工程师可否作为一份终生的职业 这是我在论坛看到的一个讨论 你的答案是什么呢 我希望大家能认真思考后给出一个属于自己的答案 无论你是新手入门 还是资深专家 回答这个问题请不要凭一腔热血 也不用过分消极 别总和钱挂钩 平心而论即可 就
  • 测试开发必知:有Tomcat,为什么还要Nginx?

    只用Tomcat 不用Nginx搭建Web服务 行不行 我曾经提出的愚蠢问题 今天详细给自己解释下 为什么必须用Nginx 不用Nginx 只用Tomcat的Http请求流程 浏览器处理一个Http请求时 会首先通过DNS服务器找到域名关联
  • 软件测试|使用matplotlib绘制多种折线图

    简介 在数据可视化领域 Matplotlib是一款非常强大的Python库 它可以用于绘制各种类型的图表 包括折线图 本文将介绍如何使用Matplotlib创建多种不同类型的折线图 并提供示例代码 创建模版 在绘图之前 我们可以先创建我们的
  • 软件测试|SQLAlchemy环境安装与基础使用

    简介 SQLAlchemy 是一个强大的 Python 库 用于与关系型数据库进行交互 它提供了高度抽象的对象关系映射 ORM 工具 允许使用 Python 对象来操作数据库 而不必编写原生SQL查询 本文将介绍如何安装 SQLAlchem
  • 软件测试|web自动化测试神器playwright教程(三十八)

    简介 在我们使用selenium时 我们可以获取元素的属性 元素的文本值 以及输入框的内容等 作为比selenium更为强大的web自动化测试神器 playwright也可以实现对元素属性 文本值和输入框内容的抓取 并且实现比seleniu
  • 软件测试|Pydantic处理时间类型数据

    简介 我们之前介绍过使用 pydantic 验证数据 比如校验数据的格式等 但是在我们的日常工作中 还有一种数据是需要我们验证的 比如时间数据 时间数据不同于字符串 列表等数据 与他们的验证不一样 本文就来为大家介绍一下 pydantic
  • 软件测试|教你如何使用Python绘制出奥运五环旗

    简介 我们之前介绍过使用turtle来绘制正多边形 但是绘制正多边形只是turtle模块最基础的使用 我们可以使用turtle模块绘制出更多不一样的精彩图形 本文就来给大家介绍一个比较简单的turtle绘图实例 绘制奥运五环旗 初始化参数
  • 软件测试|如何使用selenium处理iframe富文本输入框

    简介 在网页开发中 富文本框是常见的元素 用于输入富文本内容 如富文本编辑器或邮件编辑器 如果我们要使用Python和Selenium进行自动化测试或操作这种富文本框 可能会遇到一些挑战 本文将详细介绍如何使用Python和Selenium
  • 新手也能看懂的【前端自动化测试入门】

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 月薪2W的软件测试工程师,到底是做什么的?

    在生活中 我们常常会遇到以下几种窘迫时刻 准备骑共享单车出行 却发现扫码开锁半天 车子都没有反应 手机导航打车 却发现地图定位偏差很大 司机总是跑错地方 买个水 却遭遇自动售货机吐币 或者不找零钱 好不容易休息打个游戏 却一直出现卡顿 闪退
  • 一文从0到1手把手教学UI自动化测试之数据驱动!

    在UI的自动化测试中 我们需要把测试使用到的数据分离到文件中 如果单纯的写在我们的测试模块里面 不是一个好的设计 所以不管是什么类型的自动化测试 都是需要把数据分离出来的 当然分离到具体的文件里面 文件的形式其实有很多的 这里主要说明JSO
  • Airtest自动化测试工具

    一开始知道Airtest大概是在年初的时候 当时 看了一下官方的文档 大概是类似Sikuli的一个工具 主要用来做游戏自动化的 通过截图的方式用来解决游戏自动化测试的难题 最近 移动端测试的同事尝试用它的poco库来做自动化 看样子还不错

随机推荐

  • 查看和修改AWR配置

    有时遇到系统遇到复杂问题 处理周期长 需要保留系统的快照周期 便于分析问题 这时 需要延长延长快照时间周期 默认一般是一周时间 一 查看当前AWR配置 10g版本中默认是保留7天 11g版本中默认保留8天 采集间隔是1小时 这个信息可以从D
  • java.net.SocketException四大异常解决方案

    java net SocketException如何才能更好的使用呢 这个就需要我们先要了解有关这个语言的相关问题 希望大家有所帮助 那么我们就来看看有关java net SocketException的相关知识 第1个异常是 java n
  • 疯壳Android嵌入式Linux平板开发教程3-4亮度及音量调节

    购买链接 https fengke club GeekMart su fHnaDyD1o jsp 视频地址 https fengke club GeekMart su f5W0Cuz3p jsp 官方QQ群 457586268 音量调节 点
  • [人工智能-深度学习-40]:英伟达GPU CUDA 编程框架简介

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 121220362 目录 第1章 什么C
  • ROS之QtCreator开发环境搭建

    文章目录 系统环境 官方教程 安装 卸载 使用 导入工作空间 构建与运行 编写测试程序 系统环境 操作系统 Ubuntu20 04 ROS版本 Noetic 官方教程 按照官方教程或者下面笔记中的内容均能进行环境搭建 笔记中另外做了部分补充
  • IOS app 上线流程

    网上创建一份app资料等待对代码上传对接 登陆后 gt 右边 gt iTunes Connect gt 创建app资料
  • pom文件中的dependencyManagement和dependencies的区别

    dependencyManagement 只是声明依赖 并不实现引入 因此子项目中需要显示的声明需要用的依赖 如果不在子项目中声明依赖 是不会从父项目中继承下来的 只有在子项目中写了该依赖 并且没有指定版本 才会从父项目中继承该项 并且ve
  • Android---简易的底部导航栏

    目录 一 activity main xml布局 二 给ViewPager2 创建适配器 三 ViewPager2 数据源 四 MainActivity java类 1 初始化数据源 2 ViewPager2 页面改变监听 3 Bottom
  • 学会问问题

    推荐文档 学会问问题 目录 三句话原则 你就是孙子 问问题过程 第一步 学会问好 示例如下 第二步 有屁快放 问问题需要加上的前缀或者后缀 示例如下 第三步 介绍自己的框架 示例如下 第四步 介绍自己的解决思路 示例如下 第五步 根据大佬的
  • TCP 传输控制协议

    目录 可靠机制 5可靠 1 确认应答机制 2 超时重传机制 3 连接管理机制 建立连接 三次握手 断开连接 四次挥手 第2 3个数据报为啥没有合并 第2 3个数据报是否可以合并 了解 服务端出现大量的close wait 原因 为什么要四次
  • 机器学习 | 优秀Tensorflow开源项目汇总(上)

    1 Open model zoo 预先训练的深度学习模型和样本 高质量且快速 https github com opencv open model zoo 2 Deep Learning In Production https github
  • Tongweb部署JmReport,打成war包部署,启动正常,前台访问404

    jar改war改造 修改pom文件
  • CRM安装(二)

    7 安装CRM Server及Reporting Extensions 我这里首先启用虚拟机中服务器的远程桌面连接 在 这台电脑 的属性中 点击左面的 远程设置 在弹出的对话框中选择 允许远程连接到此计算机 然后应用 最后确定 这样我就可以
  • 使用statsvn统计svn中的代码量

    StatSVN介绍 StatSVN是一个Java写的开源代码统计程序 从statCVS移植而来 能够从Subversion版本库中取得信息 然后生成描述项目开发的各种表格和图表 比如 代码行数的时间线 针对每个开发者的代码行数 开发者的活跃
  • sqlite数据库的插入,删除,修改

    代码如下 include
  • WebService 之 WSDL文件 讲解 .

    一 WSDL概述 WebServices Description Language WSDL Web服务语言 是一个用于精确描述Web Service的文档格式 WSDL非常适合于用作代码生成器 它能够读取WSDL文档 并且可以为访问Web
  • python数据驱动ui自动化框架_自动化框架-数据驱动

    https www cnblogs com fnng p 6111516 html 最近在整理接口测试相关的资料 所以 看到有关资料就会多看两眼 偶看到别人发的微信公众号 Python接口测试框第一篇 python如何读取txt文件 Pyt
  • Ubuntu升级自带的Python3版本

    可以通过如下的步骤升级Ubuntu自带的Python3版本 比如自带3 6版本升级到3 8版本 1 添加安装源 在命令行输入如下命令 sudo add apt repository ppa jonathonf python 3 8 2 之后
  • 陀螺产业区块链第二季

    2020年4月 国家发改委在例行新闻发布会上宣布区块链被正式列为新型基础设施中的信息基础设施 自此区块链正式搭上新基建的 风口 与传统基础设施建设相比 新型基础设施建设更加侧重于突出产业转型升级的新方向 无论是 5G还是区块链 都体现出加快
  • 常见的二十种软件测试方法详解(史上最全)

    一 单元测试 模块测试 单元测试是对软件组成单元进行测试 其目的是检验软件组成单位的正确性 测试对象是 模块 对模块进行测试 单独的一个模块测试 属于静态测试的一类 测试阶段 编码后或者编码前 TDD 测试对象 最小模块 测试人员 白盒测试