BDD与TDD的认识

BDD和TDD 是两种不同的测试思想。

BDD:行为驱动开发

TDD:测试驱动开发(Test-Driven Development)

一、  TDD

测试金字塔: UT————IT————ST

                     单元测试    集成测试    系统测试

单元测试工具: Junit   \  TestNG    \  Stub    \ Mock

Stub与Mock的区别:前者关注被测接口的返回值,后者关注所依赖对象的行为。前者关注状态,后者关注行为。

MVC:WEB应用三层: DAO层、SERviec层、Control层,单元测试每一层都要独立,层间不能有强依赖,单独对每一层进行测试,但Serveic层对DAO有所依赖,我们就需要用到Mock.

TDD的流程:

 

 

 

 

二、BDD(Behavioral -Driven Development)行为驱动开发。

通过用户的行为来测试,我们的脚本是由用户的行为转换而成的。用户行为——自然语言——可执行的脚本。

 

比如常用的购物网站:登陆购物网站——查看商品——加入购物车——结算。

Given I have login in the shoping site。 我已经登陆了一个购物网站。

When I search Huawei telphone.    我搜索一个华为手机

Then I can see the goods about huawei telphone.  我搜过到了个关于华为手机的商品。

这就是描述性的自然语言,来描述需求,从用户的角度去关注我们的系统应该实现什么功能。我们的功能是站在用户的角度出发的,可以减少用户验收的时间。

 

Cucumber测试是基于BDD的。

Cucumber测试的学习环境:

environment:   1.  Java SE.JDK  1.8 is recommended

                        2.  Maven version 3.3.1 or higher 

                        3.  IDE (Eclipse)

                        4.  plugin 1:   IDEA Cucumber  for java plugin

                        5. plugin 2:    Cucumber Eclipse

 

Features Example:   功能例如

 Feature:  Add Another Cellphone to cart

Scenario :  脚本  Add cellphone to cart with sufficient stock 库存充足

Given I  have login in the shopping website.  \\条件:我已经登陆一个购物网站

 When I add one cellphone into the cart        \\当我添加一部 手机至购物车里时

Then I can see one cellphone in my cart.    \\那么我能在我的购物车里看见一部手机。

 

单元测试:what

TDD测试:when

BDD测试:how

posted @ 2023-03-21 12:41  yoyoma0355  阅读(222)  评论(0编辑  收藏  举报