数字时代,万物变革,软件定义世界。软件几乎在我们生活的方方面面都发挥着至关重要的作用。从智能手机中使用的应用程序到运行计算机的操作系统,都是我们日常生活中不可或缺的一部分。然而,随着软件系统越来越复杂,如何保证其安全性和稳定性成为一大挑战。为应对这一问题,模糊测试(Fuzzing)得到了诸多关注,越来越多的企事业单位开始采用模糊测试技术对软件系统进行测试,确保其稳定运行。
模糊测试是一种自动化的测试技术,在测试过程中模糊测试引擎可自动生成亿万级的测试数据并发送给被测系统,通过实施监控被测程序的测试执行情况,可高效、精准地发现被测系统中的各类缺陷。与传统测试方法(例如手动测试或单元测试)相比,模糊测试的粒度更细,程序执行覆盖度更高,在提高软件质量和可靠性方面发挥着关键作用。其之所以有如此惊艳的表现,其实可以从组合学和非预期输入两个角度来解释。