模糊测试与缺陷管理:提升办公软件可靠性
在软件开发过程中,模糊测试(Fuzzing)是一种非常有效的测试技术,它能够帮助我们发现软件中的各种缺陷,从而提升软件的可靠性和稳定性。下面将详细介绍自定义模糊测试、随机模糊测试、模糊测试的局限性以及缺陷管理等内容。
自定义模糊测试
当通用模糊测试的效果开始减弱时,我们可以编写自定义模糊器,深入探索软件的格式和功能。自定义模糊测试通过将特定的应用程序和文件格式知识融入测试程序,突破了通用模糊测试的限制。
在编写自定义模糊器之前,我们可以先查找现有的模糊器,看是否能满足我们的需求,或者至少可以作为我们自己模糊器的基础。例如,Mozilla的Jesse Ruderman编写了一个JavaScript模糊器(jsfunfuzz),它在Firefox和Opera中发现了安全漏洞。
受jsfunfuzz成功的启发,有人编写了自定义模糊器来测试Gnumeric的公式和函数解析器,确保它能够处理尽可能多的有效和无效组合。具体操作步骤如下:
1. 准备内置函数名(如sum和pi)和运算符(如+和 -)列表。
2. 编写程序生成数千个包含随机值和函数参数的制表符分隔单元格。
这个模糊器发现了许多漏洞,包括崩溃、挂起和内存泄漏等问题,其中很多问题可以简化为简洁而美观的测试用例。
自定义模糊测试的另一个优点是,它可以防止许多容易意外触发的漏洞。例如,由于粘贴是常用命令,随机文本可能会意外插入到单元格或公式中。新用户在学习正确语法时可能会误用函数并传递无效参数,专家用户则可能尝试混合各种函数以创建强大的函数组合。以下是一些测试用例示例:
- 新用户可能遇到的问题:
超级会员免费看
订阅专栏 解锁全文
23

被折叠的 条评论
为什么被折叠?



