|
Rational Robot简单的说是这样一个东西:它能记住你所有的操作(键盘和鼠标),并且不走样的再来一遍。
我们先来看看传统的手工测试的过程。假设我们测试Windows自带的计算器应用程序。我们要验证“1+2=3”这么个简单的加法运算,看看计算器应用程序是否正确。我们用鼠标依次点击“1”,“+”,“2”,“ =”,然后我们用眼睛看结果栏里面是不是“3”,如果是,就OK,如果不是我们就要分析:是不是自己点错了?是不是别的误会?很有可能我们会重新再来一遍(因为这个操作并不复杂),最后我们确信地给出结论:“这个应用程序不能正确的算出1+2=3”,然后我们要做的事情是填写相关的报告,报告这个BUG。不久之后你得到了一个新的版本,然后你再重复上面的测试过程。不久之后,又来了个集成测试要求,要求你再做一遍,最后,发布前还有一次验收测试,对不起,你再来点一遍。哦,对了还要求对老版本Win95/98的支持,准备环境,再来几遍。。。
好了,大家已经看到恶果了。但事实上我们要么就正在这么傻傻地做,要么就在偷工减料。随着迭代开发模式被广泛地采纳,测试被更加快速的要求重复着。因此,自动化测试有了它的用武之地。
现在我们再来看看Rational Robot是怎样帮助我们节省时间的。我们用一次手工测试的时间(数量级的相同),记录一个GUI脚本,然后需要的时候就让它回放(Playback)一次。如果你说开发小组现在逻辑还没有完全实现,没关系,你自己心中肯定知道将来一定会实现1+2=3的,不会是别的东西,因为最原始的需求没有改变,我们就可以手工改写GUI脚本,将预期结果3记录下来。甚者,你说现在开发小组连界面都还没有完成,那你的要求就太过分了,没有办法去测是一个连基本输入输出都不能实现的东西,手工测试也不行啊。除此之外,我们还可以用数据池(Datapool)来给脚本“泵”数据,这样不单单测试了“1+2=3”,还可以测试“2+1=3”,“2+2=4”,如果愿意,我们可以让这个脚本把所有整数范围的加法一个不漏的全部执行一遍,计算机反正不知道累。
上面的道理看上去很简单,但是这就是自动测试的精髓所在。但是人的活动是很复杂的,也就是说,手工测试有很高的权威性,因为不管什么软件,它最后的运行结果都是靠人来判定正确与否。所以,不管什么自动测试工具都只是一个子集,Rational Robot之所以很有名气,就是因为它比别的工具模仿手工测试模仿得更象一些。再加上Rational家族其它工具的配合,使我们整个的测试工作显得很有序。
因此,我们学习Rational Robot的自动测试,我建议一切从我们的需求出发,每一个问题,我们都先考虑怎样手工来测试,然后我们去在Rational Robot中找替代物。比如说,例子中我们是用眼睛去看用脑子去判断是不是等于3,那Rational Robot就是靠捕获界面上那个文本框的属性(Object Properties)来判断的,换句话说,将我们手工测试中的每一个动作和每一个思考都“翻译”成Robot的方式。这样很快的我们就能上手用Robot了。再碰到一些棘手的问题,查看帮助也解决后,我们就能慢慢积累一些生僻的经验。你就成为Rational Robot自动测试高手了。最后,你还能用Robot提供的接口进行一些特殊功能的扩展开发,恭喜!你已经是Rational Robot自动测试专家了。 |
|