上一篇 / 下一篇 2014-08-26 12:46:29
查看( 1 ) / 评论( 0 ) / 评分( 0 / 0 )
测试的几个级别,看看大家都在哪个级别呀。貌似我刚过了第一阶段,但是还没到达第二阶段呀,是不是我混的太差了呀。
软件测试职业生涯有主要分为七个发展阶段,如下:
第一阶段:初级测试工程师
初 级测试工程师基本上是初入行具备计算机专业学位或一些手工测试经验的个人。具体做一些执行测试用例,记录bug,并回归测试,通过qtp等测试工具录制回 归测试脚本,并执行回归测试脚本的工作。如果此阶段的测试工程师向发展到下一个阶段的话就需要学习开发测试脚本并且开始熟悉测试生存周期和测试技术。
第二阶段:程序分析员或者测试工程师
此阶段的测试人员基本有了1~2年工作经验。具有初步的自动化测试能力,完善自动化测试脚本。主要工作是设计和编写测试用例,编写自动测试脚本程序且担任测试编程初期的领导工作。此阶段的测试人员想发展的下一阶段必须拓展编程语言、操作系统、网络与数据库方面的技能 。
第三阶段:程序分析员或者高级测试工程师
此 阶段的测试人员基本有了3~4年经验的测试工程师或程序员。具有一定的行业业务知识,储备系统分析员的能力。此阶段工作主要是帮助开发或维护测试或编程标 准与过程,分析软件需求,获得测试需求。确定测试需求相应的测试方法,获得测试策略方案。参与同行的评审(软件需求,软件测试计划等),并为其它初级的测 试工程师或程序员充当顾问。如果想继续往上发展必须继续拓展编程语言、操作系统、网络与数据库方面的技能。
第四阶段:测试组负责人
此 阶段的测试工程师有了4~6年经验的测试工程师或程序员。具有丰富的行业业务知识,具有系统分析员的能力,专长性能测试。工作中主要负责管理1~3名测试 工程师或程序员。集中于技能方面,担负一些进度安排和工作规模/成本估算职责。分析性能瓶颈的原因,为开发团队提供bug解决策略。如果想往上晋升需要深 度学习性能测试,测试技能。
第五阶段:资深安全或性能测试工程或测试高级负责人
此 阶段的测试工程师有了6~10年经验的测试工程师或程序员。工作中主要负责负责管理8~10名技术人员。性能测试整体方案设计,软件系统性能问题定位和性 能优化,内存优化及分析数据溢出等,分析系统的安全漏洞等。 负责进度安排、工作规模/成本估算、按进度表和预算目标交付产品。负责开发项目的技术方法。为一些用户提供支持与演示。如果想再往上发展,需要开发自己一 些特定领域的技术专长。
第六阶段:测试/
质量保证/开发(项目)、经理
此阶段的工程师已经有了10多年的工作经验。工作中主要负责管理8名或更多的人员参加的1个或多个项目。负责这一领域(测试/质量保证/开发)内的整个开发生存周期业务。为一些用户提供交互和大量演示。负责项目成本、进度安排、计划和人员分工。
第七个阶段:(公司级质量总监)计划经理
此阶段的工程师至少有15年以上开发与支持(测试/质量保证)活动方面的经验。主要负责管理从事若干项目的人员以及整个开发生存周期。负责把握项目方向与盈亏责任。
测试的职业发展和规划
测试的职业发展和规划
很多刚刚迈入测试行业或已进入测试行业有一段时间的同学,对自己的发展路线仍然迷茫,不知道该如何在测试行业发展或者不知如何很好的规划自己的职业生涯。虽然很多同学都问过老师,老师也详细的介绍过到过职业规划,但是由于时间限制不能全面很好的阐述。借本篇文章,相对详细的介绍一下以供广大网友参阅,由于文字的局限性,肯定不会尽善尽美,望大家谅解。
一个人从大学毕业,即开始发生从学生时代向职业人士的过渡,这种过渡走的好,可以实现毕生宿愿,体现个人价值,不管你是否喜欢,功名、利禄尽收眼底;如果走的不好,则会误入歧途,纵有凌云壮志、万丈豪情,难免一生郁郁不得志,终归化作片片飞尘,无语对穹苍!那么如何才能顺利的完成这种过渡、踏上我们豪迈的职业旅程呢?答曰:认清自己,选择适途!战国的魏人荆轲具有“十步杀一人,千里不留行”的本领,曾向魏王献策曰:“国君,我是职业杀手,我杀人的技术很强!”魏王问:“那么你想杀谁呢?”对曰:“杀他个国君如何?”魏王大惊,慌然离去!后来荆轲离开魏国,与燕太子丹密谋,留下了“图穷匕
首见”、“荆轲刺秦王”的千古佳话。荆轲,良禽也,择木而栖和太子丹合作,是他的高明之处;不过笔者认为他是一个典型的“低管理、高技能”的人才,当他紧握嬴政的脖领、持剑相逼时,他太得意忘性了,可见他没有领导的“统御力”和“决断力”,所以落了个刺杀失败、拔剑自刎的下场,虽然他的侠义与胆识流畅千古,但是终究是个“杀手”而已;当今社会下,如果“低管理、高技能”的人干工作干到丢了性命,那也真是一个笑谈了!
目前我们国家高等学历大幅度扩招,造成社会的低端人才严重过剩,大学生毕业找不到工作、或者找不到合适的工作例子鳞次栉比;但是社会各行各业对高端人才的需求又求贤若渴;那么如何解决这种矛盾呢?从大环境来说,国家应该改革教育体制、提高教学质量、重视高端人才的培养,但是,一个问题一旦上升到国家的层次,就要等它个十年八年!我们没有办法改变世界,但是我们有能力改变自己;所以我们从个人的角度来讲,讲讲我们这些软件测试的从业者们,如何“认清自己、选择适途!”
纵观当今社会各行各业,对于个人的职业发展方向,从宏观上都可以划分为四个群体,即:
“低管理、低技能”
“高管理、低技能”
“低管理、高技能”
“高管理、高技能”
而在IT 行业这种划分方法更为合理,测试yoyo老师为其命名为“一起点-三方向示意图”:
告别了象牙塔,带着对校园生活里那段风花雪月的追忆,年轻的毕业生们走上了社会;这时候的年轻人,大多数是属于“低管理、低技能”的群体,我们没有工作经验,不知道企业的工作流程,不清楚各个职业的工作技能,更不具备任何行业的管理能力;然而值得庆幸的是,人类问明发展到现在所出现的众多行业,都已经有了众多可以参考的群体,这些群体就理所当然的成了我们可以借鉴的发展方向!虽然我们的起点都是一个,但是可以选择的发展方向却是丰富多样!
高管理-低技能,即是我们通常所说的管理路线!在IT业,这个方向的成功者不乏项目经理、项目总监直至企业的最高管理层;但是走这个方向也要有技术方面的积累,因为管理者的影响力中,除了职位赋予的权力以外,还包括个人人格方面的能力和专业领域的专业能力,而后者就是技术水平!而计算机行业本身,也决定了技术底蕴对职业发展的重要影响,所以年轻的IT朋友们,如果想为自己的职业人生设计成这个路线,除了适当的技术积累外,更要有意识的锻炼自己的管理素质,下图可做参考:
低管理-高技能,即通常所说的技术路线!IT业以技术为主导,对于喜欢钻研技术、探讨技术的人,可以选择该条路线,走的深入、走的彻底!只因中国对于技术与管理的认识不同,造成很多人认为做技术不赚钱、不被重视,自身误以为不过是个工程师而已,所做事情只是辅助企业的运作。实际上,在欧美发达国家,资深技术人员的薪资非常高,从业时间的周期也相当长,在Microsoft、IBM等巨头企业,不乏年龄在50岁以上的资深程序员或系统架构师,而其薪资也和高级管理者一样高!而另外一个不争的事实是,企业对于管理的职位是有限的,并且一些优秀的技术人员不愿做管理,或者不适合做管理,因此社会上出现的资深技术专家(或者类似职位),为喜好技术的从业人员提供向上的通道。
高管理-高技能,即咨询方向是较为均衡、全面的路线,也是众多企业希望员工努力的方向。然而有调查结果显示,由于现实种种因素的制约,大约90%的个人是分别沿着管理方向或者专家方向发展的,真正实现在咨询方向达到一定的高度的人少之又少,而且在这为数不多的咨询方向达到又一定高度的人才,往往又会由于企业资源的限制无法将个人价值完全发挥而最终离开所在企业,成为专业培训师、咨询师;一些国际知名的咨询公司如麦肯锡、安达信乃至毕博或其他,可谓大家在个人职业生涯到达一定阶段,作为自己继续突破职业瓶颈的发展路线。
那么,对于软件测试的从业者,我们的出路在哪里?我们的职业发展该如何设计?我们的发展方向又有哪些呢?这里笔者和大多数测试同行意识相同,笔者也曾在多篇文章里标明,中国的软件测试行业尚属起步阶段,其发展的步履上布满了荆棘与泥泞;然而其发展速度可谓惊人的,从笔者刚毕业时候对软件测试的“0”概念、从业同行者寥寥无几,到最近2年的各大媒体纷纷报道的中国软件测试人才缺口20万、软件测试工程师将成为未来10年最紧缺的人才之一、包括笔者所接触的众多国内外优秀企业对高端测试人才年薪10万、15万、20万的招聘需求??可见,选择软件测试这个朝阳行业的朋友,做了一个比较正确的选择!下图是软件测试工程师的职业发展示意图:
然而,如何任何事物总有它的两面性和矛盾性:2006年初在北京、上海、深圳举办的几次春季大型招聘会上,多家企业纷纷打出各类高薪招聘软件测试人员的海报,出人意料的是,收到的简历尚不足招聘岗位数的50%,而合格的竟不足30%??引起我们思考的是,我们的软件测试从业人员还有很大一部分不满足当今社会的需求;而另一层含义是,我们还有很大的提升空间!因此解决该矛盾的突破点是:每个人在这个行业里找到自己的发展方向,规划自己的职业蓝图,从而有针对性的锻炼自己的职业技能,增加个人的职业砝码!
软件测试职业发展方向,大体上与上述的通用职业发展路线图相吻合,也可以分为管理路线、技术路线、管理+技术路线;只是针对该行业本身,有其特殊性和细致性。其图示如同两个重叠的”V”字样,我们为其命名为“双V模型”;该模型适用于大多数行业性软件测试从业人员,一些特殊领域如游戏测试、嵌入式测试、硬件测试,也可作为参考。本文是三部曲之一,只介绍职业发展方向定义,在下一曲会介绍各个职业方向应该具备的知识与技能体系!
双V的底点是测试工程师,属于软件测试职业生涯的初级域,其适用范围是入行软件测试3年内的常规测试从业者,其主要工作内容是按照测试主管(即直接上司)分配的任务计划,编写测试用例、执行测试用例、提交软件缺陷,包括提交阶段性测试报告、参与阶段性评审等。初入测试行业,进入企业从事测试工作的人员,都要从该层次做起,虽然有时感觉乏味无趣,甚至迷茫困惑,但是我们可以根据个人的兴趣与特长,向上选择适合自己的路线,因为谁都不会甘心一辈子只做一个普通的测试工程师,那么大家看到这里,就可以摩拳擦掌,看看向上发展的通道中,哪一个适合自己,然后立刻从现在开始,确定自己未来5年、10年甚至一生的发展目标迈进,用笔者经常跟学员说的一句话来形容:把握现在,即刻做起,相信自己是最强的!软件测试V型图:
首先是常规路线,即双V模型的重叠线,这条发展路线要求管理与技术并重,因为软件测试的行业特点决定了这个因素:测试工程师向上晋升到测试主管、测试经理、测试总监,直至咨询域的更高方向!
测试主管是企业项目级主管,对于中小型软件公司也可以是企业级主管,属于中级发展域,适用范围是2到5年职业经验的测试从业者。其工作内容是根据项目经理或测试经理的计划安排,调配测试工程师执行模块级或项目级测试工作,并控制与监督软件缺陷的追踪,保证每个测试环节与阶段的顺利进行。严格来说,这个级别更多属于测试的设计者,因为企业的测试流程搭建是由更高级别的测试经理或相关管理者来做的,测试主管负责该流程的具体实施;而更多的工作,是思考如何对软件进行更加深入、全面的测试。因此笔者认为测试主管比较有创造性的工作内容就是测试设计,而恰恰很多公司忽略了或没有精力来执行此工作内容!应该说,在一个企业里做了3年左右测试工作的人员,很容易晋升到该职位,而之所以晋升,是与个人测试技术的过硬、测试方法的丰富,加上对测试流程的监控力与执行力的职业素质息息相关!
测试经理是更高级别的测试管理者,属于高级测试方向域。对于大中型软件公司,该职位尤为重要,并且对其职业要求也比较高,一般适合4到8年的测试从业者,在管理与技术能力双双比较成熟的情况下,可以结合具体环境晋升到该级别。测试经理负责企业级或大型项目级总体测试工作的策划与实施。随着软件行业的发展,企业对软件工程里各个角色的定位逐渐明显,测试经理完全与开发经理(一些公司也成为项目经理)平齐,除了需要统筹整个企业级或项目级测试流程外,还要对于不同软件架构、不同开发技术下的测试方法进行研究与探索,为企业的测试团队成员提供指导与解决思路,同时还要合理调配不同专项测试的人力资源(如业务测试工程师、自动化测试工程师、白盒测试工程师、性能测试工程师),对软件进行全面的测试;另外,一些企业里,测试经理还需要与客户交流与沟通,负责部分的销售性或技术支持性工作。嘿嘿,看看那些高薪招聘测试经理的企业对该职位的要求里外
语口语的描述,就可见一斑!
测试总监,属于常规发展路线的最高域,如果再往上发展,那只能是咨询域了;不过笔者并没有将其在图中标记出来,因为该职位对于国内目前的大多数软件公司根本没有设立,也就没必要再在图中体现了。该职位一般在大型或跨国型软件企业,或者专向于测试服务型企业有所设立,由于其企业自身的职位定位不同,以及软件测试整体行情所处的阶段,这里不好归纳陈述;但是一般设立测试总监的企业,该职位都相当于CTO或副总的级别,是企业级或集团级测试工作的最高领导者,驾驭着企业全部的测试与测试相关资源,管理着企业的全部测试及质量类工作。而其职业要求,也是技术与管理双结合;基于目前软件测试行情看,这种高管理-高技能的发展目标,不会适合大多数人的选择,社会也不会提供如此众多的测试总监职位让我们去应征!
应该说,大多数测试从业者都不是技术与管理双优的人,而如今一些到达测试经理或测试总监级别的优秀测试人才,已经领先一步开辟了这条发展路线的先河,希望这些朋友和大家多多分享经验,让更多的朋友弥补自己管理或技术上的不足,在这条路线上有所建树,共同提高,在实现个人人生价值的同时,也自然而然的推动了软件测试行业的发展;行业发展了,测试人员不再被忽视了,待遇自然也提高了,也就不会有很多朋友迷茫的跟我说“我的日常工作只是点击按钮和按键盘”了,因为我们相信行业的不断成熟,会逐渐将软件测试职业细化,我们的从业者就可以真正的在如下的管理路线和技术路线找到自己的位置,并潜心走向深入的!
软件测试,是技术主导的职业;不管选择哪条发展路线,都是需要一定的技术沉淀,只是相对来说,管理路线对技术方面要求不高而已。那么我们就先挑重头的技术路线展开讨论。一般来说,一个普通的测试工程师刚入行,3个月左右熟悉企业的工作流程和模式,那么今后的工作内容趋于平稳。然而社会是残酷的!如果单单停留在测试工程师的阶段,若干年后,相信你再也竞争不过那个时候的应届毕业生,当你的工作技能和职业素质趋于与那些朝气蓬勃的年轻人相当时,企业会毫不留情的选择他们,而release你,因为你的成本消耗要比他们高,这是大实话!然而现实又是公平的!因为软件开发技术的不断日新月异,软件功能需求的不断丰富多样,决定软件开发这一系统工程的错综复杂,因此为了保证软件的质量,就要提高测试的水平,这也就为软件测试职业的细化起到先决因素,也是目前社会上出现招聘专项测试工程师的必然趋势!
因此,这个趋势给了我们这些常规测试工程师一个空前的好机会!所谓“以毒攻毒”,软件开发靠的是技术,为了测试软件,也必须用技术;那么我们就来看一下从技术路线,软件测试职业发展有哪些方向。
技术路线,笔者结合国内外软件测试行业现状,划分为三个半方向,分别是自动化测试工程师、白盒测试工程师、性能测试工程师和认证测试工程师,在“双V模型”中右侧体现;前三者适用于通用软件测试领域,认证测试工程师乃嵌入式测试领域职位,至少目前仅出现在嵌入式领域,因此以虚线标记,即“三个半”的“半”。前三条路线对技术的要求程度逐渐增加,三条曲线的斜率也依次递增(认证工程师不参与比较)。
自动化测试工程师,笔者为其定义在功能测试范畴,指通常所说的依靠自动化测试工具进行软件黑盒测试的工程师。笔者接触的很多测试界朋友,尤其年轻的刚入行者,对测试
工具充满了无限的兴趣,他们喜欢那种编写脚本、调试成功后的快感,喜欢看到自定义的日志里记录了本来手工测试烦琐的无聊头顶的工作、而采用自动化方式实现后如此清晰丰富的内容后的兴奋!可以理解,因为笔者也是从那段时光走过来的,现在也负责于我们学员的自动化测试教学工作。从大环境讲,自动化测试是软件测试执行阶段的必然趋势,社会对于软件测试的认可度以及对自动化测试人才的需求必将日益增加,从目前国内做自动化测试的从业者薪资情况看,也普遍高于常规测试工程师,最浅显的道理是“自动化测试比手工测试有了技术含量,^--^”虽然自动化测试在整个行业的普及不是一朝一夕,但是从个人角度讲,自动化测试可以作为个人的发展方向之一,因为如果你率先掌握了这种技术,等到社会需要时,你已成为这个职位的成熟操作者!而国内的测试,潭州软件测试学员把握了时代前沿,也是国内测试培训行业的风向标,所以测试选择一个好的学习地方也是非常重要的!
白盒测试工程师,笔者定位于在软件测试周期的单元测试阶段对软件进行的代码级测试的人,包括代码走读、代码功能与逻辑测试、代码内存泄漏检查、代码运行效率检查、代码测试覆盖率分析等。如果说,自动化测试只是依靠脚本语言完成测试脚本编写与调试的过程(因为自动化测试工程师的工作重点不在编写脚本),对于自动化测试工程师的技术要求要相对偏低的话,那么白盒测试工程师就要对大型程序开发语言的完全掌握,因此其技术要求相对偏高!而另一方面,白盒测试在目前国内软件行情下,一些公司根本不做,其成本高、代价大的特点决定了这个现状,而一些对软件质量要求非常高(如军事类、电信类、财务金融类等)的企业,也会调动开发工程师来实施此事。但是,还是那句话,测试行业在发展,测试人员能力在提升,软件的开发技术在复杂化,要对软件进行尽可能全面的测试,白盒测试不可忽视!当下专门高薪招聘白盒测试工程师的企业也比比皆是,从中我们可以感知,白盒测试工程师会是很多有开发背景、意欲进入测试行业的良好突破口,白盒测试人员的需求也会逐渐增加。
性能测试工程师,即在系统测试阶段、功能测试后对软件系统性能指标进行采集分析和运行效率检测的人。笔者认为,在一个尽量压缩的测试流程里,功能测试可以手工进行,白盒测试可以不做,但是性能测试必须要做,除非该软件非网络类软件即单机版软件!这里笔者再提一个观点供大家参考:软件测试,从宏观上可以划分为三个大方面:功能测试、性能测试、安全性测试,功能测试说明软件做对了,功能测试+性能测试说明软件做好了,三者结合起来说明软件做的非常好!安全测试暂且抛之不提,这是下一个发展域的内容,但是为了把软件做好,为了真正保证软件的质量,性能测试绝不容忽视;只因目前很多企业由于时间、成本、人力条件的限制,暂且不做性能测试。性能测试工程师相对来说,是三个技术路线里技术要求最高的,因为软件的性能瓶颈归根结底落实到代码的运行效率这个问题上,因此性能测试要做好,性能测试工程师起码要懂开发;而为了发现性能问题,要懂软件开发架构;为了定位性能问题,要懂操作系统、网络协议、应用服务器乃至数据库的原理与使用;为了最终解决性能问题,要根据定位的问题有针对性的对代码、操作系统、网络架构、服务器、数据库进行优化!当然性能测试是一个系统工程师,绝对不是一两个人的事情,对于常规性能测试工程师,具备定位性能问题的能力即可。正因为性能测试工程师技术要求的高超,该职位的待遇也是目前测试技术路线最高薪的一个,实为综合技术能力较强的测试人员的明智选择!
上述四职业路线由于其技术程度的突出,一般在企业里由测试经理直接所属,与测试主管级别具有相同的待遇,并处于相同发展域。
进入技术路线的高级域,根据中级域的四个路线,可以细分成五个路线,分别是资深自动化测试工程师、资深白盒测试工程师、资深性能测试工程师、安全性测试工程师、标准化工程师,这些高级技术类人才完全与常规测试经理平齐,属于软件测试职业发展高级域。
资深自动化测试工程师由自动化测试工程师晋升而来。如果说常规自动化测试工程师只是负责自动化测试脚本本身的设计与开发,那么资深自动化测试工程师的工作内容就是自动化测试这项工作的实施!笔者早年在IBM公开讲座时候,讲过一篇《以RUP原则实施自动化测试》的主题,RUP里提倡自动化测试是一个庞大的系统工程,绝对不是有了技术、有了工具、有了掌握技术和使用工具的人就可以实施的,而是应该把自动化测试当成一个针对企业自身的项目来看待,需要经过引入、计划、设计、测试、执行、配置管理等环节(参加测试yoyo老师的blog“共享利他求真务实”),而这些自动化测试的流程搭建,就是资深自动化测试工程师的份内之事。另外,笔者要强调,按照国内外自动化测试领域的发展趋势,我们把自动化测试划分为四个发展阶段(我的blog里也有阐述);也就是说,录制脚本-添加验证点-回放脚本只是最初始的自动化阶段,要在企业实施自动化测试,要有资深自动化测试工程师来设计数据驱动,开发测试框架,甚至一些企业内部自主开发小型测试工具(而非商业工具)的先例,这些也都是建立在资深自动化测试工程师具有深厚的技术底蕴后,主导其他人员协调完成的事情。
资深白盒测试工程师,其工作内容包含常规白盒测试工程师的内容,除此之外,要协助测试经理或测试总监攻关测试方法与技术性难题,因此其技术水平更加雄厚。如果常规白盒测试工程师是停留在某种程序设计语言类型的代码级测试,那么资深白盒测试工程师就要脱离程序设计语言本身,结合不同架构、多种开发技术交互的情况下,寻找代码测试方法,并具有对代码优化的能力。由于该路线在国内很少有实例参考,这里不再赘述。
资深性能测试工程师,来源于常规性能测试工程师,按照常规性能测试工程师的技术要求,资深性能测试工程师应该具备性能测试整体方案的设计能力,以及软件系统性能问题定位和性能优化的能力!初此之外,也要对主流的软件开发模式下的应用系统具有敏锐的洞察意识和感知意识。软件开发的架构会日益复杂化,软件应用的各种软硬件平台、数据库类型、服务器类型、网络协议层出不穷,不得不说,都为性能测试的从业者们提出了严峻的考验!值得庆幸的是,各种同类产品的厂商在开发产品时都遵从业内统一标准,性能测试人员结合自身的丰富经验,加上对软件性能测试技术的研究,这样的考验我们欣然面对,这样的人才则会日益增多,在软件测试行业里充当佼佼者地位。
安全性测试工程师,笔者将其从性能测试工程师衍生出来,因为只有具备性能测试经验的人,才对软件的开发模式、实现架构和技术本身充分了解,才会感知和预见软件系统存在的安全漏洞,加上其本人是测试出身,才知道如何通过系统漏洞尝试攻击软件系统,达到测试的目的。目前国内软件行业对于安全性测试的认识尚未清晰,该职业也更没有普及,一般只限于军事类、机密类、防病毒类或其他高安全性软件的测试工作中。
再次强调,人类进入文明社会后,任何社会活动都不是独立的个体能够实现的;在高度讲究团队合作、协同办公的今天,软件测试工作更不是测试工程师几个人就能做完所有的事情的;上述各发展路线的技能要求,只是为了增强个人职业突破的砝码,你的砝码越多,“被利用”价值越大,为企业创造利润的程度越高,企业自然给予你更丰厚的回馈!达尔文伯伯的“优胜劣汰”自然规律不会变,“多劳多得、少劳少得”的市场规律也不会变!
曾经有如此众多的测试职业发展路线放在我面前,结果我没有珍惜;等到软件测试行业发展到成熟阶段,我想入行却入不了行的时候,我才后悔莫及;尘世间干测试最大的不幸莫过于此;如果非要问测试yoyo老师的话:再往上的发展通道是什么,那么测试yoyo老师一定要告诉你,技术专家域!
在技术路线,向上继续提升的方向,我们称之为“技术专家”;如果说前面描述的技术职位的所涉范围都定位在企业内部,即企业级资深性能测试工程师,那么技术专家,我们可以看作是领域级专项人才!随着软件测试行业的职位不断细化,每个人在自己擅长的领域走向深入,都可以成为该领域的技术专家,技术专家在自已经营的领域里,具有个人独到的见解和深厚的技术实力,而这类人才可以不再从事具体的测试工作,而是提供行业性测试技术咨询、培训等,为软件测试整体行业的发展,起到了鲜明的带头作用。在一些专业的咨询、培训公司,或者IBM、Microsoft等巨型公司,不乏这样的人才;然而目前在我国,这样的人才较少,但是却可以为我们大家提供努力方向,只要我们每个在技术路线供职的测试从业者,规划好自己的职业人生,并以坚韧的毅力和顽强的斗志,若干年后,你我皆可笑谈测试人生,把酒临风,其喜洋洋者矣!而目前在国内几个IT行业发达的省市,专项于软件测试服务或一些大型软件企业,也有这样的职位暂露头角,我们深信,社会对高端人才的需求趋势是越来越大的,更多的优秀企业也会为员工提供更多、更广的发展空间,值此大好形势,就看我们个人如何充分利用这些上升通道了。
在我们的软件测试从业人员里,有这样一部分群体:他们非计算机相关专业毕业,不懂软件开发,由于国内种种对软件测试人才的偏激认识,认为测试人员不需要懂开发,只要会编写文档、执行用例即可;因此很多测试工程师并不具备开发背景,并且对软件技术掌握肤浅,而对于没有技术底蕴的人强迫其走技术路线,不能不说是一种折磨!因此,这个群体里的朋友,是不是认为自己只能做一辈子常规测试工程师呢?答案是否定的,因为在“双V模型”的左侧,是软件测试职业发展的管理路线。软件测试的管理路线,与通用职业发展示意图的“高管理-低技能”并不完全相同,只因软件测试独具的行业特点,我们认为软件测试行业的非技术路线发展方向,更多的是从软件测试行业衍生出来的职位,如质量保证、配置管理。如果说软件测试职业发展的技术路线更侧重于职业技能的提升,那么这条管理路线则更侧重于职业素质的积累(笔者强调是“侧重”,并不表示不需要);换句话说,技术路线更侧重人的智力因素,而管理路线更侧重人的非智力因素。
从事了1到3年左右的常规测试工程师,在经过对个人性格特点剖析后,如果认为自己是一个倾向于“高管理-低技能”的类型,那么想要实现自己的职业提升,可以向中级发展域的配置管理工程师、质量保证工程师、业务测试工程师转型。
配置管理(SCM)与质量保证(SQA)同是CMM中的关键过程域(KPA),也同是现代软件工程里的必要角色,与软件测试同属软件开发团队的重要组成部分。只因这两个角色在软件工程里的人员配比数量相对较少,还不如软件测试这样规模化乃至于形成行业,而最多是一个职业;另外一个社会现象是,企业很少直接从社会直接招聘配置管理工程师和质量保证工程师,而通常的做法是从企业内部的现有测试员工队伍里选拔,而转型后的测试工程师,就成为SCM或SQA。分析其原因,我们可以感知,SCM、SQA与软件测试工程师都是关注于软件质量的相似职位,社会对于配置管理、质量保证的定义和工作内容并未普及,与其直接从社会招聘“0”基础的人来培养,倒不如从软件测试人员里升华!一般来说,这两职
位的上报对象是项目经理或相同级别管理者。
转型后的配置管理与质量保证工程师,一定要转变一个意识,那就是常规测试工程师的工作范围很大一部分(不是全部)只限于测试流程,而配置管理和质量保证的工作范围是面向整个软件开发流程,二者的职业要求都非常重视软件工程知识体系的建立和软件开发总体流程的实施能力。由于配置管理工程师除了企业配置管理流程的搭建与实施外,一般会涉及配置管理工具的管理与维护,而质量保证工程师更多的工作是软件开发流程的控制与维护,故而配置管理对技术的要求稍高于质量保证。随着我国软件行业水平的不断发展,众多软件公司纷纷通过CMM/CMMI,企业对于软件开发团队的角色配比制度也将逐渐健全,当前社会对配置管理与质量保证工程师的职位需求日益增加,种种现象表明,对于软件测试工程师出身的从业者,转型至SCM/SQA不失为突破个人职业生涯瓶颈的又一通道!
业务测试工程师,笔者定义为面向行业类软件业务逻辑与工作流测试的人员。当前软件开发类型,很大一部分是行业类软件的应用,如ERP、SCM、CRM、OA、电信、金融、财务、嵌入式、通信、手机、游戏??这就要求从事行业类软件测试的人员具备行业背景、业务知识,熟练该行业工作流程。从社会上出现的很多对此类经验要求的测试工程师招聘信息中,我们更加肯定这种趋势;所谓存在即是道理,既然社会上有了需求,那么就可以作为个人发展的方向。而另外一个特点是,业务测试工程师的工作内容主要是黑盒测试,属于功能范畴,因此对技术要求不大,设置一些大型行业类软件公司的业务测试工程师薪资丰厚,但是完全可以不懂技术,因为它的工作性质决定了不需要懂很多的技术!他们甚至连软件的界面测试都不做——交给常规测试工程师实施,而完全关注软件的业务性和易用性,由于其深厚的行业背景,可以为软件的在正式发布前提出很多建设性的意见,而这些建议正是软件开发商提高产品易用性、增加用户满意度、开拓市场、创造利润的关键因素之一!
当管理路线的中级域方向继续上升至高级域,就分别到达配置管理经理、质量保证经理、产品经理、业务专家,这类人才地位高、待遇厚,一般资深的软件工程领域专家都聚集于此。
如果说配置管理工程师、质量保证工程师更加侧重于配置管理流程、质量保证流程的实施与日常管理维护,那么配置管理经理、质量保证经理就是更侧重于配置管理流程、质量保证流程的建立与改进。一般在中小软件企业,可能没有这两个角色,而全部的配置管理或质量保证工作都由工程师担当;但是大中型软件企业对资深配置管理经理、资深质保经理求贤若渴。软件系统越庞大,软件开发团队规模就越庞大,软件开发流程中出现问题的几率就越高,高效管理软件开发流程,不断改进软件质量,是每个软件公司在技术上没有顾虑后的下一个急需攻破的难关!
业务专家,属于行业内咨询、顾问的角色,已经几乎脱离了测试工作本身,而更多为企业的产品需求分析、设计、开发、测试等各个环节提供指导工作,其目的也是提高软件的易用性和稳定性,减少后期不必要的需求变更。该职位也同样在目前热点行业的大中型软件企业有所设立。
产品经理,这个职位在很多企业有所设立,笔者认为它是质保经理的派生,只是它更侧重于软件在产品化之前的质量监控工作,包括软件开发流程、软件测试等技术与管理的各个方面。由于该职位在业内没有明显定义,而根据不同企业的职位定位不同,这里无法统陈
共享 利他 求真 务实
述。
管理路线的最高发展域是咨询域,与技术路线的专家域类似,在配置管理、质量保证、软件产品化、行业领域达到高深造诣的人才,他们有丰富的从业经验、深厚的管理底蕴,具有对软件工程高瞻远瞩的慧眼和胆识,往往供职在专业的咨询与培训公司,提供IT业管理类咨询与培训的服务,推动着软件行业的前进。国内外很多为软件企业进行CMM咨询和实施的公司里,就是这些人才的大本营之一!
笔者认为,在“双V模型”的管理路线里,中低级发展域的人才对技术与管理的区分较为明显,而到了高级与更高级发展域,更多的是复合型人才,软件业以技术为主导,没有一定技术积累,还是很难达到高级境界;要在管理路线练出“上乘武功”,还是希望大家在主攻管理与流程类课题的同时,多丰富下自身的技术层面,嘿嘿!另外,笔者提倡管理与技术两条路线的平齐,而并非目前社会上认为的技术要比管理低一等,技术是靠吃青春饭,在这些人才到达最高发展域的“咨询”与“专家”层面,二者应该完全具有相同的地位和待遇,只是“称谓”不同罢了!
“双V模型”是测试yoyo老师结合当前国内外软件测试行业现状提出的职业发展流程图,仅供测试从业者参考,并非一个“死”的框架,大家不要拘泥于流程图本身;其实目前国内很多上升到高级域或最高域的资深人才,很多都是跳跃式、甚至跨越式的职业发展,因为命运掌握在自己手里,任何人都剥夺不了设计自身人生蓝图的权利;而另外一个角度是,任何人都不该不珍惜为自己规划职业生涯的机会!
软件测试,一个日出东方的国际型行业,虽然偶尔会弥漫晨雾,甚或有暴雨来袭,但是测试yoyo老师觉得我们都该坚持!有人说:“什么叫失败?”答曰:“放弃就是失败!”每一次当我们身处逆境时,决不能用软弱的眼泪作为走向明天的见证,更不能用脆弱的感情去拴住生命的航线;是雄鹰就该搏击长空,是蛟龙就该挽起狂澜;沧海横流,方显英雄本色,疆场搏斗,可露壮士肝胆!人生没有豁免权,每位从业者只有怀着不息的斗志,乘千里长风,破万里巨浪,才能支配命运走向辉煌的明天!
软件测试职业发展规划
软件测试职业发展规划
在谈到职业规划,不妨先了解下测试职业的前景
国内软件测试工程师的职位从无到有,经历的时间还不足10年。成熟的软件测试理论体系构建也仅有10余年的历史。而纵观现在如雨后春笋般蓬勃增长的计算机软件企业,对优秀软件测试工程师需求和渴望的现实,不禁让我们不得不去思考一个问题:如何开展并做好软件测试工程师的培训工作。
对于软件测试的重要性,很多人有些误解。因为刚刚开始做软件测试的人员往往是从黑盒测试做起,而黑盒测试不需要编程经验,所以总是给人感觉测试人员不需要太多的知识,无论谁上了岗都能做,因此也就导致软件企业不愿意、也认为不需要对软件测试工程师开展培训工作。一旦软件产品发货到用户手中,发现质量低劣、效率低下、维护成本昂贵,又都毫不留情地骂测试人员无能,为什么测不出Bug(软件缺陷)。
中国有句老话:磨刀不误砍柴工。看到上面这种恶果,显而易见,现在至少我们应该达成一种共识:软件测试工程师也需要培养,并且需要接受正规培训。
-入职培训
软件测试工程师初来乍到一个公司,往往兴趣十足,预备全身心投入到“捉虫”的战斗中。但往往不得其法,事倍功半,因为抓不到虫子,或是即使抓到了虫子并不重要也被开发人员视而不见。设身处地的为这
些雄心勃勃的测试工程师想想,他们是多么需要入职培训。
软件测试工程师的入职培训可以从三个方面来分头进行。产品的培训、测试技术的培训和测试工具的培训。软件测试的工作对象即是企业开发的软件产品,所以务必要对软件产品有一个全面的了解和清醒的认识。作为一个测试管理者,应至少安排足够的培训时间,让测试新手研习被测试软件的内容。我们可以利用一切可利用的培训资料。软件产品本身、用户手册、开发组的需求规格说明书、技术文档,包括熟悉产品的人员进行功能讲解等等,用这些形式不拘一格的产品内容来迅速武装起测试工程师的头脑。光有这些培训还不能罢休,要善于检查测试工程师的学习情况,及时地向他们提问产品中那些最关键性的问题,如产品的核心概念、业务流程等。有培训有检查,通过一问一答的方式,既了解了初学者对产品的了解程度,同时也传授了产品中的精髓,并且还能够从初学者的疑问中抓到培训工作中的漏洞,为今后更好地开展培训奠定基础。
因为软件测试工程师总是如人们所预料的一样,来自于各行各业、五湖四海。有测试经验的,无测试经验的,统统汇集到企业中。所以必须的测试技术培训一定是要有的。培训内容主要以黑盒测试技术为主,一是因为黑盒测试技术是基础,二为的是成本更为昂贵的白盒测试人员在需要的时候,也能够出色的完成黑盒测试的任务。黑盒测试常用的测试方法、测试用例的设计、黑盒测试常见的测试类型、不同测试类型各自关注的主要问题等等,在入职培训中都应有所全面接触。同样,方法
的学习离不开实践的过程。可以找一些具有普遍性的功能点,由测试人员尝试设计测试用例。只有通过由易到难,由简单到复杂,不断反复的练习,才能慢慢建立起测试人员的测试
概念、设计方法、捉虫的敏感度,并且保证他们不会走不必要的弯路。
在入职培训中,测试工具的培训已经逐渐提到议事日程上来。随着软件规模和复杂度的提高,纯粹意义上的人工测试已经不能满足软件测试各个方面的要求,因此对于测试工具的使用需求应运而生。为了使大家尽早成为会使用工具的高端测试人员,所以在入职培训中也应重视测试工具的培训。LoadRunner、WinRunner、TestDirector,这些常用的测试工具是需要让测试工程师尽早掌握的。网络上汇集了这些工具的大量资料,只是看我们如何自己整合打包形成适合自身需要的培训资料。
二、在职培训
入职培训不过是软件测试领域的一块敲门砖,能够带领初学者尽早领悟到测试工作中最精华的那部分内容。要想真正培养出一位合格的软件测试工程师,只靠入职培训显然是远远不够的。几年前曾听一位资深软件开发工程师提到过InJobTraining的概念。意思是说,作为工程师自己要注重工作过程中的自我培训,作为管理者更需加强在工作进程中对员工的知识灌输和能力培养。
InJobTraining可以是正式培训,也可以是非正式培训。按照以往经
验,一对一式的非正规培训,其培训效果更容易得到保证。每经历一个产品或是项目的测试,都将是一次在职培训的极好机会。从跟随开发组开发用户需求开始,到协助开发组并审核开发组的功能设计,而后是测试工程师独立的完成测试设计工作,到最后的测试执行,测试管理者始终需要指导和带领测试工程师,教会他们在软件开发全生命周期的各个阶段,软件测试的工作目标、工作内容和结果物是什么。那些在入职培训中刚刚建立起的一点点测试概念和技术理论,需要在实际工作中得到最大化的尝试和实践。在在职培训过程中,测试管理者务必要花费较大的力气去审核测试工程师的各项工作,就如同在软件产品中捉虫一样,需要尽早发现每位测试工程师的工作漏洞、工作缺陷和改进的重点方向。不能以为通过入职培训,测试工程师就真的什么都已经学会了。不要忘记软件测试工作也是技术性很强的工作,和功能设计、代码开发一样,需要反复的实践,找出其中的不足,不断的加以改进,工作技能才能得到稳步的提高。
现在企业中定义软件测试工作范畴,恐怕大多数情况已经不再单纯是测试执行本身了。所以一批批软件测试工程师入职企业后,企业应该按照各位工程师不同的特点和特长,在在职培训过程中,为其选择重点进行培训,也就是进一步加强在职培训的趋向性。比如说,有人可能擅长完成较大规模功能的测试设计工作,那就重点培养其测试设计的能力;有人可能擅长利用测试工具开发测试案例,那就重点培养其测试工具开发的能力;有人可能具有极强的耐心、探究精神和怀疑的态度,那就重点培养其测试执行的能力;还有人可能具有一两年、两三年的开发
经验,那就重点培养其白盒测试的能力。总之,在职培训过程中,应当依照测试工程师不同的工作经验和技术背景,为其正确选择重点培养方向。如果面面俱到,很有可能发生投入大产出小的低价结果,而且会挫伤测试工程师的积极性,同时也会影响到测试管理者对测试工程师的客观评价。更何况作为测试管理者,也不可能有足够的时间和精力,逐个培养每位测试工程师的每项能力。所以基于这点考虑,在职培训中加强目的性、重点性,明确培训的
方向和目标就显得尤为重要了。
相信经过正规的入职培训和有的放矢的在职培训之后,我们的测试工程师在一两年时间里都应该能够有一个长足的进步了。但此时新的问题发生了。做了几年的软件测试之后,我的发展前途在哪里,好像我该学的我能学的都已经学会了。这时候,一系列的危险信号会陆续出现在测试工程师的身上。敷衍了事,吃老本,另谋职位找工作。哎,测试管理者发出一声叹息:仿佛曾经的培训投入都将付之东流了。要想遏制这种不良事态的发展,我们有一解:做好软件测试工程师的职业生涯发展规划。
勿庸置疑,谁都不想一辈子只做一个测试工程师。更何况按照自然规律,做了两三年测试工程师之后,一定有更好的发展前景等待测试工程师们去开拓。高级测试工程师、测试经理、测试主管;软件品质保证工程师、高级品质保证工程师、品质保证经理、品质保证主管、品质保证总监,几个职业发展序列都可以由测试工程师去自由选择,而从一位普通的测试工程师发展成为品质保证总监,没有十年八年的技术积累和经验沉淀,也是很难实现的。
选择适合于测试工程师自身条件的目标,并为其明确目标,并在目标基础上为其设计呈阶梯状的职业发展规划,也是测试管理者对测试工程师实施培训工作的重要组成部分。
现代软件企业一般都已有一套科学合理的职位序列,并每年在固定时间内为每位员工评定企业内部的职位。在此期间,测试管理者应在充分了解和掌握测试工程师实际工作水平和当年业绩的情况下,评定出最新的职位水平。更为重要的是,要在此时为测试工程师仔细设计和规划下一年度的职业发展方向。是向高级测试工程师序列发展,还是向测试经理序列发展,还是向品质保证工程师序列发展,要定义好明确的方向。一是为了便于测试工程师了解自己当前的工作状态,以及与今后的发展目标存在的差距;二是为了加强测试工程师的工作热情和动力,让他们体会到企业的发展要依赖于他们个人的发展;三是为了企业能够明确自身人才结构和知识结构的现状,扬长避短,为今后不断发展壮大企业,积累自身实力并增强信心。
在设计软件测试工程师的职业生涯发展规划时,往往会陷入到一个两难的境地:一个工作出色的测试工程师,今后是往测试经理方向发展,还是向高级测试工程师方向发展。
从人们的传统意识上来讲,总是觉得当了测试经理好像就有了一官半职,远远要比高级测试工程师显得高贵得多。所以形成了千军万马想过测试经理独木桥的现象。如何决策,一句话,要以人为本,从测试工
程师的自身条件出发。很显然,高级测试工程师主打自身的技术优势,只要保持技术优势就行了。而测试经理需要从无到有大量累积管理的能力和经验。最起码要具备经营能力、成本控制能力、工作统筹安排能力、人员管理能力、沟通协调能力等等。也就是说,如果选择了测试经理的发展方向,则无疑要付出更多的艰辛和努力,方可达到职位目标的要求。所以测试管理者在为测试工程师设计职业发展规划时,务必要冷静头脑、全面分析,不应也不能轰轰烈烈的一拥而上,让技术型人员去做管理工作,而擅长管理工作的人员就只在技术单方面谋求发展。
设计职业生涯发展规划的过程,严格意义上应该属于年度培训工作的开端工作,制定既定目标的工作。所谓万事开头难,为了一年甚至更长时间的软件测试工作卓有成效,测试管理者在开展好职业生涯设计工作的同时,务必要与每位测试工程师做好充分的沟通,达成双方的理解和共识,保证大家一条心,劲往一处使。在此测试管理者还可以借助外部的力量来完
成沟通工作。如利用企业的人力资源部门、技术委员会的资源和力量,群策群力,优势互补,减少设计工作中的偏差,积累设计工作的经验和技巧。
以上只是凭借实际的一些工作经验,总结出来的有关软件测试工程师培训工作的一些心得。潦草几笔,不成体系,欢迎大家批评指正。
看看现在软件企业的发展前景,以及对测试人员、测试环境、测试工具的需求增长,我们真的要脚踏实地的做好软件测试工程师的培训工作了,抓好软件企业的第一生产力,凭借人的智慧和才干,提高我国软
件企业的核心竞争力
测试职业发展方向规划指南
自从本人从事软件测试培训以来,接触了太多的软件测试工程师;发觉从业者多数存在以下现象:
——刚刚毕业,踏入IT行业,不懂开发或开发经验薄弱,被迫或“亚被迫”从事软件测试工作;这心哪,瓦凉瓦凉的,一是根本不懂这工作是干嘛的,二是这工作不被很多公司重视,于是唏嘘的心里留下一声声叹息,蹒跚的人生步履留下一串串疑问?
——从事软件测试工作2年以上,由于公司不正规的测试流程,不标准的测试方法,因此,终日碌碌无为的点击按钮,某日拍脑袋突发奇想,测试出来一个bug,于是兴奋焉?终后没有新思路,于是没有发现新bug,于是不再兴奋;于是这两三年来,无论测试经验,还是测试技术、方法,包括理论,都无长进,于是郁闷甚至极度懊恼这几年来究竟做了些什么,明天又该何去何从呢?仰天长啸,却无语对穹苍?.
——有过若干年开发经验,也许由于疲惫于终日编码,也许感觉软件测试是个朝阳领域,于是转做测试?但是好景不长,兴奋度持续一段时间,感觉自己的想法和思维方式与现实工作模式严重分歧,所谓天妒英才,空有一身本领,竟无用武之地!于是满腹的经纶化作无言的泪水,内心的豪情壮志也逐渐泯灭!接着开始逐渐适应了眼前的这份高级测试工程师的头衔和薪水,觉得干工作就是那么回事,何必计较那么多?虽未清晰构建余下二三十年的职业蓝图,但是也觉得起码自己比起很多同行,还算不赖;时间如流水般在烟圈与香水中消逝,吾生就是这样终日撞钟,铛——铛——铛——(好响!斑竹,猪头切一半给我,堵耳朵!)?
如果您作为一名测试工程师,看了上述三种状况,感觉自己不属于任何一种,那么只有两种可能:一是您是超级高手——您聪明绝顶,有着可以大展宏图的工作机会,又有满意的薪资,而且对这一行业无限热爱?反正对您来说,一切都太完美了,无懈可击!二呢,也许您是个漠视一切、目空一切的家伙,天塌下来当被盖的那种,反正什么言论对您都无懈可击!为此,本人建议此两种人不看本文,以免互相拍砖,破坏安定团结的大好局面^-^。
好啦,气氛活跃至此止,以下是严肃话题。
如果您是个积极进取、想在年轻时成就一番事业的人,那么请绝对相信这几句话:
——行行出状元!
——人生能有几回搏!
——错过这村,就没这店了!
为此,有必要说明下这几句俗语在软件测试行业的应用。首先,我们国内的很多软件测试从业者,是对软件开发不太擅长,但是又对软件行业又由衷的热爱,所以做了软件测试。但苦于读书时候没有学习过该方面知识,公司里又不一定有经验丰富的人员给予指导;因此,初涉软件测试的年轻朋友,大多做了半年、一年,感觉自身技能提高并不大,再加上整体行业发展缓慢,和网上的同行一交流,更是感觉软件测试没有希望,自己的前途黯淡无光!无奈只好终日吟唱“我的天是灰色,我的心是蓝色?”常言道,“男怕选错行,女怕嫁错郎!”——当然如今男女平等了,尤其软件测试从业者,男女比例基本上还算对等——那么,是不是
软件测试行业真的没前途?软件测试工程师真是低人一等呢?当然不是,而且绝对不是!和软件开发领域相比,测试发展不过短短的10来年,而且主要是近三五年,所以整体行业不成熟也就情有可原。但是换句话说,乱世出英雄!如果你学软件开发,你知道作为一名合格开发工程师需要学习什么,知道开发工程师的待遇如何,知道开发工程发展前景如何;但是测试行业还没有发展到让你足够看清这些东西的阶段,所以在软件行业中对于喜欢挑战性职业的人,那么软件测试绝对是个好的突破口。各种统计数据表明,国内软件测试的人才缺口,未来几年将达到30到40万,所以对于朋友们来说,干这行还是有相当大的发展空间!但是,如何在众多的从业者中独树一帜、成为行业状元呢?这就需要技巧了!
再说第二方面。记得有句歌词叫“无怨无悔我走我路,走不尽天涯路?”!如今这个年代,各行各业竞争都很激烈,很难再有90年代初猛然蹦出一批暴发户的机会;因此,不管你因为什么选择了软件测试行业,都要无悔的走下去,只要有决心和毅力,终会成就正果!网上有篇文章叫《不做浮躁的人》,说的很好,我想我们确实该脚踏实地的做些事情,提高自己。抱怨这个行业只会让心情更加压抑,投入的做些具体的事情,待到自己有足够能力的时候,那么你就是推动这个行业发展的先驱;如此一举多得的事情,干吗不做呢!做踏实的人,不做抱怨的人,就算我们改变不了这个世界,也不要在这个世界里迷失自我。换句话说,年轻时候不卖力做点事情,老来方悔则一切晚矣,回首这一生,碌碌无为,可怜、可叹?这也是我要说的“人生能有几回博”。
唱了这么多高调,鼓舞一下大家的气势。那么,究竟如何在国内的软件测试行业现状下找到一条适合自己发展、并能快速提高职业技能的捷径呢?
我想应该从测试工程师的职业生涯定位谈起。从宏观意义讲,软件测试可以划分为以下三个方面:
软件测试管理:测试流程管理、测试职业管理,测试技能方法管理等。
软件测试技术方法:根据软件测试的不同阶段周期、不同测试类型、不同软件类型等,深入研究软件测试的技术及方法。
软件测试自动化:自动化测试流程、自动化测试管理、自动化测试工具等。
软件测试大致分为以上三类,每类可细化为更多子方面,例如第二类根据测试类型还可细化为功能测试、性能测试、安全测试等,根据测试方法可细化为黑盒测试、白盒测试、灰盒测试等。因此,软件测试工程师的职业发展方向,也大致可以如此粗略分类,并逐渐细化。这里,之所以将软件测试自动化单独列出来,是考虑到软件测试自动化既包括技术方法方面,又包含管理方面;更重要的是,软件测试自动化是软件测试领域无法逾越的发展阶段,随着应用软件程序规模的不断扩大,业务逻辑的不断复杂,以及从业者相互协作关系的日益重要,在软件的测试活动里适当使用自动化测试是非常必要的;并且,这种思维已经逐渐在国内外众多软件企业的测试领导者头脑中定型,他们也都意识到自动化测试的种种优势,并都或多或少希望购买和培训自动化测试工具。我们接触的很多大中型软件公司,包括外企,甚至早就在内部实施自动化测试,其中以使用mercury loadrunner、quicktestpro以及testdirector等工具的企业用户居多。
这里我想对喜欢自动化测试或立志成为自动化测试工程师的同行朋友说点个人想法,并结合mercury自动化测试工具,推荐些许学习方法,以供大家参考。
如果你有过开发经验,哪怕一点点,并且一直以来从事的是功能测试工作,那么推荐你学习自动化功能测试工具,并在此方面深入研究下去。该职位待遇一般是本地城市手工测试工程师的两倍左右,如果到达高级自动化测试工程师职位,从事自动化测试设计或测试框架的开发,待遇会更高。Mercury公司的winrunner和quicktestpro,是目前最主流的自动化功能测试工具,学习二者的方法也很简单,只要懂得c语言和VBscript即可。要深入学习,当然还要熟悉自动化功能测试的流程、管理及深层开发(包括测试框架、库函数等)。当前国内的应用软件开发,主流还是c/s与b/s两种架构,前者一般采用vb、vc、delphi、pb或java等开发,而winrunner工具对此类软件支持得比较好,很适合在这样的软件测试活动中采用自动化测试;后者一般是采用.net或j2ee技术开发的基于浏览器类软件,测试该类软件就非quicktestpro莫属了,它是mercury公司专门针对web程序的自动化测试工具。由于自动化功能测试工具品牌多,入门简单,因此,也是众多立志成为自动化测试工程师的首选。 作为一名软件测试从业者,我们知道执行性能测试,使用手工方式是无法想象的,因此借助工具来实现是非常必要的。目前业内存在两种现状:一是很多公司为了节约购买工具的成本或本身不要求软件性能指标而干脆不执行性能测试;二是由于性能测试是一门博大精深的技术工作,起步较高,因此这方面的高手不多,造成很多大中型软件企业或外企严重缺乏性能测试工程师!性能测试工程师待遇,一般是本地手工测试工程师的三倍甚至更多;我们接触的企业客户需求里,很多开价上万的性能测试工程师职位,竟然很难招到。随着软件开发技术越来越高深,业务逻辑越来越复杂,对软件的质量要求同样也会越来越高,软件一定会存在性能缺陷,因此对软件的性能要求也会随之而来;况且,软件的性能指标是软件用户手册里的重要组成部分,从正规测试流程上来说,凡是网络应用软件,不可不做性能测试!但是,从事性能测试的工程师,需要掌握太多的知识,包括计算机网络、数据库、操作系统、服务器等,而且还要有深厚的性能测试计划、设计、分析能力,以及丰富的性能测试经验,这些如果单靠个人的自行摸索,肯定是不太实际的。Mercury公司的loadrunner,是目前国际上性能测试工具的绝对领导者,具有百分之75的市场占有率;在国内,业界同行也都是提起性能测试首先想到loadrunner;因此loadrunner是在软件测试领域里立志成为一名合格的、优秀的性能测试工程师的朋友们的绝对首选。
如果你从来没有过软件开发经验,一直从事的只是手工测试,而且对软件测试的流程管理有着浓厚的兴趣,尤其对于那些从事测试的姑娘们!testdirector都听说吧?它集测试需求、测试用例、测试执行、软件缺陷管理于一身,将软件测试的整个流程统一管理,并支持异地分布式测试资源管理。和众多的软件测试同行接触,我们愈加发现一个问题,那就是我们很多的业界朋友,缺乏完整的、系统的软件测试知识体系,喜欢满足现状,而不去思考如何更加有效的实施软件测试活动,优化软件测试流程。针对这种现状,学习国外优秀的软件测试流程与管理经验,就理所当然了。而testdirector就是当前市场上最优秀的软件测试流程与资源管理的工具,目前本人还未见过一款测试管理工具集成如此众多功能(当然它的升级版quality center也是mercury公司的)。因此,掌握该款工具的使用,是立志成为软件测试管理者的一个非常必要的方面。
其他自动化测试领域,本文暂不讨论,例如白盒测试、特殊类型测试等。
那么,什么是开拓上述三种自动化测试职业的捷径呢?
答案很简单,如果你可以抛开世俗观念,考取mercury认证绝对是捷径!
下面我要向大家论证考取mercury认证的几大理由:
首先,mercury公司是软件质量保证工具开发商中的绝对领导者。下图是美国gartner公司的
最新调查结果,位于坐标第一象限最右上角的就是mercury,图中还有其他我们熟知的几个公司,如IBM rational、compuware等,但是mercury长久以来,一直独占着软件测试工具提供商的领先地位,包括很多在华投资成立软件研发基地的外企,他们多数都是使用mercury测试工具。如果有了这个测试工具供应商的王者,那么,想要学习自动化测试工具,有什么理由不选择mercury呢?
其次,拿本人经验来说,有了mercury工具的使用经验,即便将来所在公司不使用该款工具,那么再学习其他的工具也会相当顺手,不费吹灰之力!为什么呢?举例来说,比如loadrunner的网络协议是本人所接触的性能测试工具中,支持最多的(相信很多人会同意我这个观点),如果将来你打算换用webload、silkperformer(当然它们的局限性要比loadrunner大的多)等性能测试工具,绝对不会比loadrunner还复杂;再比如拿quicktestpro和其他针对web程序的测试工具(如qawizard、XDE Tester等)相比,使用更是完全类似(不了解的人可以到本人blog查看我的文章去亲自对比)。至于testdirector,更是独一无二的功能强大的测试管理工具,没的选择!
再次,如果你的眼光足够长远,能够看清未来软件测试中自动化测试的重要地位,那么你更应该选择。回想当年的思科认证,刚刚推出时候价格昂贵,但是依然有那么多的人去考。为什么呢?因为有大量的需求!认证通过的人过后都认为这笔投入值得!类比软件测试行业,虽然现在还没到达计算机网络行业发展的那样成熟,但是未来的两三年后,如果有一天到处都是自动化测试的人才需求,到时再临时抱佛脚,相信你不会有什么优势了。任何认证都是初期最有价值的,如果抓住机会在推广初期考取,等到这个认证普遍到一定程度,你已经有了几年的实用经验,所以优势仍在、风采依然!顺便提醒一句,计算机行业发展是相当快的,回首过去这3年,软件测试行业一直是在飞速前进的。如果错过如今这段大好时光,没有及时为自己充电,那么如今你这位软件测试新手,到了3年以后,依然是新手,只是比那时刚毕业的热血青年显得沧桑了一些? 所谓岁月不等人咧,这也是我前边要说的“过了这村就没这店啦”?
然后,我要说明为什么要考取mercury认证,而不考其他认证。理由很简单,本人一直坚定的认为软件测试是实用性学科,是实践性工作,重理论而不强调理论,不断实践同时积累经验,遵守规范并不断创新!如果你为了眼前一个工作机会而花点小钱,获得一个什么机构颁发的资格认证,尤其那种完全理论性的、满篇题目都是“负载测试与压力测试什么区别”之类的恶心至极的题目的考试,那么恕我直言,你真是鼠目寸光!试问这样的认证有什么用呢?哪个企业的老板会笨到雇用一个纸上谈兵的军师呢?况且你这个军师也是“墙上芦苇,嘴尖皮厚腹中空”!坦诚的说一句,为了应付这样的考试花2个星期背那些题目,都不如下载个试用版loadrunner,对照网上的使用手册练习一下工具的使用!
最后,我要说一个实际的问题,那就是money了。相比当年的思科认证、微软认证的上万元报名费,mercury认证的三千多、六千多,还是相当便宜的。最直白的说一句,如果你的眼下薪资有3k,花一个月或两过月的薪水买个“国际认证”,那么这件事绝对值得!当然,考取mercury认证的真正核心价值,完全是顺应软件测试自动化的时代潮流,掌握最先进的软件测试自动化技术和管理方法。
最最后,再为有志于考取mercury认证的同行朋友给予一点点建议。
如果你是初涉软件测试行业的测试工程师,没有或很少接触过自动化测试,那么可以从mercury认证的CPE(certification product education)开始,该认证是mercury认证的汉化版,通过者可以掌握mercury认证工具的完全使用。
如果你具有了3个月以上的mercury工具使用经验,英文能力还不错,或者通过了CPE考试,那么可以直接考取CPS(certification product specialist),之后考取CPC(certification product consultant)。这两种考试都是英文,证书由美国mercury总部颁发,后者价值大于前者,考试难度也大于前者。并且,二者认证已经不限于工具本身的使用,而是结合了代表mercury公司作为软件测试行业龙头地位的先进、正规的自动化测试流程,其通过者也相当受大中型软件公司、尤其外企的青睐,当然这一需求也是我们在长期积累的企业客户关系中总结出来的。
详细mercury认证咨询,请登陆www.51testing.com查阅。
送上最后一句至理名言,“命运掌握在自己的手中”!如果你对一件事物犹豫不决的时候,那么请尝试学习《卡耐基成功之道》里介绍的方法,在纸上分别写下做此事的理由与不做此事的理由,如果此事的可行性是百分之五十一,那么就别再踌躇了,放心大胆的去做吧!时间会证实一切,因为你的确在进行着一件该行业前所未有的划时代式活动;记住,上帝宠爱勤奋的孩子,他会与你并行?.(祝福ing)
(2005年7月5日无空调的日子)
测试人员的职业规划和职业发展
测试人员的职业规划和职业发展-------从零开始到合格的测试人员(上)
1 案例描述
由于种种原因,很多人选择了测试这个职业,在职场和测试领域当中几经风雨,有的人顺应时势走出了一片天地,有的人选择离开从事其他职业??
笔者作为一个较为资深的测试人员,对测试人员的职业规划和职业发展做一些总结和大致方向的展望,以此希望对刚选择测试职业的人,对那些在测试职业中看不清自己发展方向,比较迷茫的人,给出一些参考方向,可以让大家借鉴。 从而在后续的生活和工作中,找到自己的发展方向,找到自己的目标,并去贯彻执行。
2 案例分析
本文分两个阶段描述测试人员的职业规划和职业发展,第一个阶段是从零开始到入门篇,主要面向一个测试新手,从业经验在
~6年的测试人员,让有一定经验的测0~2年内的测试人员;第二个阶段为合格的测试工程师的进阶篇,主要面向从业已经有3
试人员进阶为高级测试工程师,让一些在某些方向面临瓶颈的测试工程师可以参考,找到自己合适的方向和突破点。
一、测试从0开始到合格的测试工程师
测试工程师在IT领域的一些特点:
, 入门门槛较低
, 知识点要广,但是不一定精
, 目前以黑盒测试为主,结合部分灰盒测试
基于测试行业的特点,很多人选择了测试这个职业:有人希望从事开发工作,但是没有工作经验,希望从测试入手。有人希望多积累知识,以便后续转行从事其他相关职业。有人只是因为就业压力,又听从所谓中国急缺的几类人才,从而选择了测试工作??。
究竟有哪几类人会最终走进测试这个职业的大门,读者自问:我是属于哪一类人, 这是第一个问题,因为进入职业前不同的技术背景和知识积累,在从业后大家最主要的学习和努力方向是有所区别的。
入门背景:
1.1 爱好者,无专业知识者,非专业毕业生
1.2 相关行业业务人员
1.3 从开发转行到测试
1.4 测试科班生
针对爱好者,无专业知识者,非专业毕业生:
这是拟从业者中,基础最差的一类,所以要想进入测试工作的大门,需要额外付出很多,额外学习很多。
怎么入行,需要具备那些方面的知识和能力,尝试列举常规的技能树如下: , 通用测试基础知识
, 测试术语及其意义
, 黑盒测试方法
, 测试用例设计的方法
, 测试流程的了解
, 测试常用文档的编写
, 业务知识和行业测试知识
, 公司实际的开发流程
, 公司实际的测试流程
, 行业测试的常规方法
, 业务相关知识
, 行业相关标准协议
, 规格说明书
, 通读学习已有的测试用例
, 计算机基本操作和基础理论
, 精通office系类工具(测试中经常要写文档,精通会有很多优势)
, 熟悉主流操作系统(Red Hat Linux,Windows server2003/xp)
, 了解数据库(Oracle, DB2, SQLServer, MySQL) , 对计算机一些应用软件的熟悉(根据具体行业特点) , 公司使用的测试管理工具
, 使用Bug跟踪工具(CQ,Bugzilla,TD) , 使用测试用例管理工具(TD)
, 使用需求、配置管理工具(SOS,CC)
, 需要的能力
, 学习能力
, 沟通能力
, 表达能力
, 总结能力
针对相关行业业务人员:
特点是对相关行业业务了解较深,在业余领域上手较快。可能要积极转变态度,由原来的甲方/使用者,转变为乙方/测试人员。
针对从开发转行到测试的人员
对代码编程,已经开发流程、测试流程可能比较熟悉。 针对测试科班生
此类事测试专业毕业,或者经过系统的测试培训,对测试的了解比较全面,对测试工具有初步使用,甚至有模拟项目经验。但是也存在着什么都会,但是什么都不精通的特点,所以要尽快的理论结合实践,学以致用。
测试从零开始,整体的技能树可以参照针对爱好者、无测试经验者的部分,其他的从业者,可以根据实际的知识技能积累,做适当优化,但是整体来说,所有的知识点,都是需要了解,熟悉,甚至掌握的。
世界上从来没有生而知之者,包括1+1=2,都是后天的学习得来。关于学习,积累和积极主动性,有这么一个例子,很能说明问题:
同时进入公司的三个同学,薪水为什么如此不同,
无巧不成书,小张、小李、小王不仅是中学同班同学,而且是大学同班同学,更是同一天进入了同一家公司。
但是他们的薪水却大不相同:小张的月薪是5000元、小李月薪3500元、小王月薪1500元。
有一天,他们的中学老师来看望他们,得知他们薪水的差距之后,老师就去问总经理:“在学校,他们的成绩都差不多啊,为什么毕业一年不会有这么大的差距,
总经理听完老师的话,笑着对老师说:“在学校他们是学习书本知识,但在公司里,却是要行动,要结果。公司与学校的要求不同,员工表现也与学校的考试成绩不同,薪水作为衡量的标准,就自然不同呀~”
看到老师疑惑不解地皱着眉头,总经理对老师说:“这样吧,我现在叫他们三人做相同的事情,你只要看他们表现,就可以知道答案了。”
总经理把这三个人同时找来,然后对他们说:“现在请你们去调查一下停泊在港口边的船。船上毛皮的数量、价格和品质,你们都要详细地记录下来,并尽快给我答复。”
一小时后,他们三人都回来了。
小王先做了汇报:“那个港口有一个我的旧识,我给他打了电话,他愿意帮我们的忙,明天给我结果。我为了保证明天他给我结果,我准备今晚请他吃饭,请您放心,明天一定给您结果。”
接着,小李把船上的毛皮数量、品质等详细情况给了总经理。
轮到小张的时候,他首先重复报告了毛皮数量、品质等情况,并且将船上最有价值的货品详细记录了下来。然后表明,他已向总经理助理了解到总经理的目的,是要在了解了货物的情况后与货主谈判。于是,他在回程中,又打电话向另个两家毛皮公司询问了相关货的品质、价格等。
此时,总经理会心一笑,老师恍然大悟。
相信看到这种情况后,任何一个从都会像那位老师一样,一下子就会明白,为什么他们的薪水会有这么大的差别。
在任何一家企业,我们都可以看到这三种人,我们应当问问自己:哪一个人中有自己的影子,我们是否真正清楚——我们周围那些收入高的人,为什么他们的薪水与我们的不一样,
经过对一些基础知识的学习,根据个人的学习和理解能力,有些是囫囵吞枣,一知半解或一鳞半爪,有些是对知识技能点掌握较好,对具体的测试表现了较强的适应性。整体来说,大家这个阶段已经开始接手实际的测试任务,需要在工作中一边执行一边提高。
同样,对测试知识点掌握的不同,从业者前期知识技术积累的不同,下一步的工作重点和方向可能也是不同的。我们从整体和不同特点的测试人员来说明展示:
针对所有的测试人员:
1、 熟悉业务知识,熟悉系统架构
2、 提高编写用例的技巧
3、 结合实际的测试特点,熟悉一种自动化测试工具(Robot、QTP)
4、 熟悉一种测试管理工具(CQ、TD)
5、 熟悉测试bug跟踪、控制的沟通技巧
6、 提高总结能力,对测试过程中的各种排除方法、对系统特性、对测试工作的阶段进行总结
针对爱好者,无专业知识者,非专业毕业生:
继续的学习和工作,无疑要比别人付出更多的努力,比如说把上述的技能树由了解变成熟悉,甚至掌握。 针对相关行业业务人员:
, 利用自己在业务方面的优势,积极补充有效的测试用例,发现更多的bug , 利用自己的业务方面的优势,对测试未覆盖或者覆盖不足的地方提出建议或增加测试用例 , 参考行业特点,其他产品的特点,对公司产品提出各种建议
针对从开发转行到测试的人员
, 利用自己的开发经验,在灰盒、白盒测试方面进行尝试和发展,承担相应角色 , 在测试用例设计方面,引入更多的系统架构和系统逻辑方面的因素,编写、评审此类测试用例 , 熟悉工作相关的测试工具,可以考虑开发一些测试辅助工具
针对测试科班生
, 在测试用例编写、bug数据统计分析方面进一步加强
, 利用自身技术全面的优势,吃透业务知识,规格规范,承担重点测试任务 , 争取在小项目上表现自己的测试全面性,早日承担独立的测试任务
从零开始成长为合格的测试工程师,图示如下(根据网上的资料进行修改)
经过前面的学习和积累,可能在一年到两年的时间内,大家基本上都可以成为一个合格的测试工程师。下面,我们怎么发挥自
己的兴趣和优势,怎么进一步发展,规划自己的职业呢
转载请注明出处范文大全网 » 测试职业发展阶段规划