51Testing软件测试论坛

标题: 再谈一下UI自动化吧 [打印本页]

作者: cleverman    时间: 2009-11-28 03:10
标题: 再谈一下UI自动化吧
本来不想再谈这些内容了,因为太基本,简单了。可是最近竟然发现一直不屑于UI自动化的我,仿佛都成为一个UI自动化专家了。我发现很多人,包括论坛上的网友,还有很多身边的同事都对UI自动化充满了一些恐惧感,从而不敢触及它。当然也有一定的原因是觉得UI自动化没太深的技术含量,这也是我讨厌UI自动化的唯一原因。但是,一旦让这些人去做UI自动化的话,是很难做好的,因为UI自动化需要一定的经验,而我个人认为一年的经验,一个正规的项目应该都能具备编写良好UI自动化测试的能力。因此,对于后来的人,我想把UI自动化关键的几条再谈一谈,UI自动化确实没什么技术含量,你掌握了以下几点也能成为一个小专家了。

用高级语言编写自动化程序,在UI的部分调用UI自动化工具。我反对纯用UI自动化工具去写自动化,因为那样就太死板了,而且功能不强大,不灵活。我推荐学好一门高级语言,把大多数的自动化都用这门高级语言实现,只在需要UI操作的时候才调用UI工具。
只在你测试的UI模块上进行自动化的测试,其他地方避免用UI去操作,使用高级语言去实现。这样你需要用UI的地方就进行了最小化,从而使得只有在真正需要UI的地方才自动化UI,因此测试程序会相对更稳定。
UI自动化最基本的操作就是发现控件和操作控件。尽量避免用text来发现控件,而使用一些固定的控件属性来发现,比如Control ID等等。这样的话,测试程序会更稳定,开发改变文本不会影响到你,而你也不用担心localization的问题。
操作控件分为模拟用户操作和事件驱动。简单的例子就是,模拟用户操作就是鼠标真的去点一下,而事件驱动则是跳过点击直接引发点击的事件。我以前用过具有这种功能的工具,但是最近几年用的工具不具备这个功能。
解决好同步问题。UI自动化最不稳定的地方就是同步问题了,你不能连续点击,而需要等待到一定的情况才能进行下一次点击。各种情况都不太一样,需要一些经验进行良好的程序设计。但是,简单来讲,要做到等待的情况发生能立刻返回到程序,不能空等。
减少其他UI对你自动化程序的影响,比如关闭Windows balloon,等等。一般来说是发现了有其他UI影响你的情况,就想一下workaround, 不会有什么大问题。
从我的经验上来看,一般UI自动化有问题都能归结于以上几点,而一旦你解决了以上几点的话,UI自动化就变成了一个熟练工的工作了,没什么挑战性。我本人的有些模块的UI自动化基本可以达到100%的通过率,而所有模块的自动化也能达到95%以上的通过率。不过我基本已经脱离UI自动化了,因为太没有技术含量了,不过我还是认为如果你刚刚进入测试的工作,或者从来没有接触过UI自动化,或者从来都没有做好过UI自动化的话,在这上边工作个2,3年会有一定的收获的。
作者: cleverman    时间: 2009-12-2 03:29
原帖由 xianggx 于 2009-12-1 20:20 发表
果然很厉害!!
操作控件分为模拟用户操作和事件驱动,哪个更好呢?


忘了写了。能用事件驱动就用事件驱动,因为更稳定。但是,我用的时间比较短,不知道会不会有什么其他问题。现在都是用模拟用户操作的方式,因为工具不支持,也没太大问题。
作者: 脱裤急先锋    时间: 2009-12-2 17:06
装b之人死不光
作者: 欺负人    时间: 2009-12-2 18:26
测试本来特别有技术含量的东西 就很少!! 开发一个一般的UI自动化测试框架 也不见得有多少技术含量
作者: afeng    时间: 2009-12-2 19:15
就是,自己开发一套东西去点页面老实说,只要时间够,也不是什么难事,编程语言也就是这么回事,不过很少有公司会去这么投入的去做这件事情的,等你开发出来,软件早就卖出去了,如果你说你自己业余去搞,那我倒是觉得你这个人有点奇怪
作者: cleverman    时间: 2009-12-2 23:06
原帖由 欺负人 于 2009-12-2 18:26 发表
测试本来特别有技术含量的东西 就很少!! 开发一个一般的UI自动化测试框架 也不见得有多少技术含量

Security test would be different.
作者: cleverman    时间: 2009-12-2 23:19
原帖由 afeng 于 2009-12-2 19:15 发表
就是,自己开发一套东西去点页面老实说,只要时间够,也不是什么难事,编程语言也就是这么回事,不过很少有公司会去这么投入的去做这件事情的,等你开发出来,软件早就卖出去了,如果你说你自己业余去搞,那我倒是觉 ...

你总是觉得我有点奇怪,这个我并不奇怪。
作者: 欺负人    时间: 2009-12-3 12:55
原帖由 cleverman 于 2009-12-2 23:06 发表

Security test would be different.



Recently, I have been fucusing on the security testing.~~Feel it a little intresting ^_^
作者: afeng    时间: 2009-12-3 13:43
我没有说你奇怪,你理解错了
作者: cleverman    时间: 2009-12-3 15:47
原帖由 afeng 于 2009-12-3 13:43 发表
我没有说你奇怪,你理解错了

你也总是说别人理解错了。呵呵。
作者: afeng    时间: 2009-12-3 20:54
我确实没有说你怪,不过你说的那种由测试组自己来开发ui测试系统,我觉得在99%的企业里是行不通的
作者: cleverman    时间: 2009-12-4 00:15
原帖由 afeng 于 2009-12-3 20:54 发表
我确实没有说你怪,不过你说的那种由测试组自己来开发ui测试系统,我觉得在99%的企业里是行不通的

99.9%吧,可能还真不夸张。




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2