将旧需求迁移到BDD


11

问:将大型公司迁移到Cucumber并在需求数据库中保留至少15年的旧软件需求的最佳方法是什么?

目前正在考虑:

1)迁移一切

缺点:我们没有无限的时间/预算,我们必须继续前进才能生存,我们无法停止一切,并且GC 100%的遗留要求和遗留测试套件。

2)童子军规则

让一切都比您发现的要好。如果您触摸要求或更改要求,请编写/更新Cucumber功能。缺点:我们将有两个记录系统(黄瓜,遗留要求数据库),可能永远假设给定应用程序的某些角落很长时间都不会被触及。

3)童子军规则加

与#2相同,但是将未使用单个需求转移到Cucumber的需求放到一个未完成的场景中,并将旧需求复制/粘贴到描述部分。这样,我们(通过未决的方案)就可以得到有关Cucumber如何“发现”我们的度量,并且使我们摆脱了维护旧需求系统的需求。除了在Cucumber中可能是一团糟之外,我找不到其他缺点。

4)在这里插入您的想法。

背景:

一些迁移到Cucumber的项目具有自动化测试套件,而某些项目仅使用过手动测试。它们全部都在旧的需求数据库中维护其需求。我们之所以必须这样做是因为我们的要求是法律/法规和金融工具的复杂逻辑(风险,定价,结构等)的混合。

请记住,这是一家非常大的公司,这使解决方案更加复杂。

我们已经有一些使用Cucumber满足其“新”要求的项目。因此,我们已经试用了该技术,并且到目前为止对我们来说都是可行的。我们混合了Web和纯数据项目。

谢谢

编辑:要回答这些问题...旧版需求管理DB不会将需求连接到测试。这不是“可测试的”。如今,通过在每个项目结束时将需求链接到我们的测试用例管理系统的艰巨且易于出错的手动过程,即可将需求连接到测试。黄瓜对我们来说显然是更好的解决方案。毫无疑问。问题是,如何对具有大量重要要求而又不能因法律和其他原因而丢失的大型组织采取行动。


1
+1的问题;但在更笼统的背景下:如何从一个测试系统过渡到另一个?
Sjoerd Job Postmus '16

“旧式”需求数据库是否在检查需求匹配时自动进行?您是否需要重新编写单词要求以匹配Cucumber语法(如果是,请确保重新编写单词不会以微妙的方式修改要求)?
Sjoerd Job Postmus '16

只是出于好奇,这个需求数据库是否“可测试”?如果是,那么您可以尝试通过执行读取旧式测试并尝试为您编写黄瓜测试的程序来使该过程作为#4选项实现自动化,即使该测试不是可读的。通常不建议拥有两个真实的来源,因为可能存在不匹配的情况(两个需求来源,即数据库和黄瓜)
pietromenna

1
您写了“到目前为止,我们已经试用了该技术,并且对我们有用。”但您并未写到“它比以前的技术更好。” 那么,您是否100%确定这会有所改善?否则,最好的方法可能就是不这样做;-)
布朗

Answers:


8

当我更换房间的窗户时,我犯了把房间剥下来的错误。这是一栋老房子。房间的形状不好。在此过程的每一步中,我都遇到了问题。我手里有一根旧烟斗崩溃了。现在悬而未决的二十五磅水暖通风口掉落并撞到了厨房天花板。(幸运的是,没有人受伤,但我女友的充电手机被撞坏了。她没有被逗乐。)当我同时刷接地和不接地的电路时,我震惊了自己。裸露的古老电线穿过绝缘层。

对于每个问题,我不得不重新分配精力。我停下来解决了这个问题。然后,有时在几天后,我恢复了前进的进度。到了秋天,我放弃了。(我计划在夏末之前完成。)我只是停下来走开了。太多了 我的女友想打电话给承包商。我拒绝了,因为我已经做了很多工作。我不希望他们得到“荣耀”。(另外,我有点特别,不希望有人在我不知道的地方偷工减料。)因此,房间没有完工。

大约一年前,在新年过后,我顿悟:没有规则说我必须专门在房间里工作直到完成。没有急事。我没有做那么大的事情。相反,如果我有一点空闲时间,我可以上楼,在房间里花一两个小时……把一块石板,泥和胶带贴在墙壁上,修剪一扇门。在不知不觉中,我就完成了。我的女朋友再次爱我。我笑着睡觉。世界上一切都正确。

我认为您的困境也有相似之处。成为明智的乌龟-缓慢而稳定。“迁移所有内容”路径压力很大。它会让您举起双手走开。童子军规则将永远保留的要素遗留在后面。童子军规则Plus创建低于标准要求的条件。采取最好的方法:

  1. 如果您遇到要求,请将其移至Cucumber。
  2. 同时,设置每周迁移目标。每周做一点。不要说它是全有还是全无的主张。您可能会发现,偶尔进行的迁移工作是您已承诺进行的所有其他工作的一个很好的延期。

在您知道之前,您将完成。你的老板会爱你的。您的团队会爱上您。您会笑着入睡。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.