功能测试和非功能测试有什么区别?

2023-11-08

转载:https://dzone.com/articles/whats-the-difference-between-functional-and-nonfun?fromrel=true
功能测试验证功能是否按照要求工作,而非功能测试则对更广泛的质量问题进行检查。在这篇文章中,我将清楚地说明这种差异,并给出示例和策略。

功能测试和非功能测试之间的主要区别

在我们了解功能性和非功能性测试之间的区别之前,我们需要了解功能性和非功能性需求之间的区别:

  • 功能需求:描述软件系统的行为/执行。
  • 非功能性需求:描述软件系统的性能或可用性。

虽然功能需求会指定一个特性必须执行某个动作,但非功能需求可能会指定该特性执行该动作的对象。

功能需求是什么;非功能性需求是 HOW。

因此,功能需求的测试是验证软件是否按预期执行操作,而非功能测试则有助于验证是否满足了客户的期望。

功能测试策略

有多种功能测试策略,确保功能测试覆盖率的最佳方法是手动和自动测试的混合。

最常见的功能测试策略是黑盒测试方法——其中测试人员不需要审查内部源代码,而是通过测试各种输入组合来验证功能。

以下是一些常见的功能测试技术:

  • 安装测试- 对于桌面或移动应用程序,测试正确安装。
  • 边界值分析- 测试数字输入的边界。
  • 等价划分- 将测试分组在一起以减少类似功能测试的重叠。
  • 错误猜测- 评估最有可能发现功能问题的位置,并比其他领域更广泛地测试这些问题。
  • 单元测试——在软件的最小级别进行测试——不是系统作为一个整体如何运作,而是每个单元是否正确执行。
  • API 测试- 检查内部和外部 API 是否正常运行,包括数据传输和授权。
  • 回归测试- 执行测试以验证新的软件更改不会对现有功能产生不利影响(最常见的自动化技术)。
    所有功能测试都有一个特定的输出,它是任何输入所期望的。如果您输入有效数据,那么您希望数据被接受。所有功能测试都可以使用非常明确的通过/失败标准编写脚本。

非功能测试策略

非功能性测试有时可能需要更多的创造力和技术专长,因为您正在测试客户对整体质量体验的期望 - 而不是 X 输入导致 Y 输出。

这些是主要的非功能测试技术:

  • 负载测试- 在模拟环境中执行的测试,以测试系统在预期条件下(不同数量的用户)的行为。
  • 压力测试- 在资源不足时测试性能,例如服务器问题或设备上的硬盘空间不足。
  • 可扩展性测试- 检查系统随着使用量的增加而扩展的能力以及性能受到的影响程度。
  • 批量测试- 使用大量数据测试性能,不一定是大量用户,但可以是一个用户执行大量任务,例如多文件上传。
  • 安全测试- 执行测试以发现系统容易受到攻击的程度以及数据的保护程度。
  • 灾难恢复测试- 检查系统在崩溃或重大问题后恢复的速度。
  • 合规性测试- 根据任何标准集(无论是由于行业法规还是公司的标准集)对软件系统进行测试。
  • 可用性测试- 测试 GUI 是否一致,以及整个应用程序是否直观且易于使用。
    虽然一些非功能性测试技术可以有通过/失败标准(例如批量测试),但其他的可以更客观并基于测试人员的意见(例如可用性测试)。然而,非功能性测试应该尽可能地编写成可测量和可量化的。

倾听客户反馈对于更新非功能性需求至关重要。虽然企业可能会在需求收集期间确定某些可扩展性和安全因素,但客户反馈可以扩展检查集,以包括更好地测试应用程序在崩溃后如何恢复或应用程序如何在设备上剩余最小存储空间的情况下执行。

客户反馈可以帮助功能测试的风险评估,但对非功能测试更有价值,因为反馈可以帮助设定标准——而功能测试已经设定了标准。

最终,了解这两种类型的测试之间的区别可以帮助制定测试计划,以便您清楚所涵盖的内容以及原因。

“功能测试和非功能测试有什么区别? ”首次出现在 Testlio 上

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

