Buben与KLUZZER:软件测试与验证的利器
在软件开发过程中,软件测试与验证是确保软件质量和安全性的重要环节。本文将介绍两种工具——Buben和KLUZZER,它们分别在库抽象和白盒模糊测试方面有着独特的优势。
Buben:自动化库抽象工具
在一些程序(如batik、lusearch和jspider)中,异常是由于应用代码中缺少对空引用的检查导致的,而pmd报告的未捕获文件未找到异常则与软件包中实际存在的文件有关。通过对源代码的手动检查,发现这些在抽象中检测到的特定错误也存在于原始程序中。
实验评估结果表明,Buben是非常有用的。它可以生成实际大型程序的抽象,这些抽象适合使用JPF等工具进行验证和漏洞搜索。通过在用户配置中将更多的类和方法标记为库,可以进一步提高验证的可扩展性。
Buben的使用步骤
以jspider程序为例,使用Buben的步骤如下:
1. 定义配置 :用户需要定义Buben的配置,指定程序的主类(入口点)、命令行参数、代表库的Java包以及包含操作外部实体(文件、网络)方法的Java包。
2. 生成抽象 :执行Buben以生成调用图中每个库方法的抽象。例如,图5展示了 org.apache.log4j.Category 类中 warn 方法的原始代码和转换后的代码。原始代码中第5行 forcedLog 调用中嵌套的对 LogRecord.seqCount 字段的同步访问,在抽象版本中被包含在一个原
超级会员免费看
订阅专栏 解锁全文
565

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



