【问题标题】:White-Box/ Black-Box Testing: static or dynamic?白盒/黑盒测试:静态还是动态?
【发布时间】:2011-04-28 00:37:41
【问题描述】:
这是我的理解:
动态测试是在系统运行时执行的测试。
在系统未运行时进行静态测试。
黑盒测试侧重于功能,在不了解程序内部运作的情况下执行。
白盒测试寻找代码本身的问题。
我想知道的是,
可以说所有黑盒测试都是静态的吗?
是否可以公平地说一些白盒测试是静态的(例如,检查源代码)和一些是动态的(分支/路径测试)?
【问题讨论】:
标签:
unit-testing
white-box-testing
black-box-testing
【解决方案1】:
可以说所有黑盒测试都是静态的吗?
没有。黑盒测试通常是动态的。事实上,当我们想到软件测试时,我们通常会想到人们运行代码并记录他们发现的问题。这是经典的动态黑盒测试。
但是,有黑盒静态测试。当您检查规范或要求以查找错误时,这是静态的黑盒测试。这里有一些技巧
阅读要求以确保每一项都是:
正确
可行
必要
优先
明确
可修改
完成
可验证
如果违反其中任何一项,您就会发现需求错误并节省大量时间和金钱。
【解决方案2】:
我想不出黑盒测试是静态的任何情况。
黑盒/白盒是指测试人员对被测系统 (SUT) 内部工作原理的了解。
静态/动态是指被测系统的状态(运行/动态,或停止/静态)。
黑盒测试在不了解其内部实现的情况下探测正在运行的系统的外部。很多功能测试都属于这一类。我不确定黑盒如何在不加载系统并查看它如何响应各种刺激的情况下做到这一点。
白盒测试可以动态完成(例如,了解系统内部工作原理的安全测试人员执行渗透测试)或静态完成,例如运行 AppScan、FxCop、JavaCop 等工具以查找违反准则的情况以及源代码中的潜在安全漏洞。
【解决方案3】:
可以说所有黑盒测试都是静态的吗?
黑盒测试可以是静态的也可以是动态的。
静态黑盒测试 - 需求文档、规范文档或设计文档的审查。
动态黑盒测试——通过提供各种输入、执行各种操作对被测应用程序进行测试。
【解决方案5】:
一些黑盒测试是动态的,因为您可以在系统运行时测试系统,而无需了解其内部情况(例如,在使用最终用户界面或公共 API 时)。
【解决方案6】:
这是一个层次结构
顶部有白盒和黑盒测试
白盒测试分为CFA和DFA
DFA 代表数据流分析,分为静态 DFA 和动态 DFA