功能测试和非功能测试有什么区别? 的相关文章

  • STM32F1各个工作状态下的工作电流

    低功耗操作实验 文章非原创 从其他网站上摘录 如果侵犯到到 麻烦联系删除 实验目的 测量 STM32 在各种状态下的功耗 包括在不同时钟频率下 32M 8M 1M 100K 10K 不同振荡器 内部 外部 不同模式 活动 睡眠 停机 待机
  • 用户注册及登录测试用例小记

    用户注册及登录测试用例
  • 对java中的List进行深拷贝,并进行删除测试

    List
  • 对话框中添加视图方法- CScrollView

    对话框中使用视图方法 今天工作过程中 又遇到了显示图片问题 为此把以前的代码整理一下 通过使用自定义的类继承CScrollView类 是图片或文字等 等能够通过滑块进行自动操作显示 记录查询 步骤 1 建立基本对话框程序 添加一个stati
  • MCS-51 汇编指令集(J开头的指令)

    MCS 51系列单片机指令以J开头的指令有8条 分别为 JB bit rel JBC bit rel JC rel JMP A DPTR JNB bit rel JNC rel JNZ rel JZ rel 1 JB bit rel 指令名
  • 微软和Facebook推出Docs.com

    来源 德胜网 4月22日 据国外媒体报道 Facebook和微软在联手一项在线文件共享服务 看起来多一点像Google Docs 周三在Facebook的F8会议Docs com上线 该网站允许Facebook用户使用Facebook连接登
  • 优秀软件测试工程师必备的8个能力!-(附思维导图)

    结合自己以往的工作经验 自己梳理出来一些材料 绝对原创 绝对干货 优秀的软件测试工程师必备的 8个能力 作为一名软件工程师 需要的能力并不多 但是要成为一名优秀的软件测试工程师 需要的能力就比较多了 自己整理出来8个方面 每个方面都会分成很
  • 接口测试总结

    第一部分 主要从问题出发 引入接口测试的相关内容并与前端测试进行简单对比 总结两者之前的区别与联系 但该部分只交代了怎么做和如何做 并没有解释为什么要做 第二部分 主要介绍为什么要做接口测试 并简单总结接口持续集成和接口质量评估相关内容 第
  • 学习笔记Controller

    转自 http elim iteye com blog 1753271 谢谢博主分享 SpringMVC Controller 介绍 一 简介 在SpringMVC 中 控制器Controller 负责处理由DispatcherServle
  • 黑盒测试用例设计--题目2

    1 根据下面给出的规格说明 进行测试用例的设计 一个程序读入3个整数 把这三个数值看作一个三角形的3条边的长度值 这个程序要打印出信息 说明这个三角形是普通的 是等腰的 还是等边的 测试用例 2 保险费率计算 某保险公司承担人寿保险 该公司
  • ASP.NET Core快速入门(第6章:ASP.NET Core MVC)--学习笔记

    课程链接 http video jessetalk cn course explore 良心课程 大家一起来学习哈 任务40 介绍 任务41 Individual authentication 模板 dotnet new mvc help
  • 自学软件测试需要多久?怎么自学软件测试?自学软件测试可以找到工作吗? 绝对干货!

    一 前言 最近经常有很多朋友问我想要入行软件测试 但是都不知道该怎么学 这里详细的给大家说下 对于0基础的朋友 应该怎么去学习软件测试 学习软件测试有2条路可以选 1 找个靠谱的培训机构去培训啦 你就什么都不用想了 跟着培训结构认真的学习就
  • oracle批量绑定 forall bulk collect用法以及测试案例

    一 如何使用批挷定提高性能 How Do Bulk Binds Improve Performance 在PL SQL 和SQL引擎 engines 中 太多的上下文切换 context switches 会影响性能 这个会发生在当一个循环
  • 深聊测开领域之:三种高性价比测试方法

    高性价比测试 1 引言 2 单元测试 2 1 单元测试引入 2 2 投入产出比 3 冒烟测试 3 1 冒烟测试引入 3 2 投入产出比 4 灰度测试 4 1 软件的依赖 4 2 引入灰度环境 4 3 投入产出比 5 总结 1 引言 最近也是
  • 使用Minitab解决Excel的限制问题

    前两天 当我在做数据转置以期获得更好分析图形的时候 我碰到了传说中excel的限制 如图 在解决这个问题的过程中 我发现了用来做数据分析 比excel更好的工具Minitab 打开minitab 把纪录数据的Excel表以File gt O
  • Zabbix安装部署(国内源镜像)----一次性解决centos7安装zabbix报错:[Errno 256] 的问题

    Zabbix安装部署 环境准备 OS CentOS 7 安装步骤 一 关闭selinux和iptables root localhost systemctl stop firewalld service root localhost set
  • 如何做自动化测试

    这个话题比较大 相信大家也都有自己的想法 我在这里写一些我自己的看法 请大家指教 什么叫做自动化测试工程师 首先 会使用自动化测试工具的测试人员不能够称之为完全的自动化测试人员 这类测试人员被称为 工具小子 Script Kid 这个阶段还
  • 使用SpringSecurity

    前几天写了一个SpringBoot对拦截器的使用 在实际项目中 对一些情况需要做一些安全验证 比如在没有登录的情况下访问特定的页面应该解释的拦截处理 这一篇介绍使用SpringSecurity来做简单的安全控制 由于SpringSecuri
  • 0基础,自学3个月转行软件测试,从月薪3k到12k我整理的超全学习指南

    大家好我是小娜 现在是一名软件测试测试工程师 工资在1w2阶段还需努力 我大学期间学的是电气工程及其自动化专业 可以说是一事无成哈哈 大学三天打鱼 两天筛网导致专业水平学的不怎么样 毕业后从事了一份销售 买房子 的工作 但是 销售工作压力大
  • 网管员牢记 10种较为常见的服务器管理错误

    网管员牢记 10种较为常见的服务器管理错误 网络管理阶层的工作就是保证网络的正常工作 从而使得职工们的工作不被打断 可问题在于事物并非总是按照理想状况发展 事实上经常会出现平地起风波的状况 其间有许多原因 这里我们只讨论10种较为常见的网管

