`
kuwoleft
  • 浏览: 1086329 次
文章分类
社区版块
存档分类
最新评论

我们需要真正的脚本语言

 
阅读更多
我们需要真正的脚本语言
陈能技
2007-9-8
原文:Hey Vendors, Give Us Real Scripting Languages - Bret Pettichord
大部分测试工具绑定了工具生产商指定的特定脚本语言,我们叫它厂商语言。这些语言很难学,实现得很弱,最重要的是,它们不鼓励测试员与开发人员之间的合作。测试员应该得到全特性的、标准的测试开发语言。为什么呢?
现在市面上的大部分测试工具,我们在使用时都要使用工具的脚本语言。令我最烦恼的是,为了使用他们的工具,我必须学习指定的脚本语言。大部分工具有录制功能,为你产生一些脚本,但是不可避免地,你要对脚本进行修改,自己编写脚本。这样的话,你就必须要学习额外的语言-厂商语言-这个语言只是在这个特定的工具上能使用!
破坏合作
因为厂商语言是特定的语言,开发人员对其知之甚少并且也不愿意学习它。我经常鼓励测试员和开发人员在自动化项目中一起合作。这是高效的合作方式。但是厂商语言挡在中间。它们把测试员和开发人员分开,孤立在指定的工具语言上。减少了共享、合作和改进的机会。
要把测试员和开发人员整合在测试过程中,我们已经有很多困难了。现在又多了个厂商语言的学习问题。你如果叫一个开发人员学习VB?没问题,因为他们毕竟可以在将来有使用得上的机会。你如果叫一个开发人员学习一个指定的语言,这个语言只能在这个工具上使用?你做梦吧!你已经很难让开发人员把注意力放在测试上了,现在又增加了一个困难。
为什么要把钱花在一个会破坏测试员与开发人员之间的合作关系的工具上?
方言
有很多这种厂商脚本的方言。有些是类C语言。意味着什么?意味着写出来的代码想C语言的代码,但是没有指针,所以你不能使用在C课程和书本上学习到的任何复杂的数据结构。C作为脚本语言来说是很差的。它是编译的,但是测试脚本语言是解释执行的。这是为什么类C语言不支持指针。
其它的有些使用类VB语言的方言。如果你了解VB,则代码会看起来很眼熟,但是你不能使用VB的标准库。而且,你在VB中学到的东西未必被应用在厂商脚本语言上。
也有一些工具使用类似面向对象的厂商脚本语言。面向对象是好的,但是你会发现对一个类的修改不会继承到它的子类。什么?因为厂商脚本语言认为这样更方便测试的管理安排。这样是否真的能帮助测试员还有待讨论,但是测试员真正需要的不是为测试特定设计的语言。他们应该得到标准的语言实现,这样才会更好地帮助他们的测试工作。
一些更新的测试工具现在开始使用真正的脚本语言,像JavaScript或VB。我希望这种趋势能继续下去。而且,如果一些旧的工具能重新设计以支持标准语言则会更好。标准语言有正式的规范,会帮助你的测试组更好地用在测试上。
重复地发明轮子
最近有些文章在描述怎样使用厂商脚本添加堆栈和队列,这其实是厂商脚本的落后体现。厂商语言使自动化测试人员浪费很多时间和精力在重新发明轮子。堆栈和队列在标准语言上已经得到很好的实现。
我自己也有同感。我必须为不同的厂商语言创建库来支持sting操作、日期计算、计算排列组合等。有些厂商语言也有这样的库,但是标准语言的库会更大、更全面,也更加健壮。
回到以前
很多非测试工具也嵌入了厂商语言。使其更难使用。John Ousterhout发明了TCLTool Control Language),使得跟C的集成更容易,并发布到公共领域。TCL现在被用在一些公共领域的测试工具上。
Ousterhout区分了系统编程语言(像Pascal、C、C++、Java等)和脚本语言(像Perl、Python、Rexx、TCL、VB、Unix shells等)。系统编程语言在从头开始构建方面和性能方面会更好点。而脚本语言在重用代码和快速开发方面有优势,是理想的自动化测试语言。
有些测试工具的厂商语言是在OusterhoutTCL出现之前,当时Perl也还不成熟。但是那是那时候,现在则有了很多选择。
让厂商脚本语言退休
因为有了很多的选择,所以厂商脚本语言应该退休了。如果出现异常,没有什么第三方的书可以使用,只能参考和依赖厂商提供的书或帮助文档,这些文档未必会坦白告诉你厂商脚本语言的缺点。语言的课程也很难随工具附上,很昂贵,可能还要你亲自去学习。
测试自动化会很难,如果我们需要熟悉不同工具的不同语言的话。开发人员不会忍受有这么多限制和缺点的编程语言,我们也不应该忍受。
进一步学习请参考:
Scripting: Higher Level Programming for the 21st Century, John K. Ousterhout, IEEE Computer, March 1998.
Breaking the Language Barrier, Christopher Meisenzahl and Ferry Firmansjah, STQE magazine, Nov 2000.
分享到:
评论

相关推荐

    网页开发脚本语言php

    PHP(Hypertext Preprocessor)是一种广泛使用的开源脚本语言,特别适合于Web开发,可以无缝嵌入HTML中。它的起源可以追溯到1995年,由Rasmus Lerdorf创建,起初是一个用于追踪主页访问的Perl脚本。随着时间的发展,...

    系统学习TCL脚本入门教程

    它最初设计用于快速开发简单的命令行工具,但随着其发展,TCL已经成为一种功能全面的脚本语言,能够处理复杂的任务,甚至可以与C++或Java等编译型语言进行集成。 运行TCL脚本需要一个TCL解释器,如ActiveTCL,它可...

    XML在脚本语言PHP中的应用.pdf

    PHP是一种常见的动态网页制作者具工具,是专为Web设计的优秀的服务器端脚本语言,只需要很少的编程知识就可以使用PHP建立一个真正交互的Web站点。PHP遵守GNU公共许可,可以不受限制地获得源码,甚至可以从中加进自己...

    geist:geist脚本运行者将golang变成一种脚本语言

    大多数脚本语言的问题在于它们实际上并不是出色的编程语言。 但是由于它们方便,易于编写且没有编译开销,因此它们会被使用。 很多。 那不是好事。 因为:通常,脚本会长大并变成一个泥泞的球:真正难以维护的...

    多功能脚本虚拟机

    function 形式,对原有的 sub 形式不再支持 2007-6-2 VER 1.3.0.63 增强了同一脚本程序的多脚本语言功能,真正实现了同一脚本里使用多种语言 增加例程 javascript学习.sps 演示了VBS调用JS的...

    脚本化Java

    尽管如此,JavaScript也不断发展,并且现在能够真正用来脚本化Java。Java6认识到这一事实,并且配备了一个绑定的JavaScript解释器,一般脚本化的功能能够很容易地嵌入到任何Java应用程序中。另外,一些JavaScript...

    AutoHotkey(热键脚本语言) v1.1.30.00 免费版.zip

    AutoHotkey是一款专业的热键Windows脚本语言。软件最大的特色是用户使用软件可以实现为游戏操纵杆和鼠标创建的热键。软件几乎可以实现所有的东西的自动化热键设置,包括发送击键和鼠标点击,启动程序/文件;剪贴板,...

    高级 Bash 脚本编程指南(英文版)

    通过学习这本书,读者不仅能掌握Bash脚本语言,还能深入了解UNIX/Linux系统的运作机制,从而更好地利用命令行环境进行自动化工作和系统管理。对于想要提升shell脚本能力的IT从业者来说,这是一份宝贵的资源。

    主流编程语言的选择和学习杂谈

    Java 语言分为 JavaSE(标准版)、JavaEE(企业版)、JavaME(微型版),目前还有正在发展的 JavaFX(一种富 Internet 应用程序开发的脚本语言)。Java 语言的运行环境是 JRE,开发环境是 JDK,均可以在其官方站点...

    Edgame make脚本游戏大师v1.3(无例程)

    1.使用轻型脚本语言(Lua),扩展了中文支持,大量内置扩展函数库,降低游戏制作门槛. 2.方便外接各种插件,支持纯中文易语言DLL,搭配各种第三方扩展类,模块,插件,工具更加高效。 3.脚本速度优秀,可制作各种类型2D游戏,...

    改名“脚本魔术师”

    增强了同一脚本程序的多脚本语言功能,真正实现了同一脚本里使用多种语言 2.增加例程 javascript学习.sps 演示了VBS调用JS的函数并得到返回值 3.修正了多语言脚本的Code代码段读取分析问题 2007-6-1 ...

    精通ModelSim脚本

    【精通ModelSim脚本】是针对电子设计自动化(EDA)领域中的重要仿真工具ModelSim进行深入学习的内容。ModelSim是一款广泛使用的硬件描述语言(HDL...不断实践和探索,将使你真正精通ModelSim脚本,提升设计验证的效率。

    脚本魔术师

    增强了同一脚本程序的多脚本语言功能,真正实现了同一脚本里使用多种语言 2.增加例程 javascript学习.sps 演示了VBS调用JS的函数并得到返回值 3.修正了多语言脚本的Code代码段读取分析问题 2007-6-1 ...

    shell脚本教程详细讲解.ppt

    shell脚本教程详细讲解是指在Linux系统中使用shell脚本语言来编写脚本程序,以提高用户操作和管理员进行系统管理的效率。通常情况下,shell脚本的执行方式有两种:一是用sh命令执行脚本文件,二是给脚本文件添加执行...

    Javascript语言精粹

    作者从语法、对象、函数、继承、数组、正则表达式、方法、样式和优美的特性这9 个方面来呈现这门语言真正的精华部分,通过它们完全可以构建出优雅高效的代码。作者还通过附录列出了这门语言的毒瘤和糟粕部分,且告诉...

    pylint 最新的pithon脚本语言的lint公具

    Pylint 是一个 Python 工具,除了平常代码分析工具的作用之外,它提供了更多的功能:如检查一行代码的长度,变量名是否符合命名标准,一个声明过的接口是否被真正实现等等。 Pylint 的一个很大的好处是它的高可配置...

    tinyscript:一种真正简单的脚本语言,用于演示如何进行词法分析,解析,生成字节码并执行它

    在此脚本语言中只有一个语句,即print语句,该语句可以选择以双引号(“)分隔的字符串进行打印。通过这种简单的语法,该脚本语言的通用功能受到了限制,但它确实提供了如何以构建语言的方式将一些通用部分组合在...

    trout-script:用JavaScript编写的经过编译的强类型脚本语言

    鳟鱼脚本用javascript编写的经过编译的强类型脚本语言。 这是我第一次(真正)尝试编写一种完整的编程语言。 在此过程中,我学到了很多东西,最终将使它变得稳定并清理所有内容。特征严格类型的变量Javascript中的...

    JScript 8.0 语言参考手册

    JScript 8.0 是一种有着广泛应用的现代脚本语言。它是一种真正面向对象的语言,不过仍保留其“脚本”特色。JScript 8.0 保持与 JScript 以前版本的完全向后兼容性,同时包含了强大的新功能并提供了对公共语言运行库...

    linus 脚本时代

    shell是如此地重要,但令人惊奇的是,介绍shell的书没有真正令人满意的。所幸的是,我 看到了这本被人称为abs的书,这本书介绍了bash大量的细节和广阔的范围,我遇到的绝 大部分的技术问题--无论是我忘记的或是...

Global site tag (gtag.js) - Google Analytics