标签: acceptance-testing

.NET中用于编写验收测试的最新维护框架是什么?

我正在练习TDD一段时间了,我想提高我的技能并开始做ATDD,我读了关于ruby和java的框架但是没有听到很多关于.NET的内容

.NET中用于编写验收测试的最新维护框架是什么?

编辑:在阅读更多内容后,我想要注意的是,我正在将网站和网络应用的验收测试联系起来,任何可能都需要考虑进行GUI测试.

.net tdd selenium unit-testing acceptance-testing

8
推荐指数
1
解决办法
385
查看次数

配置RSpec以将Capybara.javascript_driver用于所有请求规范

全局配置RSpec是否可以为所有请求规范使用Capybara(默认或自定义)JavaScript驱动程序?我们有时会忘记手动添加js: true到每个请求规范,这有点烦人.

ruby rspec acceptance-testing capybara

8
推荐指数
2
解决办法
2822
查看次数

Codeception - 验收测试工作但功能测试没有

我在WAMP平台上运行最新版本的Codeception - 我的接受是非常基本的,但工作正常(见下文):

$I = new WebGuy($scenario);
$I->wantTo('Log in to the website');
$I->amOnPage('/auth/login');
$I->fillField('identity','admin@admin.com');
$I->fillField('password','password');
$I->click('Login');
Run Code Online (Sandbox Code Playgroud)

简而言之 - 它检查页面是'auth/login'填写2个表单字段并单击登录按钮.这没有任何问题.

这是我相同的功能测试:

$I = new TestGuy($scenario);
$I->wantTo('perform actions and see result');
$I->amOnPage('/auth/login');
$I->fillField('identity','admin@admin.com');
$I->fillField('password','password');
$I->click('Login');
Run Code Online (Sandbox Code Playgroud)

当我从命令行运行它时,我得到以下错误(不是完整的错误,但足以理解问题):

