当前位置: 首页 > 后端技术 > Node.js

关于TDD和BDD

时间:2023-04-03 23:40:42 Node.js

这里是我个人对TDD和BDD区别的理解。如果您不喜欢它,请不要喷它。要了解这两种技术的区别,首先要了解这两种技术本身。这里简单介绍一下:TDD(TestDrivenDevelopment)TDD是敏捷开发中的核心实践和技术,也是一种设计方法论。原则是先写单元测试用例代码,再开发功能代码。测试代码是根据需要的产品编写的代码。TDD的基本思想是通过测试来推动整个开发。//!(测试驱动开发不是简单的测试,它是一个需要量化需求分析、设计和质量控制的过程)codes,根据你的要求(对象、函数、过程、接口等)设计了一套测试用例代码,测试框架可以继续验证。就像在画画之前画好基本的轮廓,保证能画出自己想要的东西。TDD的优点是:可以在过程中检测到,所以可以在不同的开发阶段稳定开发(也就是没有大问题)。大方向明确,发展方向正确;而在测试阶段测试不需要与开发隔离,只需要拟定验收条件即可,节省时间。TDD的缺点是:代码复杂。明确的方向需要明确的目标。如果目标变化很快,就会增加很多问题。BDD(BehaviorDrivenDevelopment)BDD是在应用程序存在之前编写用例和期望,从而描述应用程序的行为,促进项目中的人相互交流。BDD专注于业务领域,而不是技术。BDD强调使用特定领域的语言来描述用户行为,定义业务需求,让开发人员专注于代码编写而不是技术细节。重点放在整个开发级别的所有参与者对行为和业务的理解上。个人的理解是:行为驱动开发把大家聚集在一起,使用特定的语言,对需要的系统行为形成一致的理解。就像统一的普通话一样,各个地区的人都可以通过普通话来理解一句话的意思。BDD的优势在于将参与协作团队的人员(跨领域)聚集在一起,达成共识理解,为协作节省了大量的沟通时间。目的明确,准确地让参与的合作者意识到要开发什么。TDD和BDD的区别我个人认为两者没有可比性,根本不是一个渠道;如果非要说出两者的区别,总结起来有以下几点:从各自的定义来分析:TDD是一种基于测试的验收层面驱动整个项目发展的技术;BDD是一种用于设计系统行为的协作技术。参与者分析:TDD参与者介于开发和测试之间;BDD关注参与项目协作的每个人和用户。从写法分析:TDD通常使用代码级测试工具,单元写法没有具体限制;BDD是一种非常挑剔的行为测试用例格式。从解决问题的角度分析:TDD是用来解决开发和测试脱节的问题;BDD用于解决需求与开发脱节的问题。从用户人群分析:TDD是开发人员和测试人员;BDD是客户和开发人员。从角度分析:TDD侧重于测试;BDD侧重于指导行为和规范。