提升代码可测试性的方法与工具
1. 模糊测试的优缺点
模糊测试是一种强大且有效的发现程序安全漏洞和盲点的方法,但它也存在一些缺点:
- 运行时长难确定 :基于变异的模糊测试可能会无限运行,因此很难选择一个既能有意义地发现漏洞,又不会消耗过多时间的测试时长。
- 针对独立程序选项有限 :大多数 JavaScript 模糊测试主要针对浏览器和 JavaScript 引擎等宿主环境,针对独立 JavaScript 程序的模糊测试选项有限。
- 测试结果有重叠 :模糊测试可能会发现数百个与同一故障点相关的漏洞,这意味着会得到数百个有不必要重叠的测试。因此,在将生成的测试添加到永久测试套件之前,必须单独考虑每个缺陷,并结合整个漏洞集合的情况。
- 难以区分错误来源 :模糊测试不仅能发现程序中的漏洞,还能发现底层语言中的漏洞。因此,很难区分是程序中的错误还是 JavaScript 解释器中的故障。
虽然对 JavaScript 应用程序进行模糊测试确实能让程序员惊叹于其找出漏洞的能力,但很难直接将其聚焦于你的应用程序。不过,有一些类似模糊测试的工具可以以意想不到的方式处理应用程序,并且可以专门针对程序进行测试,比如 JSCheck。
2. JSCheck 测试工具
2.1 JSCheck 简介
JSCheck 是由 Douglas Crockford 编写的测试工具,受 QuickCheck 启发。基于生成的模糊测试使用约束和规则空间来限制其生成的随机数据
超级会员免费看
订阅专栏 解锁全文

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



