当前位置: 首页 > 知识库问答 >
问题:

遵循BDD时单元测试与端到端(集成本身)之间的关系

夏才
2023-03-14

我的问题也与在典型的BDD中谁做什么有关。我的理解是,产品负责人提出用户故事(可能在Gherkin中,也可能不在Gherkin中),QA编写端到端测试的场景(在特性文件中),Dev编写他的代码(如何和在哪里,他是否也遵循BDD?)。在这一点上,如果开发人员编写了自动化单元测试,那么这是否可以被端到端的QA所利用,或者它们可以完全不同?

我的问题是开发人员和QA在遵循BDD的同时如何在编码方面利用彼此的工作。我不知道如何把这些点联系起来。

让我们以一个基于JAVA的应用程序为例,QA已经在使用Cucumber with Selenium Webdriver进行自动化测试。

共有1个答案

谭勇
2023-03-14

如果您正在实践BDD,那么您将首先创建规范(定义行为),然后才实现该行为(即编写生产代码)。在哪个级别上定义行为不那么重要,尽管在单元测试级别上,大多数人将其称为“TDD”(尽管它不一定是测试驱动的,因为“测试”是您想要编写的代码的设计)。开发人员和QA将协作定义行为并实现测试和生产代码。理想情况下,我希望在不同级别上进行不同的测试,最终(最高)级别是E2E测试。我也会确保不重新测试每一个级别上的所有内容,而是只测试在该级别上有意义的东西。例如:计算一个值的方法应该进行单元测试,如何在前端显示该值将在前端进行测试(仍然可以是单元测试),如何从后端获取该值将是集成测试,等等。您可能有兴趣阅读更多关于BDD的内容,可以在这里:https://docs.Cucumber.io/BDD/,也可以在任何相关的博客帖子中阅读:https://docs.Cucumber.io/community/blog-posts/或者在Cucumber Book/the Cucumber For Java Book。

 类似资料:
  • 本文向大家介绍单元测试和集成测试之间的区别,包括了单元测试和集成测试之间的区别的使用技巧和注意事项,需要的朋友参考一下 众所周知,测试是任何应用程序或软件交付过程中最重要的阶段,因为测试不仅可以验证应用程序的质量,还可以为开发人员提供改进其产品的机会。 每个应用程序都以某种高级或低级语言进行开发,这意味着已经为其开发编写了一些代码,因此在要测试的模块的基础上,存在测试的分类,即单元测试和集成测试。

  • 问题内容: 我需要测试一个函数,该函数的结果将取决于当前时间(使用Joda time的时间)。 是否可以使用(例如使用Mockito)存根/模拟系统时间,以便我可以可靠地测试该功能? 问题答案: Joda time支持通过类的和方法设置“假”当前时间。 参见https://www.joda.org/joda- time/apidocs/org/joda/time/DateTimeUtils.htm

  • 我正在研究像SpecFlow这样的BDD解决方案,并查看了各种示例,我看到了对其他TDD框架的引用,比如我熟悉的MsTest和NUnit。我理解Specflow和BDD提供的内容的价值。我在某处读到Specflow和BDD“包装”了您的单元测试。那么,对于Specflow来说,“步骤定义”是否与MsTest或Nunit一样起到同样的作用,而这些其他框架只是用来代替步骤定义的选项?

  • 单元测试 单元测试仅依赖于源代码,是测试代码逻辑是否符合预期的最简单方法。 运行所有的单元测试 make test 仅测试指定的package # 单个package make test WHAT=./pkg/api # 多个packages make test WHAT=./pkg/{api,kubelet} 或者,也可以直接用go test go test -v k8s.io/kubernet

  • 本文向大家介绍前端测试和后端测试之间的区别,包括了前端测试和后端测试之间的区别的使用技巧和注意事项,需要的朋友参考一下 基于Web的应用程序通常是基于三层体系结构的应用程序。第一层是表示层,称为前端,第二层是业务层或应用程序层,第三层是称为后端的数据库。 前端测试 前端测试是指测试应用程序UI或表示层。它可以是手动的也可以是自动的。 后端测试 后端测试是指测试后端和应用程序层。它通常是自动化的。

  • 我刚来锡库利。我想在我的python(2.7版)单元测试(实际上是selenium webdriver测试)中添加sikuli特性(能够检查网页上是否显示了特定的图像)。有什么建议怎么做吗?我尝试安装,但出现错误(因为它可能需要Cython)。