日常工作中功能测试占据了大部分的内容,但是软件测试中非功能性测试也是很重要的一部分,今天就来简单介绍下非功能性测试。

非功能测试是一种用于评估软件应用程序的性能、可用性、可靠性和其他非功能特征的测试类型。它的目的是根据功能测试从不考虑的非功能标准测试系统的就绪情况。

非功能测试对于确认软件的可靠性和功能性是必不可少的。软件需求规范(SRS)作为该软件测试方法的基础,它使质量保证团队能够检查系统是否符合用户需求。提高产品的可用性、有效性、可维护性和可移植性是非功能测试的目标。它有助于降低与产品非功能组件相关的制造风险。

非功能测试的核心目标

非功能测试满足以下目标:

1.提高产品的可用性、有效性、可维护性和可移植性

2. 降低与产品非功能性特性相关的生产风险和费用。

3. 改进安装、配置、执行、管理和产品监控。

4. 分析为内部研究和开发而应该收集和生成的测量和度量。

5. 提高现有技术和产品行为的知识。

非功能测试的特点

  • 非功能测试应该是可量化的。因此,像“好”、“更好”、“最好”等形容词在这种类型的测试中没有位置。

  • 在需求过程的开始就知道确切的数字是值得怀疑的。

  • 确定需求的优先级是至关重要的。

  • 确保在软件工程中,质量属性被准确地识别。

非功能测试参数

下面列出的是非功能测试参数:

1.安全性:该参数指定如何保护系统免受来自内部和外部源的计划内和计划外入侵。这是通过安全测试来检查的。

2.可靠性:软件系统一致地无错误地完成所需任务的一致性。可靠性测试用于测试这一点。

3.效率:软件系统可以管理的容量、数量和响应时间。

4.可用性:用户可以简单地使用系统,学习如何使用它,并准备输入和输出。可用性测试验证了这一点。

5.可用性:该参数建立了用户在操作期间对系统的依赖程度。稳定性测试验证了这一点。

6.可扩展性:这个词描述了软件程序可以在多大程度上提高其处理能力以应对需求的增长。这是通过可扩展性测试来检查的。

非功能测试的优点

  • 它提供了更高程度的安全性。安全性是保证系统免受在线威胁的重要组成部分。

  • 它保证了系统的加载能力,以便用户可以并发地使用它。

  • 它提高了系统的效率。

  • 不需要多次编写测试用例,因为它们从未被修改过。

  • 与其他测试程序相比,它的总体时间投入更少。

非功能测试的类型

1.性能测试:性能测试消除了软件缓慢和受限性能的原因。软件的读取速度应该尽可能快。对于性能测试所需的速度,必须创建一个组织良好且精确的规范。否则,测试是成功还是失败就不明显了。示例:当1000个用户同时使用一个应用程序时,加载时间不应超过5秒。

使用的工具:LoadRunner, Apache JMeter, WebLOAD。

2.负载测试:在负载测试中测试系统的负载能力。由于系统的加载能力,可以处理不断增加的并发用户。如果你想进行一个快速的网站速度测试,检查你的速度分数。

使用工具:Neoload, Load Multiplier。

3.安全测试:安全测试用于发现软件应用程序的弱点。测试是通过研究系统的设计和攻击者的心态来进行的。找到代码中最有可能发生攻击的部分可以创建测试用例。

使用工具:ImmuniWeb, Vega, Wapiti

4.可移植性测试:测试软件在许多操作系统上运行而不出现任何错误的可移植性。软件的功能在相同的操作系统下,但与不同的硬件也测试在这个测试。

使用的工具:SQLMap。

5.问责制测试:问责制测试有助于识别系统是否正常运行。函数应该产生与设计时相同的结果。如果系统产生了预期的结果,则系统通过了测试;否则,就失败了。

使用工具:Mentimeter。

6.可靠性测试:这种测试假定软件系统在预定参数下无错误地运行。必须使用一定的时间和进程来运行系统。如果系统在某些预定的情况下失败,可靠性测试也会失败。例如,所有的网页和链接都应该是可靠的。

使用工具:Test-retest,inter – rating。

7.性能测试:该测试着眼于构建一个软件系统使用了多少资源以及需要多少资源。

使用工具:WebLOAD, LoadNinja。

8.批量测试:一种称为批量测试的软件测试涉及将软件暴露在大量数据中。它也被称为洪水测试。通过增加数据库中的数据,进行批量测试来评估系统的性能。

使用工具:HammerDB, JdbcSlim

9.恢复测试:恢复测试评估应用程序从崩溃、硬件故障和其他类似性质的问题中恢复的能力。恢复测试涉及到有意地以几种不同的方式破坏软件。

使用工具:Box Backup, Bacula。

10.响应式测试:响应式测试允许您在许多屏幕宽度上评估您的设计,以进行“真实”的“适应性”测试,而不是预定义的屏幕宽度。您可以在输入网站的URL后调整屏幕的宽度,以实时观察您的用户界面如何适应它。在各种数字设备上的流畅体验是评估响应式网站的主要目标。我们越来越依赖技术来完成事情,因为它给全球带来了便利。

使用工具:Responsinator, Screenfly,谷歌DevTools设备模式

11.视觉测试:这类问题的解决方案是视觉测试,有时也称为视觉UI测试。它检查每个用户是否正确地看到了软件用户界面(UI)。视觉测试验证网页上的每个元素都有适当的形状、大小和位置。可视化测试评估应用程序的可见输出,并将其与设计预期的结果进行比较。换句话说,它帮助识别“视觉错误”,这与严格的功能错误是分开的,以页面或屏幕出现的方式。

使用工具:Percy, PhantomCSS, FBSnapshotTestCase, Gemini, Needle(使用Python)。