“剑走偏锋”
大型的测试工具对主流应用的支持是比较完备的,例如Java、.NET等编程语言编写的应用程序。但是对于一些相对冷门的语言或GUI库的应用程序,例如QT、TK、XView等,这些大型的测试工具就"鞭长莫及"了。而这恰恰是一些小的测试工具厂商的生存机会,例如Squish(http://www.froglogic.com)。
Squish分成了9个版本,其中一些版本声称是市面上唯一专业支持某种类型的应用程序的自动化测试。
(1)Squish for Qt
Squish for Qt版本支持测试基于Trolltech的Qt界面库,能识别出所有标准的Qt widget,支持Qt 2.x/3.x 和 Qt 4.x widgets ,例如:QListView、QListBox、Q*ItemView、QMenu等。对于从Qt widget继承而来的个性化控件也能很好地支持。
Qt是由挪威的Trolltech公司出品的一个跨平台的C++图形用户界面库。基本上,Qt同X Window上的Motif、Openwin、GTK等图形界面库和Windows平台上的MFC、OWL、VCL、ATL是同类型的东西,但是Qt具有广泛的跨平台能力,支持win95、win98、winNT、Linux、Solaris、SunOS、HP-UX、Digital Unix、Irix、FreeBSD、AIX、OS390等等。
(2)Squish for Java
Squish for Java版本支持基于SWT、RCP/Eclipse、Swing和AWT的JAVA GUI应用程序的测试。而且用Squish for Java写的测试脚本是平台无关的,这意味着你在windows创建的测试可以不经修改就能直接在Linux、Mac上运行。
(3)Squish for Web
Squish for Web版本支持基于HTML的Web应用程序、WEB2.0(AJAX)应用程序的测试。与其他基于WEB的测试工具不同的是,Squish for Web支持在各种版本的浏览器上录制和运行测试,包括IE、Mozilla、Firefox、Safari和KDE的Konqueror,支持Windows、Linux、Unix和Mac OS X上的浏览器版本。同样,用Squish for Web编写的测试也是平台无关的。
(4)Squish for Mac
Squish for Mac版本支持测试Apple Mac OS X系统上的native Carbon和Cocoa GUI应用程序,是市面上唯一一款Mac OS X应用程序的GUI测试工具。并且它的测试可以录制成JavaScript、Python、Perl或Tcl脚本,然后用这些脚本语言来编写测试。
(5)Squish for Tk
Squish for Tk版本支持测试基于Tk库的应用程序。Squish for Tk是市面上唯一一款支持Tk的专业的GUI测试工具,能识别所有标准Tk控件,甚至包括复杂的控件包,例如Bwidgets、BLT等。
如果与Squish for Qt整合的话,可以测试Qt和Tk混合的应用程序。
(6)Squish for 4Js
Squish for 4Js版本支持测试Four J的Genero 客户端(Qt)和Genero Web客户端的应用程序。Squish for 4Js能识别出所有标准的Genero客户端控件,是市面上唯一一款支持Four J的Genero应用程序的GUI测试工具。
(7)Squish for XView
Squish for XView版本支持测试基于Sun的XView的应用程序,Squish for XView能识别所有标准的XView控件。
XView是Sun在1988年引入的widget,其源代码于90年代早期开源,是第一个开源的专业级X Window系统库,后来被Sun遗弃了,转而使用Motif、GTK+。
(8)Squish for KDE
Squish for KDE版本是Squish for Qt的一个特殊版本,不需要花钱购买。Squish for KDE支持对开源的或免费的KDE应用程序进行GUI自动化测试。
(9)Squish Educational
最后,Squish 还提供了一个Squish Educational版本给大学和其他教育机构使用,这个版本包含Squish的所有版本(Qt、web、Tk、XView、4JS)。