我们为什么要做自动化测试和性能测试
2017-09-14 10:18 软件测试汪 阅读(868) 评论(0) 编辑 收藏 举报
从业这几年过程中,有过很多次面试,印象中面试官问的最多的就是性能和自动化。其实问这个问题是非常有趣的一个事情,因为在我的从业过程中遇到过两种情况。第一种情况是你说你不会,然后公司要了你,你怀着喜悦的心情去上班,想着终于可以跟大牛学习自动化了。然后入职后发现,我擦?这些测试人员咋全是点点点,包括面试我那个?第二种情况是你说你会,公司要了你,你怀着喜悦的心情去上班,想着终于遇到一个完善的测试团队了,终于摆脱点点点了。然后入职发现,我擦?项目时间这么紧,写个毛线自动化,然后你又开始了点点点。
我叫皮皮,是一名软件测试工程师。上面的经历是我真实的经历。当然除了上面的两种情况,还有其他很多种情况。我们来想一下,为什么面试官会问自动化和性能?笔者认为,情况无外乎有三:第一是直接判断你的技术能力,第二是根据你的技术能力去给出薪资,第三是考量团队建设。那么为什么你会了自动化,却还是让你点点点?笔者认为最重要的原因就是时间。一个小的项目,从立项到测试结束大概只有30-35天时间。这期间测试人员需要看需求文档,需要根据需求文档提出改善性建议,需要根据需求文档或产品原型或UI设计去编写测试用例等等。而留给测试时间往往只有一周左右。手工测试第一天往往就可以跑完所有冒烟,但是对于自动化工程师来说,自动化用例设计才刚刚开始(注意我说的是UI自动化不是接口自动化),编写用例这段期间,页面元素不变还好,一旦发生变化,纵使你封装的再好,还是有需要改动的代码。所以对于时间成本和工作效率而言,手工测试绝对是第一选择。
等项目稳定之后,你的耳边就会响起,那个小张呀,最近不忙,你看是不是要把自动化搞起来了?然后你开始编写起了自动化测试用例。在笔者看来,这个时候编写自动化用例更加得心应手。原因很简单,第一是项目基本没有Bug,方便写断言(断言类似于手工测试里的预期结果),第二你在做手工测试的时候已经写完了所有用例,只要你手工测试用例写的足够严谨,自动化测试用例完全可以根据手工测试去实现。自动化用例的完成对产品功能的迭代可以说的上是如借东风。如果不是添加新功能而是把以前的功能做优化....哈哈哈哈,当我没说,我遇到过好几次产品迭代后把原来功能换了个样。当然如果是增加了新功能,这样每次迭代进行冒烟测试的时候,你的时间可以用来做两件事情,一是利用自动化脚本去验证之前功能是否会因为新代码合入出现问题,二是利用手工去对新功能测试。粗略算了一下,假设半月迭代一次,每次迭代需要5轮测试,人工回归一次需要5个小时,最终确定一年下来,自动化为你省去600个小时,也就是75个工作日,同时也省去了测试旧功能要吐的烦恼以及人疲惫下产生的错误。
我们依旧回到上面的问题,为什么面试官会问自动化和性能?自动化已经聊过。下面来说说性能测试。根据2016年部分软件测试从业者调查显示,80%的人从事手工功能测试,31%从事性能测试工作,自动化测试和接口测试皆为27%。(加起来不是100%的原因应该是身兼多职)性能测试工作人员比自动化占比还高!我们可以分析一下原因,自动化本质还是黑盒测试!因为所有的操作基本都是模拟用户行为,虽然可能通过脚本去模拟多个用户,但是远远无法达到性能测试的要求。因为UI自动化除了增加页面渲染时间,你的公司带宽和服务器带宽也都会是不确定因素。如果淘宝、天猫、京东、12306等缺了性能测试,或许对于绝大多数人类都是一个灾难。我擦?我好不容易等到双11,你居然告诉我商城页面打不开....
提到了功能测试、UI自动化测试、性能测试,这里不得不多说一句,接口自动化测试。口自动化和UI自动化设计基本一致,所以不做过多赘述,一般来说接口自动化先于功能测试和UI自动化测试。做好接口自动化,对于功能测试会节约很多时间,在一般小型企业,接口自动化测试基本可以满足性能测试的要求。讲到这里,或许我们可以做个总结。手工测试满足项目功能质量,自动化测试提高项目迭代速度,性能测试为了满足同一时间内用户体验。
说到这里,或许很多人已经看的不耐烦,因为我说的大多数人都知道。我也想过不写这些,但是我写这些的原因是为了以后做铺垫。我想通过我的所学去整理一些系列,如UI自动化的实现,接口自动化的实现,部分场景下性能测试的实现。这些系列我将会以初学者为出发点去编写。当然这些知识网上已经有很多,我不一定比他们写的好,但是我会用心去写,也算是对自己所学的总结。这些系列我将尽可能写的快些,因为冬天快来了,冻手.....
最后的最后,如果你有机会看李志的334,帮我说一句,我爱逼哥。