首先,其实题主的问题仍是很实诚的,我刚开始作测试的时候其实也是这个心态,想转开发,也学习了不少的语言,我的以为这是职业危机感的表现,挺好的,也相信题主无论去作开发和测试都会去不断的学习和进步。
好吧,正文来了,先回答第一个问题:测试到底是作什么的?如下是我不久前分享过的一篇文章,我直接拿过来回答第一个问题吧(还顺便解决了测试人员的发展问题)
—————————————————
测试能够作什么编程
谈到测试人员的发展,首先再回过头来看看整个项目期间测试人员作的事情或者说可以作的事情吧以及须要具有的对应的能力吧!
一、版本或者产品的规划阶段:框架
做为一个测试人员,这个时候能够从一个更高的角度对产品的规划提出本身的想法,来更好的帮助产品取得成功。编程语言
须要具有的能力或者知识:对于产品的商业理解以及整个行业和市场的理解都比较深刻,实际上这个时候咱们能够将本身当作是一个产品经理。工具
二、版本的需求阶段:单元测试
测试人员已经可以开始作需求阶段的缺陷预防,保证需求是可以知足用户的原始需求,而且整个需求都是很是清晰和合理的,版本后期没有需求不合理或者需求不清晰的问题。
须要具有的能力或者知识:对于客户的使用场景很是清楚,可以在客户角度上面思考问题;有本身的一套需求分析的方法,最好是模型或者checklist之类的;很是好的分析能力,可以经过需求文档分析到可能潜在的问题。学习
三、设计阶段:测试
测试人员开始作设计阶段的缺陷预防,可以对于研发的整个设计方案很是清楚,可以根据研发设计文档里面的业务逻辑图本身可以站在测试的角度来画出一份让测试人员更加容易理解的业务逻辑图,而且可以发现研发在设计方案上存在的一些问题,而且指导研发进行修改。
须要具有的能力或者知识:比较深刻的业务背景知识;熟悉开发使用的语言;业务分析和转换的能力;编码
四、编码阶段:设计
测试人员开始编写单元测试、接口测试用例、测试工具或者自动化测试用例,而且开始思考后面如何去更好的测试(更高的效率,更好的保证质量),而且帮助研发提早作好编码阶段的缺陷预防,甚至作得测试驱动开发。
须要具有的能力或者技能:熟悉开发使用的编码语言、可以对开发的代码进行静态走读、熟悉开发使用的编码语言的单元或者接口测试方法和框架、具有测试工具开发的能力、具有自动化的能力,良好的代码分析能力和用例设计能力。接口
五、测试阶段:
测试人员开始制定测试策略和测试计划、执行测试用例、发现和定位bug、跟踪和回归bug,质量分析,有效的探索性测试等等,目的是花更短的时间来更好的保证质量。
具有的能力或者技能:制定策略和计划的能力、执行能力、分析和排查问题的能力,业务的理解能力,对代码的熟悉程度,模块的质量分析能力等等!
ok,总结下上面用到的一些能力和技能,以及每种能力对本身的帮助
一、产品的商业理解能力--产品经理(马云、马化腾、周鸿祎等都是这样的人)
二、需求的分析能力和市场的理解能力--也是向产品经理方向发展
三、业务背景知识--可以让本身在该领域走的更远
四、开发使用的编程语言--这个应该是本身深刻到代码级别一个比较基础的东西,对于本身对代码进行测试是很是有帮助的
五、业务的分析能力---养成这样的习惯后会有一套本身的分析方法,对于本身在测试领域的发展的颇有帮助的,如今测试界的一些公共测试技术里面就有包含这些
六、单元测试能力--这个让本身走向白盒测试工程师是颇有帮助的,也是可以让本身跟开发走的更紧点
七、接口测试能力--应该是向单元测试的一个过渡,可以让本身更好的接触到业务逻辑
八、自动化开发能力和工具开发能力--这个就不用说了,如今已经有专门的自动化人员和工具开发人员了
九、用例设计和测试分析能力--测试人员一个很基本的能力,可是真正作好的其实比较少,若是用例设计的质量很高的人其余方面的能力确定很不错,并且有了本身的一套方法后对于本身在测试领域的发展是颇有帮助的,须要不断的总结和分析,将经验抽象为方法或者模型
十、执行能力--测试人员(应该是全部的工做)都须要具有的一个能力吧,若是作好的话其实对本身的帮助也是比较大的
十一、发现bug的能力--这个时候对于测试人员的发散思惟很重要(我的以为是衡量真正的测试人员一个比较最重要因素,没有之一),有些测试人员就是可以沉迷于此
十二、定位bug的能力--其实这应该是测试人员一个很基本的技能,可是咱们都是交给研发去作了,若是将前期的工做作起来的话,咱们是应该具有这样的能力的
1三、分析和排查问题的能力--分析能力是测试人员一个很是重要的能力,一个好的测试人员老是可以根据目前的一些现象发现一些本质上面的东西,而且有本身的解决问题的方法
1四、制定策略和计划的能力--这个发展方向应该是项目经理或者管理方向吧,可是对于测试人员也是颇有帮助的,对于本身从一个整理上面理解问题颇有帮助
固然,以上这些能力测试人员不用每一项都掌握的很是熟练,能够根据职业发展方向概括为以下几项:
一、产品经理
二、白盒测试工程师(叫开发测试工程师其实更加合适)
三、自动化开发工程师
四、资深的测试工程师或者测试专家(可能须要包括以上超过10个技能而且能力都要达到必定级别)
五、项目经理
其余的几点就不说了,这里重点说下达到资深的测试工程师或者测试专家(其实就是测试界的大牛)级别须要的一些条件吧!这个也是笔者一直比较欣赏的一个职业,但是目前这方面的人确实比较少,不少人半路走上了管理岗位!
一、看下本身是否真的适合这样的职业(很享受去发现一些bug,特别是通过本身思考后发现的一些别人没有发现的bug),这个能够在刚进入测试行业就看出来
二、一个好的平台:从目前来看,不少公司是没有办法给一个测试人员提供学习以上能力的机会的,建议是可以尽可能找到这样的一个平台(固然也须要不断的证实本身是一我的才)
三、在一线测试呆尽可能长的时间,而且反复磨练本身上面的一些能力(没有最高只有更高),这就是所谓的十年磨一剑,这样须要很大的勇气,可是在这个浮躁的行业里面作到坚持其实是很难的,不少人都是耐不住寂寞的。若是你作到了你就赢了
四、不断的积累的和总结(总结是本身得到经验一个很是宝贵的方法,也是让本身进步更快的一个方法)
五、开始将本身的一些方法抽象出来,造成一些比较通用的方法,而且不断的尝试运用到实践中,证实这个方法是ok的,造成一些理论
六、完善,实践,推广,再完善,再实践,再推广.....相信这个时候,你已是首屈一指的高手了,再加上本身的一些推销本身的方法,提高本身的品牌意识,剩下的就不用说了,固然,学习无止境.........
————————————————
第二个问题,关于测试转开发的问题,这个其实不是问题,只要你历来没有放弃过写代码。