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

发表于:2022-2-21 09:45

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:佚名    来源:网络

  功能测试根据需求进行功能上的测试,而非功能测试则针对更广泛的质量问题进行测试。在本文中,Dayana Stockdale将帮助读者弄清这两种测试的差异,并给出一些举例和策略。
  功能测试与非功能测试的主要区别
  在理解功能测试和非功能测试的区别之前,先需要知道功能性和非功能性需求之间的区别:
  ·功能要求:描述软件系统的行为或执行。
  · 非功能性要求:描述软件系统的性能或可用性。
  功能需求将指定某一功能必须执行某个操作,而非功能需求则是可能会指定某一功能执行该操作。功能要求是WHAT;而非功能性要求是HOW。
  因此,功能需求测试就是验证软件是否正在执行操作,而非功能测试则有助于验证客户的期望是否得到满足。
  功能测试与非功能测试实例
  为了使读者能更加清晰的了解两者之间的差异,Dayana将详细介绍一些并行的实例:
  功能测试策略
  功能测试策略多种多样,手动和自动测试混合使用是确保功能测试覆盖率的最佳方法。
  最常见的功能测试策略是黑盒测试方法,测试者不需要审查内部源代码,而是通过测试各种输入组合来验证功能。
  以下是一些常用的功能测试技术
  1. 安装测试 — 用于测试桌面或移动应用程序是否正确安装。
  2. 边界值分析 — 数值输入边界测试。
  3. 等价划分 — 分组测试,以减少类似功能测试的重叠。
  4. 错误猜测 — 评估功能问题最有可能被发现,并比其他领域更广泛地进行测试。
  5. 单元测试 — 在软件的最小级别上执行测试。不是将系统作为一个整体运行,而是在单元上测试。
  6. API测试 — 检查内部和外部API是否正常运行,包括数据传输和授权。
  7. 回归测试 — 用于验证新软件更改没有对现有功能(最常见的自动化技术)产生不利影响的测试。
  所有的功能测试都有一个特定的输出。所有的功能测试都可以用非常明确的通过或者失败标准来编写。
  非功能性测试策略
  非功能性测试有时可能会比功能性测试要麻烦很多,因为您正在测试客户对整体质量体验的期望,而不是指定输入数据输出确定的结果。
  以下是主要的非功能性测试技术
  1. 负载测试 — 在模拟环境中执行的测试,以测试系统在预期条件(不同数量的用户)期间的行为。
  2. 压力测试 — 在资源不足时测试性能,例如服务器问题或设备上硬盘空间不足。
  3. 扩展性测试 — 检查系统的规模,以便随着使用率的增加和性能受到何种程度的影响而进行扩展。
  4. 容量测试 — 用大量的数据测试性能,不一定是数量庞大的用户,但可以是一个用户执行高容量的任务,例如多文件上传。
  5. 安全性测试 — 进行测试以发现系统受到攻击的脆弱程度,以及数据的保护程度。
  6. 灾难恢复测试 — 检查系统在崩溃或重大问题后能在多久时间内的恢复速度。
  7. 一致性测试 — 根据某一套标准(无论是行业法规还是公司的标准)来测试软件系统。
  8. 可用性测试 — 测试GUI是否一致,以及整个应用程序是否直观且易于使用。
  虽然一些非功能性测试技术可以具有通过/失败的标准(如批量测试),但相比之下,其他测试技术能够基于测试人员的意见(如可用性测试)因此更加客观。
  倾听客户反馈对于更新非功能性需求至关重要。虽然在收集意见过程中,可能会识别到某些扩展性和安全因素,但客户反馈可以扩展这些检查集合,包括更好地测试应用程序在崩溃后应该如何恢复,或应用程序如何在设备上占用最小的存储空间。
  客户反馈有助于进行功能测试的风险评估。但对于非功能性测试来说,用户反馈更有价值,因为反馈有助于设定栅,而功能测试已经设定好了栅。

  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号