成为一个优秀的测试工程师需要具备哪些知识和经验?

根据我的观察,优秀的测试人员可以做的事情可以包括如下3点:

由单纯的测试变成项目质量保证工作
持续集成探索和推动和自动化测试技术研究
测试相关工具的开发
1、我们先来讲第一点,由单纯的测试变成项目质量保证工作

测试,从狭义的角度来讲,包括如下这些环节:
测试计划和测试用例编写-测试执行-质量报告书写
测试人员一般会在开发阶段就进行测试计划和测试用例的编写和准备工作;在测试阶段,我们一般先会做功能测试,等项目功能基本稳定,bug较少了,就开始做兼容性测试、性能测试、安全性测试。兼容性测试保证了产品在多浏览器、APP在产品在不同机型下的兼容性;性能测试保证了产品在海量用户大流量下的服务能力;安全测试能发现产品可能会被攻击的各个隐患。做完了这些测试以后,人员发布质量报告,产品上线。

不过,优秀的测试人员需要向上游和下游拓展测试的领域,把自己放在“质量保障”的角色上,推动整个项目组一起保证质量,上游的工作包括:

在产品刚立项、进行需求确认的时候,测试人员就会参与进去,仔细地Review需求,看需求是不是完整、有没有漏洞,这个时候还没有进入正式开发,修改需求对于项目组来说代价是最少的。在这个环节,测试人员凭借缜密的推演、发散性的思维,往往能发现很多需求的漏洞,提高了项目的整体效率。
另外,测试人员在完成测试计划、测试用例以后,会邀请开发、策划一起来评审测试用例,在这个环节,由于测试人员把每个需求如何细化测试都体现在了用例里面,就相当于再次把需求分析了个透,往往还能发现很多需求的漏洞。这也是提早发现需求漏洞的有效环节。
我们知道,代码的质量归根结底是由开发保证的,测试做的工作,只是发现Bug让开发修复。如果一个花瓶,一开始就是很完美的;另一花瓶经过了各种修补,看起来比较完美,大家觉得哪个花瓶比较好?当然是第一个花瓶。所以,测试人员应该站在质量保障的立场,想办法跟项目组沟通、给开发提供工具,让开发自己把质量保障工作做好。比较可行的一些方式是:提供一些手工用例让开发自测;给一些自动化的接口和UI测试代码让开发自测;部署静态代码检查工具,并推动开发分析和修改发现的问题;有一些做得好的项目已经实现了持续集成,也可以尝试。
下游的工作包括:

在产品完成了测试以后,就是发布的环节了,测试人员在发布的环节也能发挥作用,首先,测试人员为了部署测试环境,研究自动化部署的技术,可以把上线部署的环节也自动化,以前需要2个小时的部署环节压缩到半个小时甚至更少,而且更加准确可靠。
如果有些版本修改比较多,上线的质量风险大,测试人员会跟产品一起制定灰度发布的方案并在技术上进行实现,让版本先面向一小部分用户开放,如果发现Bug了,影响的用户也比较小,Bug改掉以后,再逐渐扩大用户范围。
另外,优秀的测试人员还会发动项目组的其他人一起来保证项目质量,比如推动开发进行代码Review;引入冒烟自测流程,让开发先自测以后再提交给测试做冒烟测试;通过在项目组分析Bug,让开发提高自测,降低Bug数量等;引入策划、交互、视觉在测试阶段进行走查,等等各种措施。

2、持续集成探索和自动化测试技术研究

业界都在说持续集成,那持续集成究竟是个什么鬼呢?

持续集成原本的意思是让开发每提交一次代码就自动化测试一次,如果自动化测试发现问题了,测试用例就会失败,开发就会马上发现这个失败,并修改代码。

要做到持续集成可有很多工作要做。

首先就是编译环节,要把所有编译的环节都自动化起来,开发每次提交代码都能进行自动编译;
编译完成后,就是静态代码检查的环节,通过静态代码检查的工具检查代码的问题,比如,数据库连接池没有释放,参数不匹配等。
静态代码检查完成后,就是单元测试了,单元测试用例一般是开发人员或者测试人员编写,或者开发和测试合作编写,保证的是开发内部函数的正确性。一个健康的自动化测试方案中,单元测试用例的占比是最高的。
然后就是接口测试,一般保证的是后端开发提供给前端开发的HTTP接口,接口一般也比较稳定,用例比较容易维护,所以,接口测试的自动化占比也可以做到很高。
在接口测试的上层就是针对用户界面的UI测试了,就像测试人员手工执行一样,UI自动化测试能操作页面的元素,完成自动化。不过,由于用户界面常常要重构,所以我们常常会控制UI自动化测试的规模,只覆盖主干的用例。
优秀的测试人员可以把自己的工作尽量自动化,并用持续集成框架串起来,提高工作效率和质量。

3、测试相关工具的开发
优秀的测试人员会开发其他好用、趁手的工具来提高工作效率,比如数据自动生成、报表自动生成、报bug工具等。

其实归根结底就是一句话:测试人员最核心的工作就是保障项目的质量,各类测试流程、技术、工具和平台的发展让我们可以更好地保证项目的质量。

原文地址:http://www.51test.space/archives/2157

时间: 2024-12-06 22:21:41

成为一个优秀的测试工程师需要具备哪些知识和经验?的相关文章

如何成为一个优秀的测试工程师

链接地址:http://blog.csdn.net/KerryZhu/article/details/5250504 我一直在想,如何将自己的测试团队打造成世界一流的团队?流程.测试自动化.创新.扁平式管理.国际标准制定.测试社区贡献.-- 但首先一点是明确的,就是要将每一个测试工程师打造成优秀的测试工程师,优秀的团队必须由优秀的成员构成.所以,先讨论"如何成为一个优秀的测试工程师",将来再慢慢讨论: 一流的测试流程是什么? 测试自动化如何突破? 测试如何创新? -- http://b

