• 2011-06-23

    以终为始

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://www.blogbus.com/dreamhead-logs/139449782.html

    最近项目里关注了两件事:部署和BDD。

    部署的目标是自动化,就是一个命令敲下去,机器创建出来,相应的软件安装好,并且根据配置好。这就是DevOps,所有的配置都像代码一样保存好,这样,测试和重现问题都很容易。想想那些因为机器配置差异,死活重现不了bug的悲惨生活吧!不过,这不是这里要说的。

    讨论数据库配置时,我们忽然发现了一个问题:没有数据库脚本。忘记配置数据库,这种低级错误是不可能出现的,我们项目有dbdeploy实现了数据迁移。但是,我们这些迁移脚本只是在开发环境里使用的。部署数据库的那台机器上,是不会有开发环境的,我们能做的只是提供一个数据库脚本,在上面运行。

    发现问题,解决问题是很容易的,于是,我们很快的就生成了自己的数据库脚本。

    BDD的讨论实际上是关于如何写好一个Feature/Scenario。Given/When/Then和和测试基本结构是完全一样的,Given就是一些预置条件,When是一些操作,Then是验证。

    做BDD,实际上是站在系统层面上思考的,那么Given实际上就是给系统预设一些数据。而真正要去设置这些数据时,一些系统设计上的问题就会浮出水面,比如,系统根本就没有一个修改数据的接口。还是那句话,发现问题,解决问题是很容易的。

    作为开发人员,我们经常会醉心于功能实现上,而忽略掉许多重要的东西。其实,只要向外一站,换个角度,我们便不难发现自己的疏忽。这也就是“测试驱动开发”的原动力,为了不让自己迷失,从最终目标开始。

    分享到:

    历史上的今天:

    CSDN的专访 2007-06-23
    引用地址:

    评论

  • 請問有否BDD的完整Case可以推薦一下?謝謝