软件测试发展规划

转自  http://www.cnblogs.com/Ming8006/archive/2013/03/07/2947656.html

一.三种能力

开发能力:转软件开发,自动化测试工具,测试管理工具的开发,了解第三方测试工具,挖掘测试组内测试人员的需求,了解业务;
业务能力:转软件需求,为测试人员提供需求文档,而究竟哪些是最重要的测试点,测试过程中采取什么样的测试方法能使得测试路径最短、覆盖率最全,这些都需要抓住软件业务的精髓
沟通能力:转软件实施,提升执行力,领导力

二.多种思维

1、逆向思维方式

· 逆向思维在测试中用的很多,比如将根据结果逆推条件,从而得出输入条件的等价类划分

· 其实逆向思维在调试当中用到的也比较多,当发现缺陷时,进一步定位问题的所在,往往就是逆流而上,进行分析

· 逆向思维是相对的,就是按照与常规思路相反的方向进行思考,测试人员往往能够运用它发现开发人员思维的漏洞

2、组合思维方式

· 很多东西单一的思考都没有问题,当将相关的事物组合在一起却能发现很多问题;如多进程并发,让程序的复杂度上了一个台阶,也让程序的缺陷率随之而增长

· 按照是否排序组合可以分为:排列(有序)和组合(无序);针对不同的应用,可以酌情考虑使用“排列”或者“组合”

· 为了充分利用组合思维而不致于让自己的思维混乱,要注意“分维”,将相关的因素划分到不同的维度上,然后再考虑其相关性

3、全局思维方式

· 事物往往存在多面性,当我们掌握了越多的层面,我们对它的认识就越清楚,越有利于我们掌握其本质,全局思维方式就是让我们从多角度分析待测的系统;试着以不同角色去看系统,分析其是否能够满足需求

· 其实平常我们在软件开发过程中,进行的各种评审,就是借助全局思维的方式,让更多的人参与思考,脑力激荡,尽可能的实现全方位审查某个解决方案的正确性以及其他特性

4、两极思维方式

· 边界值分析是两极思维方式的典范

· 为了看系统的稳定性,我们采用了压力测试

· 两极思维方式,是在极端的情况下,看是否存在缺陷?

· 注意是两极,不是一极

· 测试人员做久了,往往容易走极端——职业病,不利于与人沟通

5、简单思维方式

· 剥离一些非关键特征,追逐事物的本质,让事物简单的只剩下“根本”

· 针对事物本质(解决问题的本质)的测试,让我们不至于偏离方向

6、比较思维方式

· 认识事物时,人们往往都是通过和头脑中的某些概念进行比较,找出相同、相异之处,或者归类,从而将其加入大脑中的知识体系,可能的话,再建立好的搜索方式,以便以后使用

· 应用模式是“比较思维”很常见的例子,现在模式很火,有设计模式、体系结构模式、测试模式、等等,一些专家针对一些相关问题的共性找出来的解决方法,取完名字后,可以让大家方便的复用

· 让经验在这里发挥作用,测试中经验很重要,比较思维是使用经验的方式

7、动起来,更精彩

· 关注程序的运行时状态

· 传统的基于结构的程序可以更多的在代码中反映将来程序的运行方式;而面向对象将代码和运行时显著分离

· 让我们在关注代码静态结构(如类结构)的同时,也要谨慎关注其动态(对象交互网)表现

其实这些思维方式,大家都在有意识或者无意识的使用着,它们各自都有自己的妙处,将我们的思维发散,有意识的将他们用在问题的思考上,有时可以给我们一种“柳暗花明又一村”的感觉。

三.两大方向

两种大方向:管理方向和技术方向

三核心要素:管理技能、测试技能、业务技能。

根据三种技能的掌握情况和互相之间的交集点,大致分为6个大类方向:

  ◆ 管理方向

  ◆ 测试技术方向

  ◆ 业务技术方向

  ◆ 技术支持方向

  ◆ 质量保证方向

  ◆ 其他方向

