首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >TDD和白盒测试可以直接结合吗?

TDD和白盒测试可以直接结合吗?
EN

Software Engineering用户
提问于 2020-12-11 08:40:39
回答 2查看 440关注 0票数 -2

我刚开始使用Java进行软件测试,我想知道测试驱动的dev和白盒测试是否可以直接结合在一起.如果没有,我们可以用什么方法扩展TDD来结合白盒测试?

EN

回答 2

Software Engineering用户

回答已采纳

发布于 2020-12-11 11:31:11

TDD和白盒测试在根本上是不相容的。

白盒测试意味着您根据代码内部的知识编写测试。

TDD意味着您在代码之前编写测试。

根本不可能基于不存在的代码知识来编写测试。

请注意,您当然可以在实现代码之后编写额外的白盒测试。但这与TDD无关。

当然,它也可以做某种“假的”TDD,在你的头脑中写代码,然后写一个白盒测试,根据你的心理形象的代码将是什么。但同样,这不是TDD。在TDD中,测试驱动代码。如果您在编写测试之前在头脑中想象代码,那么您就不是在执行TDD。没有在IDE中编写代码并不重要,您仍然在头脑中编写了代码。

票数 2
EN

Software Engineering用户

发布于 2020-12-11 09:10:23

一些定义(我强调):

测试驱动开发(TDD)是一个软件开发过程,它依赖于软件需求转换为测试用例,然后再进行软件开发,…。这是反对软件首先开发和测试用例创建后。

基本上,TDD意味着在更改任何底层代码之前编写测试。关键的是,TDD过程包括更改底层代码,而不仅仅是编写测试。

白盒测试 …是一种软件测试方法,它测试应用程序的内部结构或工作方式,而不是它的功能(即黑匣子测试)。

换句话说,白盒测试以代码的完全可见性验证应用程序的内部,而黑匣子测试则验证外部可见的功能,(理想情况下)不了解底层代码。与TDD相反,白盒测试只涉及测试编写阶段,而不涉及更改底层代码。

因此,TDD需要白盒测试:如果不了解现有的底层代码,就不可能编写满足测试的底层代码。唯一的例外是新代码只是封装底层系统,因此只需要了解现有的输入和输出。

票数 0
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/419900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档