测试艺术:攻破软件的策略与方法

5星 · 超过95%的资源 需积分: 9 55 下载量 116 浏览量 更新于2024-09-13 1 收藏 1.51MB PDF 举报
"如何攻破软件 - James Whittaker" 本文主要探讨了如何有效地发现软件设计和开发中的缺陷,作者James A. Whittaker提出了一个系列的手动、探索性测试方法,称之为“攻击”。这些方法源于对实际软件缺陷的深入研究和抽象,经过佛罗里达理工学院软件测试课程的分析和提炼,形成了多种有效的攻击策略,能够快速发现软件的缺陷,即使对产品的了解有限。 测试人员的优秀并不完全依赖于天生的直觉,而是可以通过学习和实践来培养的。测试人员通常会积累一套个人的攻击策略库,面对不同的测试场景时,他们会灵活运用这些策略来找出问题。尽管这些策略往往没有被正式记录,但在手工测试中起着关键作用。 Whittaker将攻击策略分为三大类:输入/输出攻击、数据攻击和运算攻击。每种类别都有其特定的子类型,能引发各种软件故障。文章通过具体的缺陷实例,详细阐述了每个类别中的攻击方式,并且这些方法在微软以及其他公司的产品上都得到了验证,证明了其普遍有效性。 输入/输出攻击,即黑盒测试,侧重于检查软件对外部输入的处理和对外部输出的响应。测试人员不考虑内部实现,仅关注软件的外部行为,寻找可能的输入错误和输出异常,以暴露软件在边界条件、异常输入和数据格式处理上的问题。 数据攻击则专注于软件处理数据的方式,包括数据的存储、传输和计算。测试人员会尝试修改、注入或破坏数据,以观察软件在异常数据情况下的行为,以此发现数据一致性、安全性和完整性方面的漏洞。 运算攻击主要针对软件的逻辑和控制流程,测试人员会尝试通过操纵条件判断、循环结构和算法来找出可能导致软件行为不正确的计算错误。这包括对异常条件的处理、逻辑错误和性能问题的探测。 这些攻击策略为软件测试提供了有力的工具,无论是在Web开发还是其他领域,都能帮助找出并修复软件中的缺陷,提高软件质量。而将这些手工测试策略转化为自动化测试是下一步的挑战,以实现更高效和广泛的缺陷检测。