六大方向对核心三技能的大致要求,请参考如下图示:

(注:上图只是对六类发展方向,三种核心技能掌握做简单图示,不代表具体数值,也无横向对比价值。)

 测试人员的六大发展方向和对应岗位:

四.七个阶段

(功能测试--自动化测试--安全/性能测试--测试管理)

第一阶段:(测试员)初级测试工程师

  自身条件:初入行具备计算机专业学位或一些手工测试经验的个人。

  具体工作:执行测试用例,记录bug,并回归测试,通过qtp等测试工具录制回归测试脚本,并执行回归测试脚本

学习方向:开发测试脚本并且开始熟悉测试生存周期和测试技术

  第二阶段:(测试工程师)程序分析员

  自身条件:有1~2年工作经验的测试工程师或程序员。具有初步的自动化测试能力,完善自动化测试脚本

  具体工作:设计和编写测试用例编写自动测试脚本程序且担任测试编程初期的领导工作

学习方向:拓展编程语言、操作系统、网络与数据库方面的技能(如java,python,linux,sql)

 

  第三阶段:(高级测试工程师)程序分析员

  自身条件:有3~4年经验的测试工程师或程序员。具有一定的行业业务知识,储备系统分析员的能力。

  具体工作:帮助开发或维护测试或编程标准与过程分析软件需求,获得测试需求确定测试需求相应的测试方法,获得测试策略方案。参与同行的评审(软件需求,软件测试计划等),并为其它初级的测试工程师或程序员充当顾问。

学习方向:继续拓展编程语言、操作系统、网络与数据库方面的技能

  第四阶段:测试组负责人

  自身条件:有4~6年经验的测试工程师或程序员。具有丰富的行业业务知识,具有系统分析员的能力,专长性能测试。

具体工作:负责管理1~3名测试工程师或程序员。集中于技能方面,担负一些进度安排和工作规模/成本估算职责。分析性能瓶颈的原因,为开发团队提供bug解决策略

负责进度安排、工作规模/成本估算、按进度表和预算目标交付产品,负责开发项目的技术方法,能够为用户提供支持与演示

学习方向:性能测试,测试技能

  第五阶段:(资深安全或性能测试工程师)测试/编程高级负责人

  自身条件:有6~10年经验的测试工程师或程序员。

  具体工作:负责管理8~10名技术人员。性能测试整体方案设计,软件系统性能问题定位和性能优化,内存优化及分析数据溢出等,分析系统的安全漏洞等。负责进度安排、工作规模/成本估算、按进度表和预算目标交付产品。负责开发项目的技术方法。为一些用户提供支持与演示。

学习方向:开发一些特定领域的技术专长

  第六阶段:测试/质量保证/开发(项目)、经理

  自身条件:有10多年的工作经验。

具体工作:管理8名或更多的人员参加的1个或多个项目。负责这一领域(测试/质量保证/开发)内的整个开发生存周期业务。为一些用户提供交互和大量演示。负责项目成本、进度安排、计划和人员分工

  第七阶段:(公司级质量总监)计划经理

  自身条件:有15年以上开发与支持(测试/质量保证)活动方面的经验。

具体工作:管理从事若干项目的人员以及整个开发生存周期。负责把握项目方向与盈亏责任

五、生涯规划

step1:校园阶段 (毕业前1年~1.5年)

  很多人的职业规划 是到了工作以后才开始进行的,其实,这样做,有很大的局限性。凡是工作过的人,都有一个体会,就是自己的第一份工作,会影响到5~10年的发展轨迹,甚至会对一生产生影响。因此,选择一份合适的工作作为起点,是必须要在校园内思考清楚的问题。

