用户界面测试的颠覆性技术-Sikuli

Sikuli绝对是一种颠覆性的技术,至少对于GUI的测试技术来说,是质的突破,比如它彻底解决了在这之前GUI自动化测试工具上的关键点-对象识别。

技术来自于从麻省理工学院计算机和艺术智能实验室的一个用户界面设计小组的研究项目,Sikuli脚本和Sikuli开发平台基于MIT License发布,是开源的。

什么是Sikuli
========
Sikuli是一种利用图片(快照)去搜索和自动化GUI的视觉技术,Sikuli的第一个release包含Sikuli脚本,也就是为Jython编写的一种视觉脚本API,同时包含了Sikuli IDE,一个可以非常容易的用快照书写视觉脚本的集成开发环境。Sikuli脚本可以自动化你在屏幕上看到的一切,而这不需要内部API的支持。你可以编程控制一个页面,一个运行在Windows/Linux/Mac OS X上的桌面应用程序,甚至于一个运行在模拟终端的iphone的应用程序。

Sikuli的必杀技
========
自动化所有你看到的一切
利用快照进行自动化
工作在Java平台(意味着可移植)

Sikuli安装和使用
===========
下载安装了一下,在Windows上需要JDK1.6以上环境,这里有一个简单的视频介绍(看不到youtube的同学翻墙吧)。

不会翻墙的地同学请从如下视频观看:

继续阅读论文
=========
GUI Testing Using Computer Vision

Sikuli: Using GUI Screenshots for Search and Automation

MIT news介绍图像驱动计算

一个例子快照
=========
sikuli

拭目以待!

This entry was posted in 测试工具 and tagged . Bookmark the permalink.

9 Responses to 用户界面测试的颠覆性技术-Sikuli

  1. Jackei says:

    自动化测试不是银弹──回头认真翻翻你自己的文章,怎么越来越退步了呢:)

    软件测试的过程本身就是一个不断探索和修正的过程,需要以人类的智慧参与,才有可能准确的完成。无论是基于何种方式的自动化,如果原理始终是replay 的方式,那么总得来说跟现有的做法差别并不大──除非你的测试平台本身能够通过图灵测试。

  2. ricky says:

    不要这么激动萨,我也没说是silver bullet,只是这是一个颠覆性的技术,他至少解决了以往GUI测试中的对象识别问题。自动化测试技术的发展和自动化测试能否取代人的测试是两码事!虽然他不能取代人的智能,但是这毕竟是一个大的自动化测试的进步。

  3. Jackei says:

    看了视频,不知道 ricky 能否抽空试用一下,看看对 xpath、弹出式窗口、flex、ajax 这些方面的支持:)

    如果这东东好用,对于屏蔽掉WEB页面繁复多样的实现技术和方法,提高测试脚本的可维护性还是有些帮助的:)

    另外,有没有提供类似对象库的功能?把大量的屏幕截图管理起来,不然将来变了一个图标,维护一大堆脚本也是很痛苦的。呵呵。

  4. ricky says:

    这些问题倒是比较实际和具体的了,不过我怎么听着不像你这个阶段该问的问题,反而像刁难了呢?

  5. ricky.zhu says:

    针对上面的问题,较为官方的回答,请参考第一篇论文中第七页的Testability Analysis部分,详细分析了当前哪些可以测试,哪些不能。

  6. Jackei says:

    呵呵,怎么算刁难呢?做工具选型和评估,当然要考虑一些常见问题了:)
    否则,跟随便找个开源框架有什么分别?

  7. Jackei says:

    好吧,那我继续找茬了。
    1. 这个怎么看也是一个 UI 驱动层的框架,按照朱兄的意思,这个就“彻底解决了在这之前GUI自动化测试工具上的关键点-对象识别。”?哪些其他工具解决的不彻底的问题被这个技术解决了?
    2. 对于数据驱动的测试,是否要对每个预期的输出结果都截一个图?

  8. cddcdd says:

    这个东西挺好的
    我项目组其他人用的自动化工具太简陋了。每次都要写好多东西,,

Leave a Reply

Your email address will not be published. Required fields are marked *