对比差异与自动化测试

我们常常知道事物差异是导致两个事物反应现象不同的根源;那么,反过来,我们就可以假定如果没有差异,我们即可以认定两个等价。
     此种对比差异、寻找差异的观念也可以用于进行自动化测试。在两次自动化测试之间,通过比较自动化测试的输出,如果输出结果没有差异,就说明我们的改动没有大的影响。注意,这里的自动化测试的输出,为了比较明显可以用于发现差异,我们需要对测试结果做一些序列化的技术处理,进行文本化输出,并且让序列化结果,类似DNA,能够代表了运行的特征。要注意,这里面要剔除易变化的时间戳、序号等,且不对软件正确性产生影响的内容的输出。。这样通过代码比较工具 beyondcompare等,我们就可以轻易地发现两个软件版本Bulid之间的代码改动,引起的差异!
   
 谈起自动化这个话题,不由得想起,以前自己就想写的一篇博客,想谈论下我们的世间存在的一个相当有趣的现象 :)最开始触发自己想法的是关于概念之于未定义概念。从亚里士多德的哲学观点来看,当你用一个概念去解释另外一个概念的时候,你必须需要在最后关头用到的是未定义概念。如果没有未定义概念的存在,那么以概念解释概念的过程,将会是一个无穷递归的循环。同时,在以前的自己博客中谈到,物质世界的稳定性一部分是建立在递归是可以停止的基础之上的。如果世间物质由另外一些物质组成。那么物质世界追求到末端,物质一定是一个具有量子状态、跳跃性的东西,要么单个出来,要么就不出来,不可能再无穷地递归下去的!

 类似于上面有趣的现象,针对于这里提出的自动化测试,我们也会发现自动化测试实际上、必然会是起始于某一个时间的第一次的手工劳动。如果没有最初状态的手工劳动,自动化是无从触发开始的。网络上很多资料的共享,追究到最后,都是来自与一次比较手工的输入。

 从这一些观点来看,我就很想说另外一个个人观点,世间的很多概念,如果认的特别真的时候,实际上纠缠不清的!就像善恶、黑白、丑美、阴阳,坚强与柔弱、自动化和人工劳动,以及在量子史话科普中探讨物质世界的波现象和粒子现象。从这些现象,也告诉我们另外一个外延的人生道理,世间人如果去严格分的话,没有人没有优点,也没有人没有缺点。而反驳了,历史成语 “水至清则无鱼、人至察则无徒”,当人至察的时候,就会认为什么都是正常的,像道家学者一样去坦然接受一切的事物和变化。

   对于通过比较差异的自动化测试设想,自动化的起点,它的第一次手工劳动,至少会存在于检查第一次自动化测试输出结果的人工劳动上,当然还有其他的一些零碎的例如手工,例如,敲入代码这些东东,呵呵!不过,这个其他的小的人工劳动已经不对以后的自动化测试,那么具有决定性的意义了。我们检查测试用例的输出结果的正确性,即测试结果能够说明测试用例的正确性,也能够说明软件运行的正确性。因为测试用例,通常包括正常测试和异常测试,所以,测试结果的检查是要检查在这些设计的场景中均正确。

     第一次最原始的测试结果检查通过后,以后软件Build间的变化,以及大版本的变化后,都可以通过测试用例的自动化运行,输出测试结果。然后,拿着这次的输出结果与最原始“正确”的测试结果进行比较,如果没有差异,我则可以在一定程度上很信服地相信软件代码的改动没有造成很大影响!

    这种自动化测试方法,也具有自己的生命运动。自动化测试用例的加入,自然会测试输出结果的增多;测试结果自身多增加了一些新的信息或者更详细的输出,都会带来第一次的”手工“劳动。输出结果的维护可以更多的依靠代码比较工具,在最原始正确的输出文件上比较进行“合入”。对于第一次“合入”测试结果部分是一定要亲自用人的力量来确定运行的正确,不然自动化就无从起步的。不过,在付出第一次的人工劳动后,以后就可以自动化地马儿跑了:)

    关于这里自动化测试方法,听起来是不是很爽?呵呵,我第一次跟人合作想到这种自动化测试方法的时候也是心动不已,因为确实可以使用的这样的办法,来确定代码的修改对于原有的功能没有影响,并且节省很多人力。

     对于这种测试方法的使用,更让我懂得了XP极限编程的伟大,个人觉得XP极限编程一定是以后软件开发的大趋势。XP在很大程度上节省了人力,提高了软件开发人员的创造性,让软件人员疲惫不堪,代码质量也不会好到那里去,因为编程毕竟是人的事情,不是机器的事情;XP编程也可以同时保证了软件质量。
   不过,个人认为XP编程也有其适应性问题,如果一个软件在极其不成熟的时候,加入XP测试代码,个人认为是不合适宜的。因为测试代码也会需要人力去开发和维护,由于测试源头的不稳定性,同样也会带来测试代码的不稳定性。这种软件的不稳定性,会耗费比较多的人力,也会对软件的及时交付产生比较大的影响。XP 的自动化测试代码,适合系统具有一定程度的稳定性,接口、信令不进行大规模的修正的场景,仅少量增益,都可以投入合适人力去做XP的测试代码开发。

    另外,关于这种自动化测试思想测试工具的构建,可能是另外一个相对复杂问题。它涉及到系统的有状态&无状态,独立网元、还是需要多网元配合,简单流程还是复杂的流程,流程间的耦合程度,都会对构建工具的难度有很大的影响,不过,针对于无状态、独立网元,这个独立网元的概念,也可以理解为对于自动化测试工具,面对测试对象后,测试对象在其身后不用再联系其他网元的场景,都具有相对容易的构建难度,例如数据库接口
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值