从2018年初开始,到现在差不多1年多的时间,我投入了一部分精力用于项目的自动化测试建设工作。目前来看收益还是比较明显的,在这个过程中也加深了对自动化测试的理解,这边就总结下自己对自动化测试的认识。
首先我想说下在开展自动化前后,我的工作状况的对比:
去年2017年Q3、Q4,基本上天天处于996甚至997的状态。大部分时间都花在了功能测试保障、回归测试和上线验证。因为项目在线上有多达7,8个不同的集群,每一次版本上线为了保险起见,开发会一个集群一个集群小心翼翼地上线,所以基本上天天都处于上线的状态。每次上线,手工测试时间顺利的话在半小时左右,如果遇到问题跟开发联调定位,会达到数个小时。除了时间上开销很大之外,每次上线带来的精神上的压力其实更严重,非常害怕哪个用户半夜跳出来反馈说调度有Bug。
在开展了自动化测试之后,现在我给“日常版本迭代测试”只预估了25%的工作量。任意集群上线,我只要负责点一下Jenkins的“开始构建”按钮,即可完成验收。如果有出现用例失败,会自动发送邮件告知开发。
显然,目前的工作状态要好很多,是因为项目工作量减少了吗?显然不是。其实今年以来整个项目组在研发的投入要比去年更多,工作量只会比以前更重,还要兼顾多个私有化部署的客户的验收和日常测试保障工作,工作量肯定是只增不减的。之所以能有更多的时间空余出来做其它更多维度的事情,这一切都得益于“自动化测试”的帮助,它极大地解放了我的手工测试时间,同时更加提升了上线的信心。
不过市面上关于软件自动化测试的书,真心不多,但自动化测试却是我们高级软件测试人员必备的技能,如果你也想把你的精力投入到自动化测试建设的工作中去,不妨从这些书籍开始:
1、《代码整洁之道》
成为自动化测试工程师的第一步就是编程,对于大多数开发人员来说,编写代码并不是一个挑战,但编写出一个干净且易读的代码却很难,本书是每一个自动化测试人员的必读书籍,在本书中,你将了解什么是有意义的名称、注释、格式、错误结构、类、系统、并发性等等。
2、《自动化测试最佳实践》
这本书在自动化测试领域影响深远,它为很多公司指明了测试成功的方向。本书讲述了一些公司应用自动化的经历,其中涉及了很多项目,从复杂的政府部门系统到医疗设备,从SAP业务过程开发到Android移动应用和云计算。
3、《Selenium 2自动化测试实战》
Selenium自动化测试技术已经出来很多年了,市面上的书基本都是基于Java,本书基于Python,也算是一大亮点,书中提供了大量的示例代码,用简单的方法告诉读者如何学会使用一个自动化测试工具。
4、《Implementing Automated Software Testing》
顾名思义,本书将帮助你实现自动化软件测试(AST),同时保持质量、降低成本和节约时间。我觉得书中印象最深刻的一章是“为什么软件会测试失败和如何避免”。与此同时,你还将从本书中学到一些经验,比如如何自动化、AST框架的测试、开发测试自动化策略。
5、《The Agile Samurai》
自动化测试是敏捷开发人员的第一爱好。本书将帮助你详细了解敏捷开发,它将使您熟悉持续集成、测试驱动开发、单元测试、敏捷宣言、敏捷规划等等。
6、《敏捷软件测试》
通过本书你将充分了解到测试人员的真正职能是什么?敏捷团队真的需要具有QA背景的成员吗?“敏捷测试人员”到底意味着什么?并从测试人员的角度记录了敏捷软件开发迭代的一个完整周期,并解释了敏捷测试的七大关键成功要素。
7、《重构》
学习重构、找出代码的坏味道、构筑测试体系、学习 JUnit测试框架、简化方法调用、简化条件表达式等等。通过本书,你将学会改进现有代码的所有方法,并让它变为更具可读性并避免bug的代码。
8、《测试之美》
本书主要介绍各种优美的测试方法、测试工具、测试案例,以及杰出的测试人员和结构良好的测试群体。各种从业人员通过了解本书提供的不同场景并借鉴以往成功的经验可以提高测试能力和水平。
9、《.NET软件测试自动化之道》
主要讲解在.NET环境下编写轻量级软件测试自动化程序的实用技术。全书内容由Windows UI测试、Web应用程序测试和存储过程及XML测试三部分组成,全面介绍了如何利用.NET平台提供的一系列技术(而不是依赖于第三方的商业自动化测试工具),采用C#语言编写轻量级的、功能强大的自动化测试程序。
10、《测之重器——自动化测试框架搭建指南》
从FitNesse 的使用讲起,慢慢过渡到后台组件的开发,以及FitNesse 与Jenkins 的持续集成测试的整合,并用三章分别讲解RESTful、云计算平台、手机UI的自动化测试,从而能让大家理解如何在实际工作中运行自动化测试。当你读完《测之重器——自动化测试框架搭建指南》后,你将能为企业搭建出一套自己的自动化测试系统。
网上搜索到的阅读资源:http://www.51testing.com/html/71/n-3720271.html
总结:
自动化测试需要具备的主要能力:
第一,编码能力,这个是逾越不过的坎儿。说到这里可能会有朋友问难道性能测试不需要编码能力吗?答案是需要,但比起自动化测试来说门槛相对低点。其实对于一个优秀的测试工程师来说编码能力是必备的技能。
如何提升自己的编码能力也是不少朋友咨询过我的问题,真心没有什么捷径。我觉得就是要多练习多总结,我说的练习是真正的动手去做而不是看。我再苦口婆心一句:“没有不起眼的砖,没有看不到的框架,漂亮的楼房怎么能屹立不倒”。
第二,逻辑思维能力。在有了编码能力之后就能做自动化测试了吗?显然不能,因为自动化测试最终是希望建立一个框架或者平台,这是一个大工程,一定要有较强的逻辑思维能力和设计能力才行。就好比,你会焊接技术但不代表你会设计汽车啊。所以自动化测试真正的难点在于设计思想,,培养能力和思维之后再学自动化测试就容易多了。
欢迎加入 51软件测试大家庭,在这里你将获得【最新行业资讯】,【免费测试工具安装包】,【软件测试技术干货】,【面试求职技巧】... 51与你共同学习,一起成长!期待你的加入: QQ 群: 755431660