测试自动化与软件过程改进是两个独立的事务.先来看看软件过程改进,软件过程改进的核心思想是将软件的生产过程规范化,这就象工厂的流水线一样,要求每个岗位都有自己的标准操作流程,这样可以将因更换操作人员而引起的质量问题减到最少.只有在确定了标准操作流程后才可以对操作流程进行不断的改进,以达到更好的质量和效率.
再来看看测试自动化,测试自动化的实现方法是用机器代替人的手工操作,完成一系列的测试过程.从原理上看测试自动化也是一个标准的操作流程.测试自动化实际上是在模拟人的手工操作,在现阶段手工测试在很多公司是一种艺术行为,同样一个模块不同的测试员会发现不同的问题,这与测试员的直接能力成正比,同时还与测试员的心情有直接关系,这实际上是一种无序的操作行为,这种现象的最大问题是随着人员的变动产品质量也在进行相就应的波动.
用一个比较形象的比喻,每次我们对产品实施测试就好象是织一张网,然后用网去捕虫,但是我们每次织网的方法都不一样,网也就会不一样,有时密有时疏,这就导致了有时我们会抓到好多的虫,有时又抓不到虫.如果我们每次织的网是一样的,那么抓到虫的数量也是基本不变,同时我们对网进行不断的改进,将疏的地方加密,这样就能抓到更多的虫
测试自动化是代替人的手工操作,自动的发现产品中的问题,这就好比自动织网自动捕虫,我们所要做只是不断的补网,但如果没有标准操作,我们就不能补网,不知道要在哪里进行修补.这会出现两种情况.1.网抓不到虫,这样这张网就没有任何意义. 2.每次都要做一张新网,可以捕到虫了,但成本太高.
让测试自动化真正发挥出强大的威力,就要对这张进行不断的修补.如果我们每次的操作都是相同的,再通过对结果的验证和补充,不断的完善,这样才能将发挥自动化的强大的力量.
将测试的操作标准化不是简单的写个用例就可以解决,它要包括很多详细的内容,要包括数据的准备,系统环境的准备,标准的操作流程,以及结果的标准判断方法.最佳实践效果就是一个只要会操作计算机的人都可以执行测试,并且结果是相同.那么这时实施自动化才会发挥最大的功效.
从上面可以看出测试自动化的实现成本较高,我们不能单纯的出于技术的目标而实施自动化,自动化的实施只有在产品的被测试部分相对稳定后才可以实施自动化.在业界暂时还没有通用的判定标准.
合理的运用自动化测试可以大大提高工作效率,反之则会是无何止的噩梦.无论测试自动化多么强大,在现阶断仍然是以手工测试为主.我想不需要人工设计的测试自动化只有在斯皮尔伯格的<人工智能>实现后才会真正的出现.