我与之共事的是.NET程序员,他们还不完全了解BDD / TDD。我是主要的网页设计师,但是在过去的几个月中,我还被任命为测试人员(是的,我们是一家小公司)。

我想开始合并一些自动化测试,经过一番研究,我更着迷于Watir / Cucumber和其他基于Ruby的工具。

现在,我仅对GUI和某些权限进行测试(例如,如果我以用户身份登录,确保我看不到管理员看到的内容,等等),所以我不会因为使用的语言而出现任何冲突。另外,Ruby感觉比C#/。NET更容易学习。

但是我想知道是否缺少任何内容,以及学习基于.NET的内容是否会更容易测试工具?

评论

非常感谢大家的帮助!现在,我对应该做什么有了更好的了解,我一定会与开发团队讨论此事,并为我们所有人制定出最佳解决方案。非常感谢:)

你知道,我只有在电影真的发生坏事之前听到电影中的“可能出问题的地方” ...

有什么问题吗?您将了解到您喜欢自动化测试,并且由于使用动态类型语言的生产率更高,因此您希望将工作切换到他们使用Ruby或Python开发的地方,以便您可以向现场专家学习新技能。

#1 楼

我同意,一般而言,该语言不会有任何影响,但有以下警告:由于该产品使用.Net进行编码,因此您可能会查看Microsoft随VS的测试器版本附带的最新测试工具。主要优点是可以在TFS中管理测试和测试文档,随着时间的流逝,这样做可能会有所帮助。仅存在于一个人的机器上的测试和测试文档是非常脆弱的东西。

#2 楼

如果您是唯一的测试人员,并且可能会持续一段时间,那么选择您个人喜欢的任何工具都可能无关紧要。

但是如果期望其他程序员会有助于测试自动化,您还应该考虑他们的需求和偏好。

然后,当您的公司发展足够时,您可以聘请一些专用的测试人员,他们无论如何都会做出自己的测试自动化选择。

#3 楼

我强烈建议在自动化测试和产品代码之间删除尽可能多的抽象层。

目前,Ruby或其他脚本语言似乎还不错,但是如果您的测试自动化扩展到了模拟GUI元素之外,您可能会发现C#可能是一个更好的选择,首先有以下几个原因:


性能,C#比许多脚本语言具有更高的性能。现在可能似乎并不重要,但是随着测试库的增长,运行套件所需的时间可能很重要。
通过协作,开发人员可以查看和运行自动化测试。能够“插入”开发单元测试或其他测试工具使您能够将测试推向上游
功能,用C#编写测试自动化程序可以使用反射来访问部分产品代码,从而提高整体测试效率并减少误报。

您可能还想看看这里。

一个最后的想法...与您的开发团队交谈并获取他们的意见。也许Ruby(或其他语言)足以满足公司的需求。另外,请考虑公司的潜在未来增长以及在可预见的未来需求可能会如何变化。

评论


您忘记了最重要的一点:程序员的生产力。根据我的经验,在使用动态类型的语言时,生产率大约是像C#这样的静态类型的语言的5倍。灵活地创建数据文字以作为参数传递的能力在脚本语言中要好得多。所执行代码的性能几乎无关紧要-所有测试大概都将调用相同的库。

–Peter M.-代表莫妮卡(Monica)
14年7月18日在17:33



#4 楼

我的答案是最喜欢的:取决于情况。如果您正在寻找黑盒回归,那么该语言并不重要,尽管它确实有助于让其他程序员了解自动化测试的作用,他们可以帮助编写或调试它。如果要构建单元测试,最好使用与代码相同的语言。

此外,很大程度上取决于测试的目的。如果您的GUI快速发展,那么您可能更愿意进行数据处理的幕后验证。如果GUI非常重要,那么快速进行可视化是否会更快,还是需要对显示的哪些组件进行大量验证?

我建议您不要迷上使用的语言-首先确定应用程序中最需要自动测试的方面,然后为您提供最有效的工具来执行该工作测试。可以学习语言,无论是脚本语言,伪英语测试定义语言还是经典编程语言(或与此相关的其他任何一种语言)。

我希望能帮助您找到一个很好的起点。

#5 楼

如果这是一家很小的公司,并且您无权使用特定的工具集,那么我会选择您喜欢的任何一种,以及对您更容易学习和感兴趣的东西。他们要求您以最佳的方式测试软件。可用的工具,完全取决于您。

话虽如此,如果您不希望永远维护测试套件,则可以考虑使用开发团队经验丰富的工具。人们希望他们足够熟练,可以在两者之间切换,但是随着公司的发展,平台方面的问题变得更加具体。不过,这是基于我的经验。

此外,如果您主要是Mac或Unix用户(具有网络设计师的背景),那么我认为使用该工具会更轻松可以在类似Unix的操作系统中本地运行,而不必将其引入.Net体验中。

另外,随着事情的发展,您可能需要考虑如何查看测试(例如,您是否需要漂亮的图表来将产品状态馈送给高层管理人员?如果是,那么您可能想要看看支持此类功能的工具集。

#6 楼

我认为学习C#以进行测试并不比学习Ruby难。 C#具有许多语法糖,使您可以编写更少的代码。

使用C#,您可以使用WatiN(仅支持IE和FireFox)或Selenium
作为参考。

这并不取决于您选择哪种语言/平台,但是如果您在使用C#时遇到问题,可以咨询附近的开发人员。但是,如果您在使用Ruby时遇到问题,那么您会问谁?

尝试用两种语言编写多个测试。然后选择您更喜欢的语言。

评论


+1突出显示此内容,这样它就不会在其他答复中迷失,“ ...如果您在使用C#时遇到问题,可以问一个坐在您附近的开发人员。但是当您在Ruby方面遇到问题时,您会问谁? ?

–user179700
2011年9月2日,下午3:30

#7 楼

使用C#可以降低开发人员启动TDD / BDD的入门门槛。

#8 楼

继续使用相同的两种语言(KISS):


C#
英语*

使用http://specflow.org/具有gerkin风格纯文字测试。这不是花哨的,而且几乎没有错。与TeamCity等游戏配合良好,因为测试是正常的MSTest / NUnit测试组件。

我喜欢它们,因为它们阻止了我对测试的实施进行跟踪,
它们使您失望建立自己的定制测试语言的路径。 (对于这个问题域,我最完美的测试语言是什么样的?)

评论


* SpecFlow提供许多其他语言...

–松鼠
11年8月22日在22:29