宋锋:优点:使得你的用例可以高度复用。
特点:简单易学。
缺点:对象识别的支持还是有些欠缺。软件本身有些BUG历经多次版本,始终未得到修复。
难点:让你的脚本按照你的需求一马平川的从头Run到尾,很难。对象识别故障的解决就像人类的温饱问题一样,是最原始也是最基础的。然后才是自动化框架的架设——这已经是属于另一个境界的问题了。
51Testing:最多的运用在哪些测试工作中?(可以举具体实例说明最好)
宋锋:QTP的特点在于高度复用,在任何相关场合都能得以应用。最典型的是在Regression Testing中。其实在Configuration Testing方向,实战性非常好,可以大量省去手工测试的时间。
51Testing:关于自动化测试和手工测试。我们常常在论坛上看到类似于“手工测试是没有技术含量的“之类的讨论,您怎么看?怎么样正确的看待自动化测试和手工测试的关系。
宋锋:这让我想起刚进少林寺的张君宝(少年张三丰),师傅总是让他砍柴、挑水。为什么要砍柴、挑水,这个道理不必再解释了吧?呵呵……
51Testing:自动化测试框架这个话题现在好像很流行,能不能给大家介绍下自动化测试框架是什么?能具体谈谈吗?
宋锋:框架本身是抽象的东西,它没有具体的形状,它只是一种思想,它的目的是为了高效、高度复用脚本,同时把所有活动尽可能多的对接起来。理想的自动化是让人做尽可能少的事,让机器尽可能多的帮你做事。
在这种思想的传递下,自动化框架从最原始的script-object形式,走向Data-Driven(data-script-object)形式,继而走向Keyword-Driven(keyword-data-script-object)形式,最后发展为今天的AOM,把软件研发的所有活动纳入进来,最终你会发现“设计=执行”,当你做好需求的时候,设计框架自动生成了(包括测试框架)、代码自动生成了……WOW!很棒,不是吗?而一旦你变更了需求,你可以不必关心再去同步你的设计、你的编码,你可以不必关心再次去验证新的需求项……所有的工作,这个框架帮你全部完成。那个时候,我们的软件研发团队不再有Designer,不再有Developer,不再有Tester。很美妙,不是吗?
但我描述的是最理想的状态(可以称之为“乌托邦”),我想说的是,人类对于理想的追求永无止境,自动化框架的追求同样也不会有尽头——如果有的话,那就是“Frameworkless(无框架的框架)”,返璞归真,有点像老子的思想,不是吗?但Frameworkless是真的,早晚的事。
回到现实中来,以国内目前的测试水平来讲,我们的自动化不必追求大而全,能把配置层、数据层、代码层、对象层、报告层和主控层分离开来,就很不错了。这是我目前所提倡采用的框架。