相关疑难解决方法(0)

使用TDD:"自上而下"与"自下而上"

由于我是TDD新手,我目前正在开发一个小型C#控制台应用程序以便练习(因为练习很完美,对吧?).我首先简单地描述了如何组织应用程序(按类),并开始逐个开发我可以识别的所有域类(当然先测试).

最后,必须将类集成在一起以使应用程序可运行,即在Main方法中放置必要的代码,调用必要的逻辑.但是,我不知道如何以"先测试"的方式完成最后的整合步骤.

我想如果我使用"自上而下"的方法,我不会遇到这些问题.问题是:我该怎么做?我应该通过测试Main()方法开始吗?

如果有人能给我一些指示,我将非常感激.

tdd

21
推荐指数
1
解决办法
4621
查看次数

如何通过声明性验收测试捕获需求?

背景

我正在努力帮助我的团队组织一个新的移动应用项目.我们选择遵循BDD(参见BDD定义)以捕获简单的英语要求,这些要求构成了利益相关者和开发者之间针对每个用户故事的合同.

我们使用验收测试来记录每个用户故事的要求.在sprint计划之前编写验收测试.开发人员在sprint计划期间改进并添加测试.

我们将Acceptance Criteria定义为规则列表(例如:输入验证,默认值等),将Acceptance Tests定义为Cucumber场景列表.我们计划使用Calabash进行移动测试.

我认为验收标准/测试更灵活,因此更好地解决了更正式的需求文档.

我觉得我找到了一个有效的解决方案,但我想了解其他人是如何收集要求和编写验收测试的.

问题

在Cucumber社区中,有必要声明性测试步骤进行辩论.我倾向于强制要求,因为开发人员必须知道可交付用户故事的样子.

我不认为UI耦合又称脆性测试是一个问题.有一些方法可以将UI与测试分离(例如:页面对象).我也不认为有详细的步骤使非技术利益相关者难以理解(除非他们不知道如何使用网络浏览器或移动设备,但这是一个单独的问题).

我可能会挪用" 验收测试 "一词.在我的使用中,验收测试与单元测试的范围不同.我将验收测试视为高级集成测试.

这个例子

  • 作为嘉宾
  • 我想登录
  • 访问应用功能

势在必行的测试

  • 场景:有效登录
    • 鉴于我在"登录"屏幕上
    • 当我在"电子邮件"中输入"email@domain.com"时
      • 我在"密码"中输入"password1"
      • 然后我点按"登录"
    • 然后我看到"登录成功"

声明测试

  • 场景:有效登录
    • 鉴于我有一个有效的帐户
    • 然后我就可以登录了

这两者都可以覆盖相同的功能而后者更短,但它没有说我是否可以使用用户名,电子邮件或facebook/twitter/google/etc帐户登录.仅仅实际编写解决方案是不够的

问题

如何使用声明性步骤捕获要素?

bdd acceptance-testing cucumber calabash

5
推荐指数
1
解决办法
3827
查看次数

标签 统计

acceptance-testing ×1

bdd ×1

calabash ×1

cucumber ×1

tdd ×1