【发布时间】:2017-01-25 09:33:37
【问题描述】:
我在 Appium、Frank、EggPlant、Xamarin、Xcode UITesting 和 Xcode UIAutomation 上做了很多移动自动化。最近,第三方开始为 Ruby 提供 Calabash 脚本。我开始看这个选项,发现了以下文章: http://qualitytesting.tumblr.com/post/156318324159/ruby-projects
我特别被文章中的以下 cmets 所吸引:
Ruby 最大的问题是它可能被滥用。我认为在将其用作测试框架语言时,这是一个特别普遍的问题,因为许多测试人员没有接受过任何正式的编程培训,而且通常不了解面向对象的原则或可维护的架构模式。测试人员通常是根据他们的边缘案例能力而不是他们的编程能力而被雇用的,并且经常被招聘经理雇用而没有足够的编程知识来评估他们的编程能力,因此使用 Ruby 是如此危险。
还有这个部分:
Ruby 缺乏规则的麻烦在于它是一种解释型语言。在你运行它之前你真的不知道它是否有效,这很费力 - 与编译语言相比,反馈循环非常慢。即使它运行,它也不一定做任何事情。 IDE 可以帮助您并预先为您提供语法错误,但是由于对语言使用的限制如此宽松,因此滥用和意大利面条式代码的可能性是无穷无尽的。
最后:
Ruby 中没有协议/合约/承诺。无法保证您认为是字符串的 var 实际上不是数组或任何其他类型的对象。考虑到在文化上,测试人员的编程标准通常比开发人员低,而且他们的代码通常不那么认真,并且比生产环境低代码。文化可能是造成这种情况的罪魁祸首,但这仍然是一个问题。将此添加到您的企业对 UI 测试价值的任何担忧中;使用 Ruby 或 Python 是进一步破坏和贬低 UI 测试的好方法
然后文章建议坚持使用 ruby 编写脚本而不是大型项目。由于测试自动化通常会像它的大小一样成为项目,这可能是一个问题。
所以我的问题是,Ruby 是一种用于测试自动化的危险语言吗?我坚持使用更多静态类型的语言是否更安全?还是 Ruby 很好用,而这篇文章没有抓住重点?
【问题讨论】:
-
这篇文章的全部内容是,为重要项目雇用没有经验的编码员是很危险的。使用 C# 或 Java 可以很好地编译和运行测试,但仍然不能测试任何东西。
-
我认为如果你的开发人员不那么严格的话,与强类型语言相比,使用 ruby 更容易得到意大利面条代码。我的主要担心(今天早上已经阅读了更多内容)实际上是缺乏从强类型语言(使用像 xcode/ellipse/android studio 之类的 IDE)中获得的全面智能感知优势。使用页面对象模式,我喜欢能够拥有一个页面对象的实例,然后键入“点”并查看可以执行的所有操作。 Ruby IDE 能否提供此功能(Rubymine 可能提供但程度有限)?
-
* 静态类型(非强类型)
-
这篇文章只是 FUD。我已经在静态类型世界和动态世界中进行了编程,并且它们都可以正常工作如果程序员有任何好处。没有任何语言可以拯救一个糟糕的程序员。
-
我的“恐惧”是很多人似乎都有这种对动态类型语言的恐惧,例如:stackoverflow.com/questions/42934/…
标签: ruby automated-tests ui-automation calabash strong-typing