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

对于BDD风格的测试,测试人员应该使用与开发人员相同的工具吗?

郎雅昶
2023-03-14

开发人员希望为他们的单元测试创建BDD风格的测试(使用SpecFlow),而我们的测试团队需要一些地方来放置自动化的web UI测试(使用Selenium)以及web服务集成测试。

因此,问题是:在测试人员和开发人员的测试之间共享相同的对象是否更好,或者将这两个世界分开是否可以得到更好的测试管理?

对于我们的测试人员来说,SpecFlow似乎不是一个完美的解决方案(Robot framework或Fitnesse正在考虑),但使用通用工具和库来编写不同类型的测试似乎是合理的。

谢谢,

共有1个答案

穆彬郁
2023-03-14

我认为您将会发现两个测试系统之间的重叠很可能意味着可以共享的东西比您预期的要少。

首先让我们考虑一下BDD下的开发周期。我们从一个新的特性定义开始,然后开发一些场景和代码来支持它。事实上,如果我们正确地这样做,每个Specflow场景都是一个业务级测试,并且为了驱动单个业务级测试的开发,您可能还开发了许多较低级别的单元级测试。我听说过这个过程被描述为各种各样的事情(包括“七步过程”),但重要的是它是一个循环中的一个循环,您要完成多个红绿重构单元测试循环,以便通过业务级别循环,将业务级别场景从红到绿。

到目前为止,还没有必要测试UI层,特别是在MVC/MVVM或类似的分层代码库中。事实上,我建议我的客户机就是这样工作的,不需要测试点击是否调用命令,我们假设我们不想浪费时间测试我们正在工作的框架,所以我们只调用命令本身。

然而,您提到了Selenium,所以我假设您正在使用它来驱动与浏览器的交互,因此我们也假设您希望在UI级别上进行一些测试。这段代码跨越了多个域(看看它是谁的域),为您提供了高级概念,如登录和您现在想要重用的公共进程。这段代码还不存在,因为它与浏览器的交互与其他代码不一致。

因此,我认为您将发现最终会有两个测试代码库,一个由单元测试和业务级别规范使用,用于孤立地测试事物,即与模拟一起保存的代码块或仅是整个系统的一部分。

另一个结合硒测试与整个系统的交互,进行集成测试和系统测试。

 类似资料:
  • 本文向大家介绍测试人员和开发人员区别?相关面试题,主要包含被问及测试人员和开发人员区别?时的应答技巧和注意事项,需要的朋友参考一下 ①人员不同 测试:开发人员和测试人员 开发:只有开发人员 ②所处阶段不同 测试:贯穿整个软件开发生命周期 调试:在软件开发编码阶段以及测试过程中对BUG进行调试 ③对bug处理结果不同 测试:只找出错误,不解决 调试:找出错误并解决

  • 我想获得关于一个发布我的应用程序的Beta测试的程序的信息,但没有在商店上发布,因为他们不愿意进行任何发布。 我会解释哪一个是我的问题。我已经在Beta测试部分加载了apk,以便将您的用户发送到测试。 我不得不说,该应用程序目前没有加载的APK,在制造部分,然后该部分是空的,该应用程序没有发布。 在加载并在“beta testing”部分的链接部分进行了滚动后,我看到它给了我以下消息:“当你发布你

  • 为了使调试更容易,Electron 原生支持 Chrome DevTools Extension。 对于大多数DevTools的扩展,你可以直接下载源码,然后通过 BrowserWindow.addDevToolsExtension API 加载它们。Electron会记住已经加载了哪些扩展,所以你不需要每次创建一个新window时都调用 BrowserWindow.addDevToolsExte

  • 我的应用程序还没有发布。通过Google Play测试应用程序的Alpha/Beta测试者的最大数量是多少?对于iOS来说,每个构建需要1000个外部测试人员。Google Play的限制是多少?

  • 对于大多数DevTools的扩展,你可以直接下载源码,然后通过API加载它们。Electron会记住已经加载了哪些扩展,所以你不需要每次创建一个新window时都调用BrowserWindow.addDevToolsExtensionAPI。 注:React DevTools目前不能直接工作,详情留意https://github.com/atom/electron/issues/915 参考来编译

  • 问题内容: 从目前的情况来看,这个问题不适合我们的问答形式。我们希望答案能得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 我是一个长期从事C / Java开发人员的工作,试图涉足Python,并且正在寻找陈词滥调的“面向C 开发人员的Python”文章,但是空白。我已经看到了C