问题标签 [atdd]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
779 浏览

.net - 在进行 BDD 时,我必须先对通过验收测试所需的每段代码进行 TDD 吗?

周末有人给了我一个 kata 工作。在开始之前,我真的只是想收集一些想法。我不是在寻找解决方案,只是关于最佳方法/实践的一些想法。

从我的谈话来看,我似乎需要使用 BDD --> ATDD(与 gherkin 中的场景相关) --> TDD 方法。我只是想找出最好的方法。

我目前的想法是

1)创建一个specflow项目并将用户故事提炼成一个小黄瓜。

2)使用 GWT 语法在小黄瓜(场景)中创建相关的验收测试,从而在 [binding] 类中生成我的 ATTD 样式测试(右键单击“生成”)。

3) 使小黄瓜 ATDD 测试通过。

我遇到的难题是,直接链接到我的小黄瓜文件中的 ATTD 测试的测试没有给我足够低级别的测试。

那我该怎么办?我要编写高级 ATDD 测试,然后在使它们通过之前,我是否深入挖掘并编写纯 TDD 测试来设计我的低级对象?

是的,我还没有弄清楚如何以完全 BDD 方式(纯风格)工作,但我只是想知道我是如何挖掘的。我很欣赏您应该逐步工作并完成一项测试并通过,但我觉得我需要从高级 ATDD 测试开始,然后更深入,所以在我使低级代码工作之前,更高级别的测试将无法工作,但要遵循TDD 我需要测试那个低级代码,所以我已经打破了 1 个单元测试然后通过然后重构的原则......

希望有人明白如何告诉我“如何”在没有实际操作的情况下解决这个问题。但这是提供给我的问题......(我很感激如果测试人员看到这一点,他们可能会因为在这里问我而失败,但更重要的是我学习而不是得到这份工作)。是的,我知道我很生气 :-)

我也很想知道我是否应该为我的纯 TDD 测试创建一个单独的项目。最好的项目结构是什么?我正在考虑 1 个 specflow 项目和一个 .test 项目以及一个类库和一个用于运行时的控制台应用程序。

PS任何帮助我的人都有我欠他们的人情。拥抱或慈善捐赠。或者我想这里的 +1 是你真正想要的:-/

剪刀石头布

不懂游戏?http://en.wikipedia.org/wiki/Rock-paper-scissors

我正在寻找一个缩小版本(想想最小的可行产品)。没有数据库(即会话存储),简单的界面 - 2 或 3 小时的工作(顶部)是完全合理的。我不是在寻找一个完整的东西,只是一个精心制作的小东西。如果这是 Java 而不是 .NET,并且更面向后端,我会使用控制台应用程序。在 C# 中寻找单元测试和精心设计的代码。我正在寻找的是碰巧使用 C# ASP.Net MVC 的编码器。

0 投票
2 回答
274 浏览

testing - 验收测试驱动开发具有多个客户的服务

我有一个与验收测试驱动开发 (ATDD) 相关的问题。我的应用程序是作为 REST 服务开发的,它可能有多个客户端 - 网站、移动设备、桌面。ATDD 概念说我应该从端到端测试开始每个功能。由于我的服务可能有多个提供相同用例的客户端应用程序(端),所以在编写验收测试时应该使用什么方法?验收测试是否应该将对 REST 服务或客户端应用程序的直接请求作为输入?或两者?我知道如果我的验收测试从 REST 请求开始,我会省略客户端部分,这绝对不行。如果这些从客户端开始,我将为每个客户端重复基本相同的功能测试。我需要找到一种位于这些边缘中间某处的方法。

0 投票
1 回答
2463 浏览

selenium - 使用 Selenium 在 Behat 中执行功能文件时找不到表单字段

我正在运行 Behat 功能文件,我尝试在表单字段中选择一个选项

其中“Lisa Hayes”是表单名称“settings_custom[Counselor][]”中的值之一。元素详细信息如下:

在命令行上执行功能文件时出现错误

未找到具有 id|name|label|value“settings_custom[Counselor][]”的表单字段。

我的默认驱动程序是 selenium2(我有 selenium-server-standalone-2.32.0.jar 服务器在后台运行,我的浏览器是 firefox)。

请注意,当我将默认驱动程序从 selenium(Web 驱动程序)更改为 goutte(无头)时,这非常有效。

我试图搜索这个论坛并用谷歌搜索任何细节,但没有找到任何有用的信息。

如果您需要更多信息,请与我们联系。谢谢!

0 投票
1 回答
3553 浏览

java - Cucumber 报告不能使用多个格式化程序?

出于某种原因,我的代码只会在使用一种格式化程序时运行。

如果我添加另一个:

我得到一个 IndexOutOfBoundsException:

如果我添加另一个:

