我刚开始使用Java进行软件测试,我想知道测试驱动的dev和白盒测试是否可以直接结合在一起.如果没有,我们可以用什么方法扩展TDD来结合白盒测试?
发布于 2020-12-11 11:31:11
TDD和白盒测试在根本上是不相容的。
白盒测试意味着您根据代码内部的知识编写测试。
TDD意味着您在代码之前编写测试。
根本不可能基于不存在的代码知识来编写测试。
请注意,您当然可以在实现代码之后编写额外的白盒测试。但这与TDD无关。
当然,它也可以做某种“假的”TDD,在你的头脑中写代码,然后写一个白盒测试,根据你的心理形象的代码将是什么。但同样,这不是TDD。在TDD中,测试驱动代码。如果您在编写测试之前在头脑中想象代码,那么您就不是在执行TDD。没有在IDE中编写代码并不重要,您仍然在头脑中编写了代码。
发布于 2020-12-11 09:10:23
一些定义(我强调):
测试驱动开发(TDD)是一个软件开发过程,它依赖于软件需求转换为测试用例,然后再进行软件开发,…。这是反对软件首先开发和测试用例创建后。
基本上,TDD意味着在更改任何底层代码之前编写测试。关键的是,TDD过程包括更改底层代码,而不仅仅是编写测试。
白盒测试 …是一种软件测试方法,它测试应用程序的内部结构或工作方式,而不是它的功能(即黑匣子测试)。
换句话说,白盒测试以代码的完全可见性验证应用程序的内部,而黑匣子测试则验证外部可见的功能,(理想情况下)不了解底层代码。与TDD相反,白盒测试只涉及测试编写阶段,而不涉及更改底层代码。
因此,TDD需要白盒测试:如果不了解现有的底层代码,就不可能编写满足测试的底层代码。唯一的例外是新代码只是封装底层系统,因此只需要了解现有的输入和输出。
https://softwareengineering.stackexchange.com/questions/419900
复制相似问题