多测师是一家拥有先进的教学理念,强大的师资团队,业内好评甚多的接口自动化测试培训机构!

17727591462

联系电话

您现在所在位置:接口自动化测试培训 > 新闻资讯

基于BDD的自动化测试实践

更新时间:2021-12-29 10:23:44 作者:多测师 浏览:112

  在软件研发和测试过程中,当测试人员、开发人员以及业务人员沟通测试案例的功能点以及覆盖率时,复杂的功能需求和晦涩难懂的测试案例脚本脱节,让大家很难对测试功能点达到一致,也很难统计测试覆盖率。如果有一种通用语言来描述测试用例,让开发、测试和业务人员都能够很好地理解测试需求,步骤和目标,便可以最大程度避免由于理解偏差带来的不一致性问题,而BDD(全称Behavior Driven Development)技术就是解决这一问题的钥匙。

  BDD即行为驱动开发,是一种敏捷软件开发的技术,是TDD(全称Test Driven Development)即测试驱动开发的延伸,它用简单易懂的“通用语言”——Gherkin语法书写的结构化自然语言来描述测试需求,并将语言转换为可执行的测试。由于业务人员、开发人员和测试人员使用同一种“语言”来描述同一个系统和需求功能,可以最大程度避免表达不一致带来的问题,达到理解上的一致性。使用通用语言,商业参与者比如客户也可以和我们的业务人员以及研发团队一起定义出系统的行为,从而做出符合客户需求的设计。

  BDD鼓励软件项目中的开发人员、测试人员、业务人员以及商业参与者之间的协作,让开发和测试人员尽可能地理解产品经理或业务人员的功能需求,并在研发过程中及时反馈和演示软件功能的研发状态,让产品经理或业务人员根据获得的产品研发信息及时对软件产品特性进行调整。BDD帮助敏捷研发团队把精力集中在识别、理解和构建跟业务目标有关的产品特性上面,并让敏捷研发团队能够确保识别出的产品特性能够被正确设计和实现出来。

基于BDD的自动化测试实践

  本文介绍了一种基于BDD技术去书写测试案例,并结合流行的持续集成技术实现了一套自动化测试的框架。此框架把BDD书写的测试用例自动部署到了持续集成系统中,当开发人员修改代码后,便自动触发去执行配置好的BDD测试用例并得到可视化的执行结果,通过结果可以定位到失败的测试用例。由于测试用例是之前介绍的“通用语言”,开发人员可以很清楚地理解失败的原因,并和测试人员有效地进行沟通,从而去解决代码BUG或者修改不合适的测试用例。下面,我将从三个部分来介绍这个自动化框架:1)自动化测试框架概览2)BDD测试用例详解3)实践与应用

  自动化测试框架概览

  在本文的实现中,我们使用Cucumber和Serenity BDD的Java版本去实现BDD测试用例,使用Git来管理开发代码和测试用例代码,并使用Jenkins+Maven+Docker等流行的持续集成框架去实现自动化测试流程。在介绍自动化框架的工作流程前,我们先熟悉一下这几个概念:

  Cucumber是一个能够用普通语言来描述测试用例,支持BDD的开源自动化测试工具。它本质上是根据正则表达式匹配用自然语言描述的测试用例步骤,然后依次执行对应的方法,以达到测试的目的。

  Serenity BDD是一个开源工具,它和Cucumber结合可以实现测试用例执行结果的可视化展示和统计,方便使用者分析测试的结果和问题。

  Jenkins是实现可持续集成框架的实现工具。

  Docker是一个开源的应用容器引擎,可以打包应用程序以及依赖包到一个可移植的容器中,然后发布到部署好的Linux或Windows 服务器上。

  Maven可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。

  整个框架的工作流程是:当开发人员做了代码改动或者测试人员做了测试用例修改,提交到Git的待测分支后,Jenkins的Hook识别到变化,自动拉取最新的开发代码和测试用例代码,用Maven打包,发到Docker上进行Docker Push和Docker Build,最后发布到已经部署好的应用服务器集群进行Docker Run,让最新的Cucumber实现的测试用例跑在最新的开发代码上,执行完毕后,Jenkins自动收集Serenity BDD的执行结果,通过邮件发给代码提交人,通知他执行结果。如果测试用例的执行结果全部通过,则将改动的代码提交到Git的稳定分支中;如果有失败用例,则驳回代码的提交。

  以上内容为大家介绍了基于BDD的自动化测试实践,希望对大家有所帮助,如果想要了解更多接口自动化测试相关知识,请关注多测师。https://www.aichudan.com/xwzx/


联系电话

17727591462

返回顶部