赞
踩
一个具有一定规模的网络服务在新版本的上线前,一定会进行详细的 QA 测试,但目前的测试工具大多是以代码的测试为主,只有少数的工具能够支持 UI 上的测试,而 SIKULI 便是自动化 UI 测试的好帮手。
为什么我们需要自动化测试?
曾经开发过网志或者是软件的朋友都会知道,在软件正式发布之前进行测试是相当重要的,除了要避免软件出现错误当机的状况之外,也须要确定各项操作流程是否如同预期。
然而,许多网络创业者在初期的产品开发过程中往往没有办法进行详尽的测试,这可能是因为资源的有限(没有钱雇请专门的 QA 测试人员),或者是时间上有限(产品马上就要发布)。
因为前期的测试不够周全,往往我们在后续发生错误时可能会需要花费掉更多的时间和成本来修复,可以说是因小失大。
所以透过自动化的测试工具,可以达成许多优点:
有效减低测试成本,只要当初期的测试脚本撰写完毕后便可以自动运行
确保大多数测试都可以自动运行并且重制可能的错误
因为自动化测试是由电脑进行实作,所以人员下班后仍旧可以测试,隔天早上再观看结果即可
然而,自动化测试碍于技术的发展,目前大多数只能进行代码的测试,但针对 UI 接口的操作测试往往才是大多数人关注的重点。
SIKULI
SIKULI 是在 2010 年初的时候由 MIT CSAIL 实验室所发布的开放原代码项目,标榜透过图片的辨识来进行自动化的 UI 测试,底层是透过 Java 和 Python 所撰写,支持跨平台包含 Windows/OS X/Linux。
值得一提的是,SIKULI 的作者之一是台湾知名的程序开发者 vgod,目前正在 MIT 攻读博士学位中。
SIKULI 其背后的原理技术主要是透过电脑视觉(Computer Vision),电脑视觉从上个世纪 1970 年代开始发展,大多数用来辨识现实生活中的图片和照片,像是 Picasa 所提供的人脸辨识等,而 SIKULI 的创新之处,便是用了电脑视觉辨识系统来辨识电脑本身的画面,进而实现跨平台的自动化操作。
如同作者在其博客上所说的:
Sikuli 把电脑视觉的研究领域,从真实世界延伸到电脑的桌面上。这点说起来真是很有趣,电脑视觉的研究人员数十年来尝试想让电脑能像人一样「看」这个「真实世界」,可以像人一样认得别人的脸,或是认得马路长什么样才能让电脑自动开车,但却没什么人想到让电脑「看」电脑自己输出的画面。
官方网站上的范例影片便是透过撰写一个简单的 SIKULI 脚本来进行自动化的 OS X 网络设置:
而在网络上也可以看到有人透过 SIKULI 来进行 Android 软件的自动测试:
官方博客 上也有许多应用的教学,包含 Eclipse IDE 的自动操作、自动接 Skype 的来电、自动登录 Twitter 并发表消息等等,适合入门的学习者参考。
跟按键精灵的差别
或许会有人问,那这跟我们早期许多人玩在线游戏会用的按键精灵有什么差别呢?按键精灵主要的工作原理是透过定时、记录座标位置来点击,所提供的弹性比较低。
而 SIKULI 是透过视觉辨识的方式来进行自动化的操作,除此之外还可以:
加入逻辑的判断(像是出现 A 画面则输入帐号密码、B 画面则注册新的会员)
不因为画面的大小、位置改变而找不到点击目标
将操作的步骤模块化在不同测试案例中使用
其他的用法
除了自动化测试 UI 这种比较严肃的使用方式之外,也有许多人透过 SIKULI 来简化生活中的各种电脑操作。
噗浪自杀(透过反复开关假期模式降低 Karma 值):
电脑帮你玩宝石方块:
甚至是让电脑帮你玩星海争霸 2!请参考以下 Dropbox 办公室的参观影片,其中五分钟左右的有工程师展示用 SIKULI 玩 SC2!
参考资源
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。