怎样成为一个合格的测试工程师

一个测试工程师应该具备的素质我想在很多介绍软件测试的书里已经都列举过了,这里就不在重复,而一个合格的测试工程师和一个测试工程师的最大区别在哪儿?不外乎就在与测试思想.合格就在于他接受到测试任务后所做的第一件事情是想而不是做.合格就在于他将他自己的想法始终贯穿于整个测试中,包括测试设计中,测试执行中,测试分析中. 许多人都会说测试思想是一个空洞的东西,而我也曾经写过或说过太多的例子用以证明它,这里只建议想做合格测试工程师的人去看一本书吧,它的名字是<think in java>,在我眼里,它并不

[转]一个优秀的研发团队应该具备什么特征

一个优秀的研发团队应该具备什么特征 1.计划执行:计划安排得当,不要老加班,不要老是现实和计划不匹配.不要做到哪儿计划就推后到哪儿. 2.研发成果:成功产出几个重影响力级别的.完整成块的.有成就感自豪感的产品或项目 3.团队氛围:这个团队每个人都相处的很融洽 4.团队协作:每个人都能找到自己擅长并喜欢做的事情.团队允许发出不同声音,不打击不反击.团队允许各种性格和背景的人都能存在并融洽存在. 5.团队协作:团队不要造成老是关键几个人忙死,其他人都在等这几个关键人完成核心事情后才能工作 6.团队氛

【刷题】面筋-测开-测试工程师应具备的素质和技能

概述 一个好的测试工程师,不仅要基础扎实,对自身的性格.责任心都有非常高的要求. 具体: (1)掌握基本的测试基础理论 (2)具有的测试经验的积累 (3)可熟练阅读需求规格说明书等文档 (4)能够及时准确地判断出高危险区在何处. (5)以用户的观点看待问题 (6)本着找出软件存在的问题的态度进行测试,即客观吧,不要以挑刺形象出现 (7)有着强烈的质量意识 (8)细心和责任心 (9)良好的有效的沟通方式(与开发人员及客户) END 原文地址:https://www.cnblogs.com/anli

想成为一个优秀的硬件工程师,你需要具备这些能力!

一个好的硬件工程师实际上就是一个项目经理,你需要从外界交流获取对自己设计的需求,然后汇总,分析成具体的硬件实现.还要跟众多的芯片和方案供应商联系,从中挑选出合适的方案,当原理图完成后,你需要组织同事来进行配合评审和检查,还要和CAD工程师一起工作来完成PCB的设计.与此同时,要准备好BOM清单,开始采购和准备物料,联系加工厂家完成板的贴装." 基本知识 1) 基本设计规范 2) CPU基本知识.架构.性能及选型指导 3) MOTOROLA公司的PowerPC系列基本知识.性能详解及选型指导 4)

一个优秀的程序员应该具备哪些素质?

俗话说“师父领进门,修行靠个人”,随着互联网的高速发展,越来越多的人选择了IT行业,加入到了程序员的行列.那么,对于一个刚入行的小白来讲,如何成为一个优秀的程序员呢?一个优秀的程序员需要哪些素质呢? 在学习C/C++或者想要学习C/C++可以加入我们的学习交流QQ群: 954607083,领取学习资料 扎实的技术 熟练开发工具 做为一名程序员至少熟练掌握两到三种开发工具的使用,这是程序员的立身之本,其中C/C++和JAVA是重点推荐的开发工具,C/C++以其高效率和高度的灵活性成为开发工具中的利

如何称为一个优秀的前端工程师?

最近在实验室很受打击,导师给的任务没有很好的完成,我能感受到导师的失望,同时对自己也失去了自信心.自信心是非常重要的一件事情.所以我需要思考我到底在不就的将来想从事什么工作.最近也是在一直不断地摸索中. 这几天想学前端,我也知道像我这样浮躁是做不成事情的,我尽量能够让自己稳定下来.希望好好学习前端吧. 首先我认为需要明白前端是什么,我认为的前端,是与人交互的接口.这是我当前的理解.在计算机中功能模块的解耦在有些地方能简化开发,使得产品容易维护等优点.所以现在讲究前端后端的分离.在前端中,HTML

一个优秀的程序员所具备的14个品质【转载】

慎于说Yes 在没有搞清楚开发需求.任务工作量.团队期望值之前,有前途的程序员不会轻易答应.特别是对于新人来说,比较急于表现自己,对于同事或者老板的工作安排来者不拒,精神可嘉,方法不可取.承诺太多,会出现自己无法按时完成的情况,即使按时完成,也可能没有达到别人的期望值,长期以往别人对你的失望会越来越多. 敢于说No 看起来和第一条雷同,其实细究起来不一样.第二条执行起来比第一条难得多.当遇到明显不合理的要求时,可以考虑拒绝,前提是准备好了全面充分的理由.不要经常说No,但是一旦说了,就要切中要害

如何成为一个优秀的前端工程师?

一.英语. 由于大部分优秀的新技术几乎都来源于欧美国家,因此依赖官方的汉化资料往往需要等待很长的时间.等中文资料已经满大街了,同时可能表明这种技术已经过时了.因此流程阅读英文材料必须作为一个优秀程序员的必备技能.如何提升英语阅读能力?1.订阅一些优秀的国外技术作者或者机构的Blog.2.使用框架或者库的时候不依赖中文资料,先从英文文档读起.3.学会FQ,使用google.4.多关注优秀的技术社区: github.stackoverflow 二.修练内功1.计算机基础:算法.数据结构.操作系统.网