QA还是很有前途的。
目前国内QA的工作面很广。web上点鼠标的是QA,linux上写脚本的是QA,编写单元测试的是QA,负责工具开发的是QA,推广TDD或者敏捷的也是QA。
正是因为QA这一统一的称呼,以至于让人经常混淆QA的概念,并且对QA的工作妄加评论。
根据QA的工作类型区分前途是比较合适的。
1、黑盒测试工程师。
这类比较常见,低端的比如web上测试页面的。高端的,比如linux下启动apache测试服务的。使用黑盒测试的技术去检测质量。质量来源于开发,而不是测试,所以他们只能检测而不能提高质量。
这类工程师的工作,目前正在被不断的挤压,随着自动化的发展,这部分的工作讲越来越少。所以人员也是越来越少。但是始终是不可缺少的。
不幸的是,目前这部分人是国内最多的,所以这部分竞争很激烈。已经是红海了。
目前国内的大多数中小型公司都是采用黑盒测试和人海战术来保证质量的,根源是这些公司的QA规划不合理,技术也相对浅薄,优秀的人员,这样的公司也留不住。所以QA的发展缓慢。
在这些公司工作,最重要的是了解业务。
如果接触不到产品的核心环节,比如代码、数据、业务细节,那么这类工程师最周会面临外包的危险。
大公司也会倾向于使用外包。
2、自动化测试工程师
使用qtp,selenium,watir,或者是其他的技术框架来自动化测试工作的。在*unix上做自动化工作的,比如编写shell脚本,或者其他的脚本,也是属于此类。
因为自动化在回归阶段可以节省人力,可以有效的对产品的质量进行度量,并且可以不断的累积,结合覆盖率统计,或者需求覆盖统计等手段,可以很好的保证产品线的开发质量。所以自动化是很重要的技术。
大公司一般都有这样的工作和人员配备。
不过前端的自动化,和后端的自动化,仍旧有一些弊病。很多公司倾向于使用分层自动化去解决不同层面的质量问题。
这部分相对有点技术含量,大公司招人,也是必考的内容。相对来说,有点前途。
但是一旦自动化方案稳定了,那么这类人也会面临职业发展困境。只不过目前自动化仍然在不断发展,这个问题暴露的不是很隐蔽。
这个领域的工程师将来会两极分化,一部分转向自动化工具的研发,一部分转向自动化case的维护。
3、白盒测试工程师
这部分人主要做代码分析,审核,编写必要的单元测试,并关注代码的各种覆盖率情况。
跟开发走的很近,可以尽早的发现bug,并能较好的适应产品的变化。
在敏捷模式中,是很重要的一个角色。这部分人也做单元测试,或者推TDD模式等。