基于RobotFramework的验收测试驱动开发

A-TDD(Acceptance test-driven development ) with Robot framework

成都创新互联于2013年开始,先为西安等服务建站,西安等地企业,进行企业商务咨询服务。为西安企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

在了解A-TTD之前,先了解下TTD。

测试驱动开发,英文全称Test-Driven Development,简称TDD,是一种不同于传统软件开发流程的新型的开发方法。它要求在编写某个功能的代码之前先编写测试代码,然后只编写使测试通过的功能代码,通过测试来推动整个开发的进行。这有助于编写简洁可用和高质量的代码,并加速开发过程。

A-TTD(验收测试驱动开发)非常接近T-DD。 不同点在于A-TDD强调开发-测试-客户之间的协同, A-TTD是一种协同需求发现方法,利用示例和可自动的测试来明确需求,创建可执行用例方法。

ATTD(验收测试驱动开发)是敏捷和scrum经常采用的实践方法。框图如下:

基于Robot Framework的验收测试驱动开发

1. Discuss the requirement in a workshop (在专题讨论会中讨论需求)

2. Develop them concurrently during the iteration (在迭代中并行开发)

3. Deliver the result to the stakeholder for acceptance. (提交结果给利益相关方进行验收)

Discuss(讨论): 

    • paticipants: product owner, related stakeholder, developer

    如何讨论:假象系统完成,你会如何使用系统并期待它能实现什么。

    研讨会的重点是讨论并发现需求,而不是实际的测试。

Develop(开发):

将示例提取成测试。

需求实现活动的开发(包括test libraries,tables )

实现需求通过测试。

Deliver(交付):

当测试通过后,需求会被产品负责人和其他利益相关方评审,这可能导致新的需求产生或现有测试的变化

 

下图是一个更为详细的A-TDD框架图

基于Robot Framework的验收测试驱动开发

A-TDD如何map到Scrum迭×××发基于Robot Framework的验收测试驱动开发

讨论:在具体的Sprint计划之前,团队,产品负责人,相关利益方需要在专题讨论会中澄清需求。

并行开发:在迭×××发的过程中,实现需求的开发,验证实现的测试需要在sprint 的backlog中计划

交付验收:交付基于需求的产品和验收测试的case给相关利益方并组织Sprint review讨论。

A-TDD例子示范(ATTD with Robot Framework)

Robot背景:Robot Framework是一个基于关键字驱动的自动化测试框架。 具体信息参见

www.robotframework.org

现有一个供应商展销会的信息查询系统, 通过该系统参观者可以用它来查询下面的信息:

  • 我在哪里可以找到供应商X的展销摊位?

  • 我怎么才能到达那个地方?

  • 最近的餐厅在哪里?

  • 其他参观者对本次展销会的评价。

案例一: 供应商列表

一: 需求澄清(产生具体的示例)

客户:需要把所有的供应商名单制作成一份“好的表格”

开发:能举得例子吗?什么是一份“好的表格”

客户:下面是一个例子:

基于Robot Framework的验收测试驱动开发

讨论: 发现假如有微小的不同,将会发生重复的输入(比如相同的供应商,不同的展位等)。

开发:数据库中什么样数据可以导出一份“好的供应商列表”

客户:

基于Robot Framework的验收测试驱动开发

从上面的表格可以发现,相同的供应商由于展位信息不同,有美有logo, 会存在一些重复。

二. 需求示例提取成Robot framework的测试用例。

这里简单介绍下Robot framework, 具体参见www.robotframework.org

Robot framework 包含4个表格:

  • 测试用例表: 包含实际的测试用例,表头是“Test Case”

  • 关键字表: 包含底层的用户关键字,这些关键字组成了测试用例的结构,表头是Keyword 或者是 “User Keyword”

  • 设置表:允许引用文件,lib. 表头是“setting”或者“settings”

  • 变量表:声明变量, 表头是“Variable”或者 “Variables”

下面是Robot framwork的调用过程:

基于Robot Framework的验收测试驱动开发

测试用例和用户关键字是填在Robot Framework 里面的,Framework调用 test libraries, 它再调用待测系统。

 

现在从示例中抽取测试用例。

基于Robot Framework的验收测试驱动开发

测试用例执行,发现keywords “Stand input”, “Is stand output ” , “Has no extra stands” are undefined.

下面我用user keyword 实现 “Is stand output ” , “Has no extra stands”。

基于Robot Framework的验收测试驱动开发

再次跑测试用例发现下面keyword 没有定义:”Stand out”, “Get current log”, “Get current name” , “Get current place”, “Stands left”. 而这些关键字将会在test library里面实现。

 

当前待测系统是用C语言写的,可以通过用户接口来调用或者直接调用。该案例采用直接调用(使用 ctypes foreign library)。test library 代码如下:

基于Robot Framework的验收测试驱动开发

结论:

A-TTD是一个相互协作的需求澄清工具,它使用可执行的用例去探索需求。需求--> 需求例子表格--> Robot 表格 --> 可执行用例(表格表述)

Robot Framework 是一个基于A-TDD思想的测试框架。它采用表格化的结构来表述一个用例,再通过test libraries 去实现用例的可执行话。

网站标题:基于RobotFramework的验收测试驱动开发
网页链接:https://www.cdcxhl.com/article34/gcojpe.html

成都网站建设公司_创新互联,为您提供品牌网站设计微信小程序定制开发移动网站建设营销型网站建设云服务器

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都网站建设公司