很长一段时间,都在思考,怎么能通俗的看待自动化测试的收效。
自动化测试到底能不能成为一种趋势?
自动化测试到底能不能形成一种规模?
自动化测试到底能不能成为我们的利器?
自动化测试到底能对我们的职业带来何种发展?
一些官方总是从各种数字上面来说自动化的收效,可是那种计算就真的是准确和令人信服的吗?每个公司的情况不一样,而且每个公司有自己独特的研发模式和流程,而不同的流程所带来的测试体系和观念又不一样。
但总的来说,自动化测试肯定是会有收效的,关键就是看你如何去做。因此我从整体上思考了一下自动化测试的发展:
1、信息科技增长对公司的影响来说:如今,信息科技大爆炸,中国开始走向国际,而国际上,不仅实体产品还是软件产品,不管设备产品还是服务产品,都令中国市场应接不暇;不仅仅是种类的增加,更多的质量的整体要求大大提升;但是从古至今,中国企业很大部分关注的是其产品的有无,而对后期的质量保证却并不是特别关心,这主要是因为中国以前本身市场的浮躁造成的。
孰不知,当今市场,越是浮躁,看似产品上市快,但是其造成的后期维护成本占据了整个成本很大的一部分。大家都知道,一个BUG,越早发现,其带来的影响程度越小,如果等到其投入市场,则会带来不可预知的大的负面影响;因此,可以想的到是,越到后来,其公司规模越来越趋于两极化,大的愈大,小的愈小,就在于其对待产品质量的重视程度上,其测试会越来越得到看重,但其对测试人员的水平会越来越要求高端。
2、市场发展对产品的影响来说:因为市场的快速,其要求产品的更新和发布也需要达到更快更稳定的程度;因此,单纯的靠手工测试已经远远无法保障其产品发布和发现问题的效率;因此,自动化测试必然会是一种趋势,而且后期这种趋势会越来明显。而且,敏捷测试流程以及云计算带来的数据规模也可以说明,其要求测试的效率和测试的问题发现要求越来越高,但靠人来进行手工测试是越来越不可能达到了。
3、大型企业的测试体系来说:再从大型公司收益上来说;软件服务公司,像微软、IBM等巨头,都有自己一套自动化测试体系和平台,以前有人告诉我,微软真正的核心不在于其产品,而是在于其测试系统平台;很简单,因此,你可以去复制一套微软的操作系统,但是你复制不了其内部测试系统;你拿过来他的操作系统,更改一下的结果就是漏洞百出,完全不能用,那是因为不经过其微软的测试系统的测试,其产品稳定性根本无法得到保障。
而像电信设备商,华为、中兴等,从很早就开始投资自动化测试平台,每一套产品都有自己对应的自动化测试平台,举个简单例子,华为一套网管自动化测试平台,就能每年为华为节省数***以上的成本,当然,这只是显性成本,不包括隐性成本(即后期因问题维护量带来的成本)
4、世界自动化测试发展来说:据了解,现在自动化测试已经越来越得到各个大型的企业的重视,自动化测试已经经历了很长的一段磨合期,而现在已经处于初步发展期了,很多大型公司开始致力于自动化测试的推广,抛开那些大型公司发布的的商业自动化测试软件不说,一些开源软件也越来越得到发展。
而且,最近,很多大型公司共同成立了NTAF论坛(网络测试自动化论坛),其包括CISCO、思博伦通信、IXIA、EXFO等二十多家大型公司,而且NTAF论坛共享很多测试用例及框架,不过只能成员使用;因此,可以看到,自动化测试的重视程度越来越高。
5、公司自动化测试失败原因来说:为什么,自动化测试很多时候都是公司各搞各,很少能听到公司自动化测试能规模化的样例,很多公司将其归于投资成本问题或者自身独特问题,其实不然,自动化测试是需要投资,可是如果投资不到地方,就会造成很多浪费;很多公司,很多部门,只是脑袋一热,然后就一味的找各种工具,一味的编写各种脚本,缺少了前期的需求分析和整体上的把握。
自动化测试到底给公司、部门带来的什么,完全对此没有一个清晰的概念,这样怎么能不造成自动化测试的失败。
6、自动化测试人员认识水平:作为一个自动化测试人员来说,如果公司部门将自动化测试的重任交与你,那么,你就要跳出单纯的自动化测试使用的认识上,而是要从公司的产品线和整体流程上把握自动化测试过程;自动化测试不仅仅是需要技能水平,更重要的是一个思考过程;不思考,不自动化测试。
所以说,自动化测试的规模不是自动化测试本身的问题,也不是公司部门的投资与产品线问题,而是个人主观问题;
7、自动化测试技能发展水平:自动化测试人员,基本的技术水平应该是全面发展,而是单一发展,其不像开发,但是也要把自己在技术水平上尽量要求高,至少能懂得开发的思想和产品的思想;个人觉得,其需要懂得
1)产品业务的知识,设备还是软件等
2)流程管理的知识及各种研发模型
3)编程能力;精通脚本思想;熟练JAVA或者C++等,在进行自动化测试脚本开发或者自动化工具开发的时候起到很大作用;数据库知识,能够帮助你建立一套自动化用例和数据管理体系;操作系统知识,windows和liunx必须掌握;HTML、XML等语言,反正一句话,知识不一定要精通,但一定要懂。
4)沟通能力;与研发和领导的沟通,看似自动化测试是在做技术,其实不然,其实那是在做产品,做服务,你要向公司和部门推销你的理念和框架,那么你就得一步一步拿出东西,不能太急,也不能太慢。
作为个人,如何帮助部门和团队快速建立起一套自动化平台体系,其技术和研发水平是一个方面,更重要的是策略,如何步步深入,各个击破,是一个很值得深思的过程。
***,作为测试人员,眼光要放长远,带着一颗平和的心态,测试不一定比研发差,关键在于自己怎么去对待测试,很多人想做自动化测试,是因为其含有一定的技术水平,孰不知,其道理亦是相通,做一个只会用工具或者只会因为自动化测试而做自动化测试的自动化测试人员,和只会重复测试的手工测试人员,性质是差不多的;真的要想去提高自己,那么就得耐得住学习的寂寞,慢慢学会从整体上把握;你只有从整体上给公司真正来带来了成本效益,那么你的价值才会真正得到突出。因此,共勉之。
最重要的一条:我不是说,自动化测试会占据大部分测试流程与体系,相反,其人工测试还是在重点,但关键的是如何平衡自动化测试与人工测试,我一直觉得:我们测试人员***缺陷在于很多测试任务都不是挑战性的、有意义性的任务,而只是重复性的、纯手工性的测试。
因此,个人觉得,测试人员与自动化测试的分工,就是自动化测试去完成那些大部门没有意义的事情,测试人员从整体把握质量流程、包括测试用例的更新和维护、产品异常测试、自动化测试小工具的开发等。真的想将一个公司带来成本效益,关键在于测试人员与自动化测试的一个定位和分配问题,这也得从整体上把握。
总之,自动化测试发展是大势所趋,其发展到何种程度,还得看中国市场的发展和广大自动化测试爱好者,和测试从业者的共同的努力。
【编辑推荐】