对于不是优秀程序员的测试人员来说,什么是优秀的编程语言?

时间:2010-05-13 16:37:44

标签: c++ programming-languages automated-tests

我们希望创建一些由测试人员创建和维护的简单自动化测试。现在我们有一个可以使用任何语言编写代码的测试人员,但将来我们可能希望任何编程知识有限的测试人员能够添加或修改测试。

对于那些不是优秀程序员或程序员的测试人员来说,什么是优秀的编程语言?

有人建议LUA,但我调查了LUA,另一种语言可能会更复杂。

优选地,语言将被解释而不被编译。让我知道你的想法。

更新:C和C ++在幕后。没有人真的想成为一名程序员......如果他们能够处理这项任务,那么他们可能会继续努力。

更新2:我是一名软件工程师,恰好是一名测试员。我对整个生命周期都非常了解......包括开发代码,所以对我来说,我可以使用任何语言,但我正在考虑其他测试人员,他们不像我那样了解编程知识。

更新3:语言需要能够轻松调用C ++代码。

8 个答案:

答案 0 :(得分:5)

根据您可以使用的测试内容,您甚至可能不需要语言 测试建模工具,如CubicTest:http://cubictest.seleniumhq.org/

强烈建议您查看是否正在使用Web应用程序。

我们的QA团队取得了巨大的成功。

否则,我会建议您在问题域中使用通用语言 特定于域的语言。 DSL可能实际上是GPL的一个子集(例如Rake for Ruby),因此请仔细阅读。

如果您找不到现有的DSL,那么:

  • 使用 Ruby Scheme 为您的测试人员创建DSL 。这两种语言是 最容易创建领域特定语言。

  • Python 如果所有其他方法都失败了,他们需要一个GPL而不是Python是迄今为止学习恕我直言的最简单的语言。

编辑 - 根据您的更新要求,Python可能是最合适的。我发现使用Python CType调用C或C ++非常容易。但是我确信Ruby也有同样的好处。

答案 1 :(得分:4)

我总是推荐Python。

人们总是认为我疯了,但这是向人们展示最简单,最灵活的方式。而且你总是可以设计某种类型的“测试”框架,并且只将它们暴露给它的一小部分。

你可以随时将它们引用到:

alt text http://images.barnesandnoble.com/images/16900000/16904769.JPG

答案 2 :(得分:2)

我认为在实际选择语言之前,我们应该更准确地定义您正在寻找的内容。

  • 收集垃圾,因为我们不希望人们必须了解内存管理!!
  • 周围有很多模块/库,以免重新发明轮子
  • 最好提出已经存在的(并经过测试的)单元测试框架
  • 模块/库的良好文档
  • 最好是脚本语言,因为必须快速修改/运行测试
  • 与C / C ++轻松交互,但开发人员必须提供界面

而且,也许最重要的是:

  • 清晰且“类似英语”的语法,以便它(至少)可被非技术人员阅读

根据此列表,我建议 Python

  • 它可能是最接近传统英语/算法表达式的编程语言(达到临界质量)。它肯定是那些标点符号/奇怪符号最少的人之一,会扼杀非程序员
  • 它立即出现了如此多的模块,以至于您不太可能很快就需要挖掘更多...包含unittest模块
  • documentation非常好,通常用例子说明
  • 将它与C
  • 连接起来非常简单
  • 您甚至可以使用JPython从Java运行Python脚本;)

我们有一个内部软件用于我们的非回归测试。虽然它是用Java编程的(可能是GUI部分和Windows / Unix可移植性要求),但Python已经被选为非回归测试本身使用的语言。

这主要由我们的QA人员使用,即使初学者通常也很容易接受,即使他们根本没有任何编程背景。

注意:我对LUA没有任何实际经验,因此我无法在Python或LUA之间进行选择。但是,同时使用Python和Ruby,我必须说我发现Python更具可读性(循环结构/标点符号)。只要确保不要拿起Perl;)

答案 3 :(得分:1)

取决于你想要的东西,但是对于我的钱,Ruby可能是最容易理解的语言。

此外,如果您正在处理网络内容,那么Watir会为您提供大量测试功能。

答案 4 :(得分:1)

如果您的目标是成为程序员,我建议您使用您正在测试的系统的语言。

经验将使您成为更好的程序员,而知识只会让您成为更好的测试人员。

答案 5 :(得分:1)

Python是一种非常简单且有用的语言。有些甚至将它与写伪代码进行比较。它还带有自己的unit testing framework

编辑:它还带有C API

答案 6 :(得分:0)

我认为更好的问题可能是你计划用所创建的程序做什么。我已经完成了Java,html,css,php,mysql,vb,C#等等。在所有这些中,fundementals保持不变。从语言到语言,你总是拥有相同类型的逻辑。如果ELSE语句,for循环等等。但是如果你没有计划创建自加载程序,那么你会选择那些不会那样做的东西。

Persoanlly Java很难,但允许很多可移植性。不要只选择最简单的方法,因为将来可能无法对它做任何事情。

编辑*

如果你仍然感兴趣,java有能力调用C ++,但不是没有它的问题。 Link这个链接看看打电话,但如果你只是希望展示入门编程,可能会有点过分参与。

答案 7 :(得分:0)

好的,正如我理解这个问题一样,我怎样才能让非程序员为用c ++编写的应用程序编写自动化测试?因此,在这种情况下,我建议您查看FitFitNesse

Fit基本上是基于 I 整合 T esting的 F ramework的表格。这个想法是你将灯具挂在要测试的代码中,然后使用不同的方式以不同的方式控制这些灯具,或者在FitNesse简单的wiki标记的情况下使用它来创建表格。

这样做的好处是根本不涉及任何编程语言。他们只需要知道你暴露了什么样的灯具以及它们的正确用法。

这样做的缺点是,一开始可能难以绘制出您需要/想要进行测试的灯具。此外,它通常比使用单元测试框架更加维护,其中测试都只是在代码中。