行为驱动开发(BDD)

行为驱动开发(BDD)

引言

  BDD是对TDD理念的扩展。BDD强调有利害关系的技术团体和非技术团队都要参与到软件开发过程中。可以把它看成一种强调团体间合作的敏捷方法。大多数采用某种敏捷方法的团队最终都会遵循BDD的许多原则。在编写单元测试的时候,尽量使用BDD风格为测试命名。BDD风格强调使用完整的、描述性的、便于业务用户理解的名称或术语,避免使用技术术语。BDD希望类、方法和变量的名称尽可能地反映日常用语。

一、开发环境和工具

   1.1   Visual Studio 2013

  1.2   Resharp 10.0 或以上版本

  1.3   SpecFlow

  Visual Studio菜单中工具->扩展和更新。

  

  Nuget

  

二、需求

   输入一段明文,用Des的加密方式加密成密文。

  输入一段密文,用Des的解密方式解密成明文。

三、代码结构

  

四、添加情景或功能文件

修改情景

五、编写测试代码

六、运行测试代码

建议先编译代码再运行。

测试理所当然的失败了,因为还没有实现功能。

七、编写代码实现功能

测试通过

以类似的方式实现解密的需求。

八、添加需求

输入空字符串时,用Des加密,应返回空字符串。

输入null时,用Des的加密,应抛出ArgumentNullException。

九、添加新的情景

十、编写新的测试代码

十一、再次运行测试代码

加密空字符串时,没有返回空字符串,不符合预期。

加密null时,抛出了ArgumentNullException,符合预期。

十二、调整代码使加密空字符串满足需求

十三、源码

https://github.com/ErikXu/SimpleBDD

十四、本人Github

https://github.com/ErikXu

最近想把自己的Github经营起来,欢迎大家多交流。

分类: 敏捷开发

时间: 2024-12-24 10:46:27

行为驱动开发(BDD)的相关文章

python的行为驱动开发(BDD)

教程一: 基于Python的行为驱动开发实战: http://python.jobbole.com/81303/ 基于Python的行为驱动开发实战 英语原文地址: http://code.tutsplus.com/tutorials/behavior-driven-development-in-python--net-26547 Python BDD自动化测试框架初探: http://lovesoo.org/python-bdd-exploration-of-the-automated-tes

行为驱动开发BDD精粹

BDD脱胎于TDD 行为驱动开发(Behavior-Driven Development,简称BDD),是在测试驱动开发(Test-Driven Development,TDD)基础上发展而来的一种软件开发方法.TDD最大的弊端,是面对一大堆的功能需求和用例时,往往会感到无从下手.另一方面,由于TDD更侧重于测试本身,因此容易忽视对业务需求的表达,最终沉溺于琐碎细节而无法自拔. BDD避免了信息丢失 与传统的软件开发方法相比,BDD的本质在于尽可能避免在需求描述.用例撰写.代码实现.测试等各环节

行为驱动开发(BDD) - 深入了解

行为驱动开发(BDD) - 一个快速的描述和示例 BDD表示乙 ehavior e里文e才有发展.用于描述行为的语法是Gherkin. 这个想法是尽可能自然地描述一种语言应该发生什么. 如果你熟悉单元测试,并且很容易编写单元测试,那么你熟悉它们的阅读方式.根据测试需要覆盖的程度,可以很难弄清楚它的作用,因为毕竟只是代码. 只有开发人员才能真正了解那里发生了什么. BDD以不同的方式解决问题. 让我们来隐藏代码,开始一个对话,所以现在任何人都可以阅读一个场景并了解它的测试. 举一个例子: 给定第一

BDD(行为驱动开发)

BDD的重点是通过与利益相关者的讨论取得对预期的软件行为的清醒认识.它通过用自然语言书写非程序员可读的测试用例扩展了测试驱动开发方法.行为驱动开发人员使用混合了领域中统一的语言的母语语言来描述他们的代码的目的.这让开发者得以把精力集中在代码应该怎么写,而不是技术细节上,而且也最大程度的减少了将代码编写者的技术语言与商业客户.用户.利益相关者.项目管理者等的领域语言之间来回翻译的代价. 关于如何处理需求说明与测试,不同的组织使用不同的名称,或者说是不同的定义,但他们都有一套共同的核心原则与思想,而

Windows驱动开发基础(八)内存管理

Windows驱动开发基础系列,转载请标明出处:http://blog.csdn.net/ikerpeng/article/details/38826159 就32位的计算机来说,他有4G的真实的物理内存.但是这样是不够的,于是引入了虚拟内存的概念.使得每一个进程都有4G的虚拟内存. 虚拟内存实际上就是采用了一种映射的方式.4G的内存实际上被分页.一般来说一个页的大小是4K.也是说它被分为了1M个页.在这么多的页里面,有一部分是对应于物理内存的(可以是多对一的):有一部分是对应于磁盘上的空间,但

如何成为优秀的驱动开发工程师

或许这样的标题,应该是由像Linus或Greg KH这样的大师级的高手才有资格写的吧.但是作为我来说,也许我更想把这个标题作为一个疑问句来使用,整理一下自己的认识,用来勉励自己,和大家一起努力实现这个目标.认识肤浅的地方,还请大家见谅. 何谓优秀的驱动开发工程师 首先要定义,我所认为的一个优秀的驱动开发工程师,应该具备什么样的能力,这里列一下按照从易到难的顺序,个人认为应该会有几个方面的要求吧: 能够独立完成驱动的功能开发任务 能够分析和优化驱动的性能,针对特定硬件扬长避短 能够充分了解模块相关

TDD测试驱动开发

TDD测试驱动开发 一.概念 TDD故名思意就是用测试的方法驱动开发,简单说就是先写测试代码,再写开发代码.传统的方式是先写代码,再测试,它的开发方式与之正好相反. TDD是极限编程的一个最重要的设计工具之一,使得我们编码的目的更加明确.而极限编程的另一个最重要的工具—重构.重构改变的是代码的内部结构,而不会改变外部接口功能.一整套完备的测试用例可以保证我们的程序更加健壮,功能更加完善. 二.作用 站在用户使用的角度去思考如何完成产品设计,强迫开发人员事先思考完善的测试用例并提供不考虑细节的外部

书籍--嵌入式Linux驱动开发

<UNIX环境高级编程>(第2版),史蒂文斯著 <深入理解 Linux 内核>(第三版) ,博韦等著 Linux设备驱动开发详解:基于最新的Linux 4.0内核    宋宝华

Android系统移植与驱动开发概述读书心得

第一章是Android系统移植与驱动开发概述,包含了Android系统架构.Android系统移植的主要工作.查看Linux内核版本.Linux内核版本号的定义规则.如何学习Linux驱动开发以及Linux设备驱动等六方面内容 Android系统架构分为四层,分别是Linux内核.C/C++代码库.Android SDK API和应用程序.Linux内核这一层主要包括Linux的驱动程序以及内存管理.进程管理.电源管理等程序. Android移植可分为两部分:应用移植和系统移植.应用移植是指将应