• 测试人员,今天再不懂BDD就晚了!


    首先,测试人员应该参与软件开发的全流程,这一点已经是软件行业的共识了。

        其次,新技术、新框架、新思路不断涌现的今天,测试人员除了传统的功能测试,也要不断与时俱进,主动承担起自动化测试、性能测试等。除了更多参与软件流程,测试人员更要以自己的技术能力证明自己的价值!

        再次,随着敏捷开发模式的不断迭代发展,敏捷开发的技术和管理模式,已经深入到传统和新兴的各个软件公司。

        敏捷开发,除了快速迭代的项目管理模式,还带来了一系列技术实践层面的新思想、新概念。而且,新思路、新概念、新模式也在敏捷开发的一次一次迭代中不断推陈出席!

        早期的TDD

    (Test Driven Development),

    测试驱动开发,就是敏捷开发带来的软件开发新实践。TDD让测试人员更深入地参与到了软件开发生命周期中。

        TDD推出了几年之后,新的敏捷开发迭代,还在持续着。

        新迭代的产物,是软件开发更加贴近业务逻辑的“行为驱动开发”,缩写为BDD。

    BDD(Behavior Driven Development),行为驱动开发是一种敏捷软件开发的技术,它鼓励软件项目中的开发者、QA和非技术人员或商业参与者之间的协作。

    BDD的开发流程,像下面这样:


     

    BDD最初是由Dan North在2003年命名,2009年在伦敦发表的“敏捷规格,BDD和极限测试交流”中,Dan North对BDD给出了如下定义:

    BDD是第二代的、由外及内的、基于拉(pull)的、多方利益相关者的(stakeholder)、多种可扩展的、高自动化的敏捷方法。它描述了一个交互循环,可以具有带有良好定义的输出(即工作中交付的结果):已测试过的软件。

    Dan North创造了首个BDD框架:JBehave。之后是Ruby语言的基于故事的RBehave,后来被纳入了RSpec项目。RSpec中第一个基于故事的框架,后来被主要由Aslak Hellesøy开发的Cucumber取代。

    Cucumber框架可以说是BDD的代名词了。官网:https://cucumber.io

    Cucumber支持的语言也非常多,比如:

    • Java Virtual Machine: Cucumber-JVM

    • .NET (Microsoft.NET and Mono): IronRuby and .NET, IronRuby and Mono

    • Adobe Flex: FunFX, Melomel

    • Python

    • Perl: Test::BDD::Cucumber

    • Erlang: cucumberl kucumberl

    • PHP: Behat (使用 Mink 进行浏览器测试

    下面以JAVA为例,简单描述一下Cucumber进行BDD的过程。

    1. 安装 cucumber-archetype Maven插件;

    2. 在命令行建立一个项目

    mvn archetype:generate                      

      -DarchetypeGroupId=io.cucumber          

      -DarchetypeArtifactId=cucumber-archetype

      -DarchetypeVersion=4.2.6.1              

      -DgroupId=hellocucumber                  

      -DartifactId=hellocucumber              

      -Dpackage=hellocucumber                  

      -Dversion=1.0.0-SNAPSHOT                

      -DinteractiveMode=false

    3. 进入目录 src/test/resources/hellocucumber,创建行为特征文件,包含场景、动作和响应。

    Feature: Is it Friday yet?

     Everybody wants to know when it's Friday

     Scenario: Sunday isn't Friday

       Given today is Sunday

       When I ask whether it's Friday yet

       Then I should be told "Nope"

    Feature、Scenario、Given、When、Then这些都是关键字。

    特征文件,需要用英文,这个不要尝试用汉字。

    到这一步,行为驱动测试的第一部分的“B”,就写完了。是不是很自然?上手很快?

        剩下的工作,测试人员就要跟开发人员紧密配合了。

        有兴趣的小伙伴,多看看Cucumber官网,很详细的步骤和文档。

    Python小伙伴们,除了Cucumber框架,我们还有Lettuce框架,可以选择。后者是一个纯Python解决。

        如同TDD,BDD也在中国大陆的软件圈子里逐步热闹起来。

        小伙伴们,赶快行动起来吧!

    作  者:Testfan   Arthur

    出  处:微信公众号:自动化软件测试平台

    版权说明:欢迎转载,但必须注明出处,并在文章页面明显位置给出文章链接

  • 相关阅读:
    Levmar 配置
    函数前加static与不加static的区别
    关于形如--error LNK2005: xxx 已经在 msvcrtd.lib ( MSVCR90D.dll ) 中定义--的问题分析解决
    Latex 算法Algorithm
    matlab 曲线拟合
    生成eps图形
    libSVM在matlab下的使用安装
    spring 事务管理笔记
    集合框架
    小程序 滑动弹窗阻止主页面滑动
  • 原文地址:https://www.cnblogs.com/testfan2019/p/11245162.html
Copyright © 2020-2023  润新知