秋阳的软件测试专栏

   :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  65 随笔 :: 0 文章 :: 127 评论 :: 0 Trackbacks

最近一段时间,在Linux/Unix上做的工作比较多,shell脚本在我的工作中也出现的越来越多。
  Unix Shell,包括其它的脚本语言,Perl,Python,Tcl,由于工作的关系,需要掌握一到两门,同时,也是因为对它们发生了很大的兴趣,我能感觉到它以后对我工作上的帮助。

  首先选择Tcl,因为它和我的测试工作关系密切,并且已经成为自动测试中事实上的标准。Tcl在通讯领域的自动测试中应用的比较多,因为在这些测试中,往往需要做很多设置操作。有一个网站——http://www.tclchina.com/,sunny_ring建立的。上面有一些Tcl语言的资源,可以到这里查找一些资料。

    其次就是Python,这个语言我非常的喜欢。我看过一些Python的代码,也写过一些简单的小工具,感觉Python非常的清晰、简洁,象读文字一样畅快。如果以后需要为工作或其它的事情写一些程序,我打算就用Python。
      China Linux 的Python论坛:
      http://www.linuxforum.net/forum/postlist.php?Cat=&Board=python&page=0&view=collapsed&sb=5&o=
      Swaroop的Python语言简明教程:
      http://www.byteofpython.info/language/chinese/index.html
      Python中文站:
      http://www.mypython.net/
      啄木鸟:
      http://www.woodpecker.org.cn/

  另外,Perl也需要了解一些,因为它太普遍了,类C的,学习起来也会比较容易(不过就Perl语言本身来说,我真是不太喜欢)。IBM的developerworks上有很多关于Perl的资料。

  Unix Shell当然要掌握,这个不必抽出太多单门时间来学习,因为要在Linux/UNIX上工作。IBM的developerworks上同样也有很多shell编程的资料。


附录是辜彬写的一篇文章,简单介绍了一下脚本语言,主要是Tcl。
附录:
脚本语言简介
辜彬  2004-9-9

1.1、测试脚本语言的定义

   测试脚本语言(test scripting language是脚本语言的一种,准确地讲是脚本语言在测试领域地一个分支,是自动化软件测试设计的基础。要理解测试脚本语言就不能不对脚本语言进行一些了解。

   脚本语言(scripting language)就是在执行时以解释(interpreting) 为主的编程语言,比如常见的perl,python,php,tcl,guile,ruby以及UNIX系统的各种shell都是脚本语言,它的执行效率比不上编译后再执行的程序,如以C, C++, Java, Pascal等语言编写的程序。

   脚本语言应用到测试领域就可以称之为测试脚本语言,以上提到的脚本语言都可以作为测试脚本语言来使用,特别是tcl语言更是被业界称为事实上的测试脚本语言标准。随着软件测试的发展,各种测试工具也相继推出,为了保护知识产权或者说是保护商业秘密,这些商业化的软件大多使用自己的测试脚本语言,比如MI的TSL语言等。

   测试脚本技术大致可以分为以下几类:

l         线性脚本:是录制手工执行的测试实力得到的脚本。这种脚本包括所有的击键、功能键、箭头、控制测试软件的控制键及输入数据的数字键。

l         结构化脚本:类似于结构化程序设计,结构化脚本中含有控制脚本设计的指令。这些指令或为控制结构或为调用结构。

l         共享脚本:脚本可能被多个测试事例使用。

l         数据驱动脚本技术:将测试输入存储在独立的文件中,而不是存储在脚本中。

l         关键字驱动脚本:较复杂的数据驱动技术的逻辑扩展。

1.2、脚本语言的发展历史

 这里我们以tcl语言的发展来回顾一下脚本语言的发展历史,商业化的测试脚本语言一般就是随着商业测试软件的发展来发展的,在此不作详细介绍。

  Tcl/Tk 的发明人 John Ousterhout 教授在八十年代初是伯克利大学的教授。在其教学过程中,他发现在集成电路 CAD 设计中,很多时间是花在编程建立测试环境上。并且,环境一旦发生了变化,就要重新修改代码以适应新环境。这种费力而又低效的方法,迫使 Ousterhout 教授力图寻找一种新的编程语言,它即要有好的代码可重用性,又要简单易学,这样就促成了 Tcl (Tool Command Language) 语言的产生。

  Tcl 最初的构想是希望把编程按照基于组件的方法 (component approach),即与其为单个的应用程序编写成百上千行的程序代码,不如寻找一种方法将程序分割成一个个小的, 具备一定完整功能的,可重复使用的组件。这些小的组件小到可以基本满足一些独立的应用程序的需求,其它部分可在这些小的组件功能基础上生成。不同的组件有不同的功能,用于不同的目的,并可为其它的应用程序所利用。当然, 这种语言还要有良好的扩展性, 以便用户为其增添新的功能模块。最后,需要用一种强的,灵活的胶水把这些组件合在一起, 使各个组件之间可互相通信,协同工作。程序设计有如拼图游戏一样,这种设计思想与后来的 Java 不谋而合。终于在 1988 年的春天, 这种强大灵活的胶水 - Tcl 语言被发明出来了。

  到了80年代图形用户界面逐渐流行的时候,Ousterhout 教授要想使基于组件的设计能够实现,需要有一个强大的有弹性的控件整合工具。这些想法在一开始考虑做Tcl的时候就产生了,Ousterhout 教授觉得像Tcl这样的嵌入式命令语言作为脚本语言对整合部件会很有用。Ousterhout 教授决定创建一些作为Tcl扩展的GUI部件并且使用Tcl来把这些部件整合到图形用户界面中,借此实践一下这个理论。这个扩展就成为了Tk。

  Tcl在创始初期都是以开放源码的方式发布的,到了90年代初,Tcl语言得到了广泛的发展,并得到了大型厂商的支持,如SUN公司,并逐步形成了tcl社区,这样就逐渐有了商业赢利产品的开发,同时Tcl将会继续开发开放源代码的产品,至此TCL语言进入了两种不同的发展轨道,同时也促进了tcl语言的发展和应用。

1.3、脚本语言的特点

脚本语言的特点,通过下面tcl/tk与C++和java的比较就可见一斑。

C++,Tcl/Tk 和 Java 的性能比较表

 

C++

Tcl/Tk

Java

运行程序速度

C++ 可比

调试难易程度

复杂
每次修改完代码需重新编译

简单
修改完代码可直接运行

比较简单
修改完代码需重新编译成 ByteCode, 而且编译速度很慢

程序代码复杂程度

复杂

简明

比较简单

系统资源占用情况

200MB HD
32MB Memory

3MB HD
4MB Memory

20MB HD
4MB Memory

代码可维护性

一般

较好

可移植性

较好

非常好

学习难度

复杂,难掌握

简单易学

有一定难度,需要有面向对象程序设计的概念

1.4、商业测试脚本语言简介

  商业测试软件

1.5、脚本语言的基本工作原理

脚本语言的基本工作原理可以用下面的图示来说明

1.jpg



脚本解释器是脚本语言工作的核心,所有具体指令或是函数的执行都由它来完成,扩展项实现了与其它语言的接口,使脚本语言运行C/C++,java等函数成为可能;同时在用户具体应用中可以定义命令和函数,应用更加灵活;作为解释器它也提供了基本的内建指令或是函数,不同厂商、版本的解释器提供的内建命令(函数)可能不同。

 


posted on 2005-07-14 16:22 qiuyangzh 阅读(3403) 评论(0)  编辑 收藏 引用 所属分类: 07 开发技术
只有注册用户登录后才能发表评论。