由于中国的教育基本是理论教育,大家在工作前的实践能力大多比较弱,固然有其不足,但也有好的一面,那就是可塑性比较好。可塑性好代表了选择的余地可以很大,因此,大家在选择第一份工的时候,要充分结合自己的教育背景、个人能力、兴趣爱好、长期目标等等,作出理性的决策。

  软件测试,特别是黑盒软件测试是一种入门起点较低、上手迅速、且发展空间比较大的职业,因此,对于很多学生而言,作为进入IT就业的初级岗位,是非常合适的。

  校园阶段的规划,主要是选择大的入门方向,当然,此时也可以给自己一个长期的目标,但是不必规划过细,因为,在没有入行前,一切都还未知,把握好路线即可。

  下文假设大家选择的是软件测试~~

  step2:入门阶段 (入行后3个月~1年)

  对于刚刚入行的新人,这个时期是一个全面熟悉期,最能够学习到新的知识,也最有拼搏的热情和动力。建议大家可以借着这股冲劲,尽可能了解所在领域的全貌,了解各个主要分支的内容、特性、优势、局限性等等,并考察自己当前的工作环境,结合个人匹配程度和兴趣爱好,根据前述内容调整自己的规划。

  对于测试行当而言,技术方面一般有几类:黑盒测试、白盒测试、自动化测试、测试工具、专用业务技能等;相关的管理方面一般有:测试管理、质量管理、项目管理等。

  面对上述形形色色的方向,建议大家可以都稍稍了解下内涵,然后确定1~2个,作为中长期的主攻方向,达此标准,基本已经实现了入门,至于能否进得厅堂,就要看后期的努力了。

  step3:提高阶段(入门后3年~5年)

  对于入门后选择管理还是选择技术,其实这种问题,是无可无不可的,关键是看对自己的长期的定位了。不过,我个人建议当前阶段还是技术为重吧。毕竟,在一个技术环境中,要做好管理,没有扎实的基础,也难服众嘛。

  本阶段是人最容易懈怠的阶段。毕竟,刚刚入行的热忱早已被日复一日的繁复工作给冷却,有了一定的工作经验,胜任本职,对于大多数人而言,绝不是问题。家庭、娱乐方面开始占据了业余生活的主流。可是,毕竟大家还很年轻,大多数人此时也不过20多岁,就此懈怠也是非常可怕的。因此,有规划的提高自身核心竞争力,在这个时候尤为关键。

  提高是要提高的,但是对于大多数人而言,也没有必要很拼搏,此时处在一个比较稳定的职位上的你,可以考虑进行细化自己的中期规划了。根据选定的方向,制定一个自我提升的计划,并定义好自我检查的里程碑(譬如:每个季度或半年算一个阶段),每天或者每周,有规律的学习一点即可。抱定一个目标——“每天进步一点点”,几年一大成不是问题。

  我个人是反对急功近利的,倾向于稳打稳扎,这个阶段忌做“万金油”,而应努力成为有一技之长的“专家”。

  对于选择做技术的人而言,这个阶段的达成标准,一般至少要能够熟悉你所选技术方向的大多数技术细节,“细节决定成败”嘛,虽然把握全局的能力是必要的,但是作技术而言,倘若不能钻的很细很深,恐怕也很难以高手自居吧。