随机推荐

  • 双管齐下,阿里内部都用的 Spring+MyBatis 源码手册,实战理论两不误

    目前大部分的 Java 互联网项目 都是用 Spring MVC Spring MyBatis 搭建平台的 使用 Spring IoC 可以有效的管理各类的 Java 资源 达到即插即拔的功能 通过 Spring AOP 框架 数据库事务可
  • AD——PCB布线实用技巧

    目录 一 元件布局基本规则 二 元件布线规则 三 在研制带处理器的电子产品时 如何提高抗干扰能力和电磁兼容性 一 元件布局基本规则 1 按电路模块进行布局 实现同一功能的相关电路称为一个模块 电路模块中的元件应采用就近 集中原则 同时数字电
  • 《JAVA核心知识》学习笔记(3. JAVA 集合)-2

    3 JAVA 集合 3 1 接口继承关系和实现 集合类存放于 Java util 包中 主要有 3 种 set 集 list 列表包含 Queue 和 map 映射 1 Collection Collection 是集合 List Set
  • Java web前端——JavaScript基础使用

    JavaScript概述 1 1 JavaScript简介 JavaScript LiveScript 一种解释性脚本语言 是一种动态类型 弱类型 基于原型继承的语言 内置支持类型 它的解释器被称为JavaScript引擎 为浏览器的一部分
  • 普通人如何抓住AI这个风口?

    无论是现在大火的AI 去年大火的元宇宙 虚拟炒房 还有之前的虚拟货币 疯狂的股市等等 普通人真正从中获得收益的 都是少数 风口其实本来就是少数人造富的神话 上一个10年的移动互联网风口 真正抓住的企业 也就那么几家 过去5年轰轰烈烈的新能源
  • Unity接入Huawei AR Engine

    说在前面 使用Unity进行AR开发的开发者基本都会遇到华为手机的坎 由于谷歌的制裁 ARCore并不能覆盖华为的新机型导致新的机型已经不能使用ARFoundation方案 使用第三方通用的ARsdk也并不能完美兼容常用的华为机型 毕竟官方
  • Linux软链接和硬链接

    1 Linux链接概念 Linux链接分两种 一种被称为硬链接 Hard Link 另一种被称为符号链接 Symbolic Link 默认情况下 ln命令产生硬链接 硬连接 硬连接指通过索引节点来进行连接 在Linux的文件系统中 保存在磁
  • Sublime Text 4(Build 4126)下载注册 及 修改运行配置为终端运行(C/C++、Java、Python)

    目录 一 Sublime Text 4 Build 4126 下载 二 Sublime Text 4 Build 4126 注册 三 修改配置 cmd运行程序 以 C 为例 1 MinGW编译器下载及安装 2 修改配置 四 参考以上步骤 对
  • 计算机分盘的时候c盘留多少,win10分区c盘留多大合适

    重装系统的时候一定会经历的一个过程就是磁盘分区 c盘也就是我们常说的系统盘 那么win10分区的时候c盘该留多少内存合适呢 下面就让小编来告诉你 win10分区c盘留多大合适 如果用户不打算将软件装在C盘 推荐C盘分区60到80GB 分区分
  • webpack基础教学,简单易懂(一)(什么是webpack以及webpack的基本使用)

    前端工程化webapck 什么是前端工程化 前端工程化指的是 在企业级的前端项目开发中 把前端开发所需的工具 技术 流程 经验等进行规范化 标准化 前端工程化的解决方案 早期的前端工程化解决方案 grunt https www gruntj
  • 【知识图谱】神经网络综述

    概述 近年来随着计算机硬件的发展 神经网络作为机器学习中不可获取的一部分在预测 分类 图像分割 识别等方向得到了极其广的应用 然而其网络模型多 数学基础涉及广 使得其门槛较高 好在目前有诸如tensorflow pytorch sklear
  • 【从零开始学习JAVA

    目录 前言 BigInterger BigInteger常见的方法 总结 前言 本篇我们将介绍BigInteger这个比较实用一点的API 这个API在我们实际写项目中都是很实用的API 因此大家应该对这个API有更加熟练的掌握 BigIn
  • Qt 播放视频文件报错:DirectShowPlayerService::doRender: Unresolved error code0x80040266 ()

    原因 缺少LAVFilters组件 解决方法 注意视频文件名不要有中文 下载该组件 http files 1f0 de lavf LAVFilters 0 65 exe 以管理员身份运行安装该组件 重新运行Qt打开视频的程序 发现正常了 不
  • Redis持久化、发布订阅、集群详解

    理论 前面我们说过 Redis相对于Memcache等其他的缓存产品 有一个比较明显的优势就是Redis不仅仅支持简单的key value类型的数据 同时还提供list set zset hash等数据结构的存储 这几种丰富的数据类型我们接
  • CSDN星城大巡礼,长沙“科技之星”年度企业评选正式开启

    2020年 长沙市委主要领导发出 软件产业再出发 的号召 颁布了软件三年行动计划 今年5月 CSDN 作为专业的 IT 社区 与长沙高新区签约 将全国总部落户长沙 这一战略决策 让CSDN与长沙的联结进一步加深 CSDN创始人蒋涛表示 要把
  • angular 基础入门总结

    工程文件创建和依赖下载 依赖npm工具 npm用来对node js的模块进行管理 主要2个用途 下载别人编写的第三方包到本地使用 上传自己的包供别人使用 package json 执行npm init 可以根据提示生成包描述文件 就是自己包
  • 054-机械臂编程

  • JavaScript 数组(数组的增删和数组排序)

    一 数组方法 1 数组操作 push 向数组末尾添加元素 返回新数组长度 添加单个元素 let arr JS Java C let newArrLength arr push PHP console log arr JS Java C PH
  • 基于量子粒子群算法(QPSO)优化LSTM的风电、负荷等时间序列预测算法(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 1 概述 本文基于QPSO LSTM算法进行负荷 光
  • 功能测试和非功能测试有什么区别?

    转载 https dzone com articles whats the difference between functional and nonfun fromrel true 功能测试验证功能是否按照要求工作 而非功能测试则对更广泛