这次我得到另一个 IndexOutOfBoundsException = -1:

谁能帮我弄清楚这是怎么回事!!!!?

版本:

0 投票
1 回答
257 浏览

bdd - BDD/ATDD 故事是否取代了对传统需求的需求?

从在线论坛和帖子中我可以看出,BDD/ATDD 的主要关注点之一似乎是讨论并确保客户、开发人员、测试人员和其他相关方参与了解系统必须做什么。

问题 1: BDD/ATDD 故事是否取代了对传统需求规范的需求,例如使用Volere 模板捕获的需求规范?

因为传统的需求规范是开发人员和测试人员的关键输入之一,所以传统的需求规范往往是全面的。

问题 2: BDD/ATDD 故事是否也应该足够全面,以允许对系统进行全面测试?

0 投票
1 回答
124 浏览

bdd - 使用 Gerrit 作为主要沟通媒介捕获和提炼用户故事

我继承了一个使用 gerrit 来捕获和协作处理用户故事的过程。

该过程用于捕获故事的早期阶段,与白板方法相比,它似乎非常冗长。

感觉这个过程违背了用户故事的精神,其中协作和面对面的讨论似乎受到青睐。

此外,gerrit 工具更多地针对技术用户。需要 git 知识来编辑故事,这似乎将编写故事推给技术团队。

问题:是否可以使用 gerrit 有效地捕捉和协作处理故事?如果是这样,如何做到这一点?

0 投票
2 回答
2496 浏览

testing - 我可以使用机器人框架进行报告而无需创建 testcase.txt 文件吗?

我有很多用纯 Java 编写的 Java 测试用例。然后我使用 testng 和 ant 运行测试用例并报告一个 xml 文件,该文件提供通过和失败的测试用例以及测试套件等。在这种情况下,testng 本质上是一个框架,并且提供的灵活性很小。

我已经阅读了 Robot Framework,对它还是很陌生,并且想将我们的测试模型转移到验收测试和验收测试驱动的开发。看起来机器人框架支持一个english-written-testcase.txt,并将其转换为它运行的实际测试,并在一个output.xml类型的文件中报告结果。

所以,我想知道有没有什么办法让机器人框架只处理 .java 文件的代码并运行测试用例,而无需返回并编写 .txt 文件才能启动测试用例。

然后让它报告某种 output.xml 报告。

基本上,我需要保持当前工作的能力,但同时允许我慢慢过渡到机器人框架可以提供的 testcase.txt 文件模型。

0 投票
1 回答
97 浏览

bdd - 在 SBE 和其他产品文档之间取得平衡

阅读在线资料(例如FowlerGerard),似乎通过示例来规范故事不应该是完整的功能规范。

问题 1:从 SBE 开始的人如何决定他们的故事在描述系统的所有功能方面需要多全面?即我什么时候可以停止写故事,因为我已经捕捉到了足够的东西?

问题 2:在测试团队根据产品文档验证产品的组织中,如果商店不是完整的规范,我认为“其他”产品文档需要包含 SBE 未涵盖的所有案例是否正确?

0 投票
1 回答
143 浏览

bdd - SBE 规范应该有多完整?

我正在研究一个相当大的现有代码库,其中创建了 SBE 规范来定义产品的行为。

目前大约有 450 个场景,随着代码库中添加的每个新功能,这个数字还在增长。

与传统的单行需求陈述相比,由于 SBE 规范的冗长性质,很难对系统的功能有高层次的理解。例如,这些故事目前共有 46,830 个单词:

另一个问题是我们正在使用gerrit 代码审查工具来协作处理故事,这导致了团队之间的正式沟通。

问题 1:SBE 是否应该是一个完整而全面的回归测试套件(示例)?或者,他们是否应该只关注每个 sprint 所需的关键功能?

问题 2 :正如这里的答案所提到的,是否需要诸如问题跟踪器之类的工具来管理大型项目的故事?

0 投票
3 回答
191 浏览

bdd - 当你有这么多的 BDD 故事时,如何总结和导航?

我为现有系统继承了许多 BDD 故事/场景(450+ 并且还在上升): 更多信息。这些故事是使用文件系统文件夹组织的:

故事太多了,试图通过阅读故事文本文件来理解功能就像试图通过阅读数千行源代码来理解系统的技术架构。

我尝试使用unix命令来总结故事,但这仍然无助于我浏览故事。例如,即使叙述跨越多行,以下命令也会打印出故事文件名和叙述:

产生类似于以下内容的输出:

这个问题与这个问题相似,但有一些关键区别:

  • 这个问题的重点是总结和浏览故事,而不是漂亮的印刷。
  • 需要放大和缩小,从高级到详细和返回。
  • 导航将由任何需要了解故事的人进行 - 而不仅仅是业务。