对于选择做管理的人而言,我个人倾向是:此阶段接触管理的理念,并可以介入管理,但是此阶段不宜全面进入管理(除非你有更深层次的考虑,可以不去稳打稳扎)。学习管理的理念是非常重要的,其实管理更多一种思维和做事的方式,这门学问很深入,也不像技术,会不会是那么的显著,因此,建议多看多学,取长补短,并努力形成自己的做事风格。高级软件测试工程师,测试组长等,都是不错的含有技术特征的管理职位,此时的你应该能够胜任于此。

  这个阶段的达成后,你也可以跻身老手行列,不必为求职犯愁,你应该可以很容易跳槽或时不时被猎头骚扰下,达成此阶段,你要做更深入的规划。

  step4:升华阶段(老手后5年~10年)

  此时的你,即将步入中年,不论是曾经专注技术还是偏爱管理的,都面临着家庭和社会的双重压力,你不可能像年轻人一样整天拼搏了,你需要稳定,因此,不能频繁的跳槽,建议考虑比较正规且有潜力的企业,要考虑给自己一个长远的发展规划

  正因为有前期的细节的背景的支撑,此时,你需要努力提升自己的宏观把握能力。哪怕做技术的,也要考虑适当的转型管理(中国特色是:工程师很难超过35岁的,一般人到了30岁不是转管理就是转商务了)。当然,一般人是技术做得越好,管理的时候,越容易切中项目要害。但是,对于从技术上来的人,关键是要开始培养和人打交道的能力。此阶段的关键是,需要逐步形成自己的管理风格,具备协调并行事务的能力。

  当然,纯管理和技术型管理还是有所区别的。对于纯管理的人,熟练应用管理的科学理念,形成自己的风格尤为重要。纯管理的测试经理人,不仅仅可以做好测试方面的管理,其实也可以做好项目甚至其他的管理。其实,不管管理的对象是什么,它们的管理理念还是相通的。从测试管理中摸索出来的很多经验,可以很好的推广于其他的管理领域。而对于技术型管理的人,主要是带好技术团队,同时,不断补充新的技术知识,跟紧技术潮流。此时的你,有强大的技术背景支撑,不需要过分钻研细节,只需洞察核心,合理安排好你的团队成员即可。

  这个阶段,也可能少数的人会选择离开具体的企业,而开始从事测试咨询,那是一个充满挑战的崭新开始,也必须有前期的积累方能胜任。

  对于大多数人而言,此阶段中一个需要重点考虑的问题是,是否将测试作为自己的终生职位,如果是,基本上达到上述的目标,保持状态,基本可以做到退休的。如果不是,那就比较可怕了。其实我不建议此阶段的人转型,除非有充分的理由和很好的机遇。毕竟,达到此阶段,你已经付出了至少5年的努力,而且还是人生的黄金时段,时光一去不复返啊。当前状态下转行,请务必慎重。

时间: 2024-10-20 11:45:33

软件测试发展规划的相关文章

软件测试职业规划

软件测试职业规划 以下是转载内容. 软件测试人员的发展误区[4] 公司开发的产品专业性较强,软件测试人员需要有很强的专业知识,现在软件测试人员发展出现了一种测试管理者不愿意看到的景象: 1.开发技术较强的软件测试人员转向了软件开发(非测试工具开发): 2.业务能力较强的测试人员转向了软件需求: 3.沟通能力较强专业能力较强的人员转向了软件实施: 为什么不愿意看到呢,自己培养起来的优秀人员都为别的部门.别的公司干活去了,而测试这边永远都是新人,永远都是刚入门的软件测试工程师:开发 水平一般.业务能

一个老软件测试工程师的日志(转)

今天在整理电脑的时候发现这样一篇文章.已经想不起来是从哪里弄来的.仔细读来颇有一番收获.再次贡献给大家.愿大家在软件测试的道路上取得一席之地.实现自己的财务自由之路. 软件测试职业发展方向,大体上可以分为管理路线.技术路线.管理+技术路线. 软件测试,是技术主导的职业:不管选择哪条发展路线,都是需要一定的技术沉淀,只是相对来说,管理路线对技术方面要求不高而已.那么我们就先挑重头的技术 路线展开讨论.一般来说,一个普通的测试工程师刚入行,3个月左右熟悉企业的工作流程和模式,那么今后的工作内容趋于平

传统软件测试的互联网化改造

一直以来,测试作为研发环节中不可缺少的角色存在着,但大多数中小型公司的测试团队却以最弱小的姿态生存着.在互联网模式的冲击下,快速迭代.持续发布.不断试错成为研发部门的关键字,这一切不断冲击着传统软件测试中赖以生存的“流程”.“规范”等优势.这些都在迫使测试管理者必须去思考测试应该坚持的是什么?如何不断打造难以被代替的竞争力?    传统测试团队的定位和价值 传统测试团队的定位 测试是为了确保业务.品牌价值的最大化. 当一个公司有较高的品牌知名度和用户量,质量对于品牌价值的影响非常大.比如大型网站

零基础可以转行做软件测试吗?

