软件测试 |模糊测试
模糊测试是一种软件测试技术,它使用无效、意外或随机数据作为输入,然后检查异常情况,例如崩溃和潜在的内存泄漏。它是一种自动化测试技术,用于描述涉及随机或分布式方法的系统测试过程。在模糊测试期间,系统或软件应用程序可能会出现许多与数据输入相关的不同错误或故障。威斯康星大学的Barton Miller于 1989 年首先开发了模糊测试。
模糊测试的目标:
模糊测试的目标是:
- 检查系统或软件应用程序的漏洞。
- 检测安全故障和缺陷。
- 确定有效成本的缺陷。
模糊测试的阶段:
- 识别目标系统:
标记要测试的系统或软件应用程序。该系统被称为目标系统。目标系统由测试团队确定。 - 识别输入:
一旦设置了目标系统,然后为测试目的创建随机输入。这些随机测试用例用作测试系统或软件应用程序的输入。 - 生成模糊数据:
在得到随机输入即意外和无效后,将这些无效和意外输入转换为模糊数据。模糊数据基本上是模糊逻辑形式的随机输入。 - 使用模糊数据执行测试:
现在使用模糊数据进行测试过程。基本上在本节中,程序或软件的代码是通过给出随机输入(即模糊数据)来执行的。 - 监控系统行为:
在系统或软件应用程序执行后,针对崩溃或任何其他异常(如潜在的内存泄漏)进行操作。在随机输入下测试系统行为。 - 日志缺陷:
在最后阶段识别缺陷并修复这些缺陷,以获得更好的质量系统或软件应用程序。
模糊测试检测到的缺陷类型:
1. Number Fuzzing
2. Character Fuzzing
3. Application Fuzzing
4. Protocol Fuzzing
5. File Format Fuzzing
模糊测试的优点:
- 它保证了软件的安全性。
- 它检测包括崩溃和潜在内存泄漏在内的缺陷。
- 它花费的时间更少。
模糊测试的缺点:
- 它无法提供系统的完整安全性。
- 它对于处理没有病毒、错误或程序崩溃原因的安全威胁是无效的。
- 它检测简单的故障和威胁。