1) Couldn't <-[35;1mperform actions and see result<-
[0m in <-[37;1LoginCept.php<-[0m <-41;37mRuntimeException: 
Call to undefined method TestGuy::amOnPage<-[0m.......
Run Code Online (Sandbox Code Playgroud)

我的验收套件启用了"PhpBrowser"和"WebHelper"模块,功能套件启用了"FileSystem"和"TestHelper"(在acceptance.suite.yml和functional.suite.yml文件中)

显然amOnPage()函数是问题 - 然而我被引导相信amOnPage()应该在验收和功能测试中工作?或者我错了 - 也 - 有人可以解释数字的含义,例如'< - [35; 1m'出现

更新:我尝试将'WebHelper'模块添加到functional.suite.yml但我没有看到在TestGuy.php文件中自动生成amOnPage() - 任何想法?

我的配置文件如下:

WebGuy

class_name: WebGuy
modules:
enabled:
    - PhpBrowser
    - WebHelper
config:
    PhpBrowser:
        url: 'http://v3.localhost/'
Run Code Online (Sandbox Code Playgroud)

TestGuy

class_name: …
Run Code Online (Sandbox Code Playgroud)

command-line unit-testing acceptance-testing functional-testing codeception

8
推荐指数
1
解决办法
7700
查看次数

通过规范轻松验收测试

我寻找一个工具/框架来进行自动验收测试.创建新测试的界面应该非常简单,非程序员(客户,老板)将能够添加将自动测试的规范.

它应该是某种方式从命令行执行测试,包括在自动构建中运行测试.

我更喜欢Java和开源,但我的问题并不局限于此.

您可以推荐什么,并解释为什么您的工具/框架是世界上最好的.

testing automated-tests specifications acceptance-testing

7
推荐指数
1
解决办法
883
查看次数

Flex自动验收测试工具

我正在寻找有关使用一些flex组件自动测试Web应用程序的工具的建议.

为了提供一些背景知识,我们有一个完全用AJAX + HTML开发的Web应用程序,我们在使用Selenium端到端测试该应用程序方面取得了一些成功.我们最近在混合中添加了一些flex组件,它变得复杂了.

我们尝试使用Selenium Flex,但我们对它的功能感到失望.所以现在我们正在寻找一些替代方案.理想情况下,该工具可以同时驱动卷筒纸和柔性部件,但我们也可以自行测试柔性部件.我们更喜欢开源,但良好的商业工具也是一种选择.

我听说过Fluint和FlexMonkey,但还没有尝试过.有人有使用这些的经验吗?对刚开始的人有什么建议吗?任何陷阱?

还有其他一些可以使用的工具吗?

谢谢.

apache-flex automated-tests acceptance-testing

7
推荐指数
1
解决办法
2116
查看次数

如何在SpecFlow,Cucumber或其他BDD验收测试框架中选择不同的测试类型?

我正在查看SpecFlow示例,它的MVC示例包含几个测试选项:

  • 基于控制器生成的验证结果的验收测试;
  • 使用MvcIntegrationTestFramework进行集成测试;
  • 使用Selenium进行自动验收测试;
  • 提示测试仪手动验证结果时的手动验收测试.

我必须说我对SpecFlow示例的编写方式印象深刻(我设法在下载后几分钟内运行它们,只需配置数据库并安装Selenium Remote Control服务器).看看测试方案,我可以看到它们中的大多数相互补充而不是替代方案.我可以想到以下这些测试的组合:

  • 控制器以TDD风格进行测试,而不是使用SpecFlow(我相信Given/When/Then类型的测试应该应用于更高的端到端级别;它们应该为各个组件提供良好的代码覆盖;
  • 在开发会话期间运行集成测试时,MvcIntegrationTestFramework很有用,这些测试也是每日构建的一部分;
  • 虽然基于Selenium的测试是自动化的,但它们很慢并且主要是在QA会话期间启动,以快速验证页面和站点工作流程中没有破坏的逻辑;
  • 提示测试仪确认结果有效性时的手动验收测试主要是验证页面外观.

如果您在Web开发中使用SpecFlow,Cucumber或其他BDD验收测试框架,请与您分享您在不同测试类型之间进行选择的实践.

提前致谢.

asp.net-mvc bdd acceptance-testing specflow

7
推荐指数
1
解决办法
1810
查看次数

如何提高SpecFlow/Gherkin步骤之间的可重用性?

我想我完全理解SpecFlow背后的概念和想法,但即使阅读了Secret Ninja Cucumber Scrolls,The Cucumber Book,并且经历了各种论坛,我仍然不确定可重用性的途径.

我们的方案已经符合各种指南

  • 自我解释
  • 必须具有可理解的目的(使其与其他方案不同的原因)
  • 很独特
  • 表示垂直功能切片
  • 使用无所不在的语言
  • 从利益相关者的角度撰写
  • 关于业务功能,而不是软件设计
  • 由Epics组成
  • 不是测试脚本
  • 让其他人阅读它们以查看方案是否正确
  • 不引用UI元素
  • 代表关键的例子
  • 非技术
  • 精确且可测试
  • 尽可能重复
  • '给定'代表国家,而不是行动
  • '何时'代表行动
  • '然后'应代表一个明显的变化,而不是一些内部事件

我们的步骤必须遵守以下准则(一些特定于SpecFlow):

  • 使用无所不在的语言
  • 不引用UI元素
  • 不应该合并
  • 所有功能都应该是可重用的和全局的
  • 不应该链接到特定功能
  • 由实体,实体组或域概念分组
  • 不要创建在步骤定义文件中重用逻辑的步骤
  • 仔细考虑步骤所属的步骤文件
  • 不要在阶段之间重复使用步骤
  • 必须避免步骤中的文字字符串,但如果需要,请使用单引号
  • 切勿将多个[Given],[When]或[Then]属性应用于step方法
  • 根据它们代表的阶段订购步骤
  • 如果它对场景不重要,那么更重要的是不要提及它

但即使我们使用正则表达式占位符,我们仍然会得到相同步骤的大量变体.特别是如果某些事情不重要,你就不应该提到这些变化的规则.是的,在内部这些步骤重复使用,但不在场景中.

考虑例如以下场景:

Feature: Signing where both persons are physically available

@Smoke
Scenario: Show remaining time to sign based on previous signature
  Given a draft proposal
  And the first signature has been set
  When I try to set …
Run Code Online (Sandbox Code Playgroud)

bdd acceptance-testing cucumber specflow gherkin

7
推荐指数
1
解决办法
3743
查看次数

系统测试与验收测试 - 测试用例的差异

我对系统测试和验收测试之间的真正区别感到困惑.当我搜索这个主题时,答案不同,我没有看到测试用例如何大不相同.

事实我发现:

系统测试在整个系统上进行,由供应商完成.系统测试是端到端测试,您可以根据需求规范(功能和非功能)测试系统中的完整流(从登录到注销).

验收测试由客户完成,以验证其是否满足客户需求.这也是完整的流程,并且基于需求规范.然而,构建的系统是根据需求规范设计的,并且外观/可用性通常已经在开发周期的早期阶段被接受.如果系统满足要求规范,则客户不应该说"这不是我们想要的,重做这个和那个",除非合同允许这样做并且客户每小时付费.

所以,我的问题基本上是,这两个测试阶段的测试用例将如何不同?它们都是端到端测试,并专注于它是一个功能系统,它满足规范,其程度也是业务需求(因为它是他们订购的).似乎系统测试中的测试用例可以在验收测试中重复使用,因为它们都可以完成整个流程?

c# java testing acceptance-testing system-testing

7
推荐指数
2
解决办法
8830
查看次数

NightwatchJS .elements返回字符串而不是对象

我正在使用夜视仪并尝试迭代元素列表.但是,当我没有获得对象或元素时,我得到了一个字符串数组.

browser.elements("css selector", ele, function(r){
    browser.perform(function(){
      console.log("LIST", r);
    })
  })
Run Code Online (Sandbox Code Playgroud)

返回

LIST { sessionId: 'b273b874-c084-4d17-8bbe-a911a170ef25',
  status: 0,
  state: 'success',
  value:
   [ { ELEMENT: '6' },
     { ELEMENT: '7' },
     { ELEMENT: '8' },
     { ELEMENT: '9' },
     { ELEMENT: '10' },
     { ELEMENT: '11' } ],
  class: 'org.openqa.selenium.remote.Response',
  hCode: 995684858 }
Run Code Online (Sandbox Code Playgroud)

value应该返回webElements权的对象?

提前致谢

selenium acceptance-testing ghostdriver nightwatch.js

7
推荐指数
1
解决办法
4996
查看次数

如何为异步微服务创建验收测试

如果我有微服务,它应该创建用户,但由于用户创建很复杂,它使用队列,用户实际上是由消费者创建的,端点只接受请求并返回正常或失败.

如何为此验收标准创建验收测试:
给定:想要注册的用户
何时:请求api 创建用户
然后:创建用户并为新用户设置托管环境_id

为此,我必须等待环境实际设置,这需要30秒.如果我在我的测试中实现睡眠,那么我点击反模式等待,看看如何正确测试它而不失败最佳实践?

php java automated-tests acceptance-testing microservices

7
推荐指数
1
解决办法
271
查看次数