首先答案是肯定的(当然这里说的零基础不是像做搬运工那样的零基础,而是说没有计算机相关的专业学习或工作经验).论坛中可以看到很多转行做软件测试例子,Erin曾经带过的测试人员中,也有非计算机专业.行业转行过来的. 作为一个入门门槛相对较低.薪资待遇又不错.而且需求量比较大的行业,软件测试工作目前确实很受青睐. 然而可以转不一定等于适合转.转行后做的不错的不少,但是不如意的也有,还是因人而异.转行非小事,对个人的职业发展有重要影响,所以尽量仔细考虑再做决定. 首先要了解软件测试到底是什么样的工作.可

软件测试面试题汇总

软件测试面试题汇总 测试技术面试题    4 1.什么是兼容性测试?兼容性测试侧重哪些方面?    4 2.我现在有个程序,发现在Windows上运行得很慢,怎么判别是程序存在问题还是软硬件系统存在问题?   5 3.测试的策略有哪些?    5 4.正交表测试用例设计方法的特点是什么?   5 5.描述使用bugzilla缺陷管理工具对软件缺陷(BUG)跟踪的管理的流程?    5 6.描述测试用例设计的完整过程?   5 8.单元测试的策略有哪些?    5 什么是并发?在lordrunne

面试官看到一定会打我---软件测试工程师面试套路和暗语灵魂解密

一.前言:自古深情留不住,总是套路得人心! 在我们的生活中,处处充满套路,事事都有潜规则.对于一切以利益为中心的职场来说,更是如此. 我相信每一个职场人都有自己的奋斗目标,谁也不愿意一辈子碌碌无为,但在实际工作中,有很多人都像中了邪似的,不懂得转变努力的方向,总是被吊死在一棵树上.这是为什么呢?是因为他们被套路了,他们成了潜规则的牺牲品.只有被坑过才知道,资产阶级在招聘启事上放出的蜜糖,简直就是我们无产阶级的心灵砒霜. 为了避免你被继续套路,下面为你分享职场招聘中话术圈套,不告诉你,你永远都无法

软件测试概述

• 不论软件的生产者还是软件的使用者,均生存在竞争的环境中: 软件开发商为了占有市场,必须把产品质量作为企业的重要目标之一,以免在激烈的竞争中被淘汰出局. 用户为了保证自己业务的顺利完成,当然希望选用优质的软件. 软件带来错误的原因很多,具体地说,主要有如下几点: • 交流不够.交流上有误解或者根本不进行交流 • 软件复杂性 • 程序设计错误 • 需求变化 • 时间压力 • 代码文档贫乏 • 软件开发工具 什么是软件测试 软件测试就是在软件投入运行前,对软件需求分析.设计规格说明和编码的最终复审

软件测试——Peer Review

一.什么是peer review peer review是一种通过作者的同行来确认缺陷和需要变更区域的检查方法.需要进行同行评审的特定产品在定义项目软件过程的时候被确定并且作为软件开发计划的一部分被安排的进度. 二.背景 这周三老师在课上安排了peer review,每5-6个人一个小组,自己进行分工,并对样例软件进行peer review. 三.peer review的图解及分工 Moderator (主持人) 主持人的主要职责,在评审会前负责正规技术评审计划和会前准备的检查:在评审会中负责调

软件测试不再黑盒— threadingtest带来第二代白盒覆盖率技术

软件测试不再黑盒- threadingtest带来第二代白盒覆盖率技术 穿线测试对于测试界的一个重大创新在于,在白盒测试理论出现数十年以后,上海零一拼装信息技术有限公司结合在测试理论方面十余年的潜心研究,率先提出了第二代覆盖率技术,这绝对不是一个口号,而是ZOA真正对于白盒测试的理解以及对于标准第三方测试服务的深度理解经过数年的基础研究以及2年有余的研发而推出的达到商用标准的技术.现在先让我们温习下经典的测试理论: 1.测试方法论 黑盒功能测试法 黑盒功能测试法, 是把要测试的软件看成一个 "黑