白盒/黑盒测试:静态还是动态?

时间:2011-04-28 00:37:41

标签: unit-testing white-box-testing black-box-testing

以下是我的理解:

动态测试是在系统运行时执行的测试。 系统未运行时执行静态测试。

Black-Box测试侧重于功能,并且在不知道程序的内部工作的情况下执行。 白盒测试在代码本身中寻找问题。

我想知道的是, 可以公平地说,所有Black-Box测试都是静态的吗? 是否公平地说一些White-Box测试是静态的(例如,检查源代码)而一些是动态的(分支/路径测试)?

6 个答案:

答案 0 :(得分:2)

  

公平地说,所有黑盒测试都是静态的吗?

没有。黑盒测试通常是动态的。事实上,当我们考虑软件测试时,我们通常会想到人们运行代码并记录他们发现的问题。这是经典的动态黑盒测试。

然而,有黑盒静态测试。当您检查查找错误的规范或要求时,这是静态的黑盒测试。这是一些技巧

  • 阅读规范,好像您是客户一样 - 任何事情都没有意义?

  • 将规范与行业或公司指南进行比较 - 任何违规行为?

阅读要求以确保每个要求:

  • 正确

  • 可行

  • 必要

  • 优先

  • 无歧义的

  • 可修改

  • 完整

  • 可验证

如果违反了任何规定,您就会发现需求错误并节省了大量的时间和金钱。

答案 1 :(得分:1)

我无法想到任何黑盒测试都是静态的情况。

黑盒/白盒是指测试人员对被测系统(SUT)内部工作原理的了解。

静态/动态是指被测系统的状态(运行/动态或停止/静态)。

黑盒测试在不知道其内部实现的情况下探测正在运行的系统的外部。很多功能测试都属于这一类。如果没有加载系统并看到它如何响应各种刺激,我不确定黑盒会怎么做。

白盒测试可以动态完成(例如,具有执行渗透测试的系统内部工作知识的安全测试人员)或静态测试,例如运行AppScan,FxCop,JavaCop等工具,寻找违反准则的行为和源代码中的潜在安全漏洞。

答案 2 :(得分:0)

某些黑盒测试是动态的,因为您可以在系统运行时测试系统而不了解其内部结构(例如,在使用最终用户界面或公共API时)。

答案 3 :(得分:0)

公平地说,所有黑盒测试都是静态的吗?

黑盒测试可以是静态的也可以是动态的。 静态黑盒测试 - 需求文档,规范文档或设计文档的评论。

动态黑盒测试 - 通过提供各种输入,执行各种操作,对测试中的应用程序进行测试。

答案 4 :(得分:0)

它是一个层次结构

顶部的白盒和黑盒测试 白盒测试分为CFA和DFA DFA代表数据流分析,分析为静态DFA和动态DFA

答案 5 :(得分:0)

静态测试代码未执行。而是手动检查代码,需求文档和设计文档以查找错误。因此,名称“静态”。 在动态测试下执行代码。它检查软件系统的功能行为,内存/ CPU使用情况以及系统的整体性能。因此名称为“动态”。

黑盒测试是一种测试技术,它忽略了系统的内部机制,并专注于针对系统的任何输入和执行生成的输出。 白盒测试是一种考虑系统内部机制的测试技术。

黑盒测试和白盒测试是用于软件测试的测试方法。动态测试可以是黑盒测试或白盒测试。

例: 单元测试是一种动态测试(功能测试类型),它属于白盒测试类。

系统测试是一种动态测试(功能测试类型),它属于黑盒测试类。

集成测试是一种动态测试(功能测试类型),它可能同时属于白盒测试和黑盒测试。

请参阅:https://www.codeproject.com/Tips/351122/What-is-software-testing-What-are-the-different-ty