探讨:测试人员究竟应该知道多少开发的东西?

上一篇 / 下一篇  2011-03-04 14:10:13

bug:

  曾记否:MS的招测试,名称叫软件开发测试工程师

  也曾记否:国内几乎所有的企业招测试都要求要有C,JAVA,C++的相关知识或者ORACLE或者LINUX等和开发更加密切的知识。

  于是,我便想了这样一个话题,大家一起讨论下。

  测试人员究竟应该知道多少开发的东西?

  虽然不喜欢MS,但是对于这个软件开发测试工程师的提法,还是很赞成的。既然做测试,就必须会开发,这是我的观点,理由有如下几点:

  1、会开发,你才能用开发的角度去看你发现的问题,并提出解决措施。比如,一个迭代,要求降序,但是却用了升序,于是你在提bug的同时,附件上:请在排序字段的后面,也就是order by后加上desc。

  2、会开发,你才能更好的做单元测试。比如,当我们从SVN上下了最新版本的代码,准备搭建我们的测试环境,或者开发告诉你,X个模块的代码我已经搞定,请测试。这个时候,我们如果时间充分,完全可以进行代码的白盒测试。这样排查bug的效率和效果会很好。

  3、会开发,才能更好的明白比如DIV+CCC,软件工程,Ajax,jQuery等UI方面的东西,这样你在界面测试中会给你带来更优的更好的建议。这样的东西,对于开发修改是很有好处,因为他直接可以按照你说的重点关注那个点就OK。

  4、会开发,最最重要的一点,才能从程序员的角度来思考问题。开发很累,别人也是在高强度高压力的环境下写出来的代码,作为测试应该更多的理解开发,理解难处,多沟通,多从开发的角度替他们想,多从开发的角度提出bug应该如何改进和如何修改,这才是程序员的测试之道。

  上面扯了一些测试为什么要会开发的4点个人意见。既然知道为什么,那么我想讨论的是我们应该知道多少开发的东西呢?比如,语言,数据库,框架,环境,人员配置等等。我们究竟掌握到个什么程度才能说:OK,我是个开发测试工程师。

  larkygirl:

  我曾经开发过一年,学习和接触过的语言:C,C++,VB,Java相关,.net,ASP.net,jsp,html,xml,数据库:mysql,SQLSever,,Access,工具和服务器:Eclipse,Tomcat等,

  然后是一个偶然机会,我转向了测试。

  现在工作了两年。

  我对测试人员该具备多少开发知识的回答是:

  对于测试行业来说,分类也很多,你可以作为[需求分析人员,可以作为质量管理者,可以作为白盒测试[人员,也可以作为自动化高手,还可以制作文档编写和用例设计

  测试行业本身也是多元素化的,根据选择的类别不同,对于开发知识要求的程度也不同。

  如果你只是用例设计和文档编写,以及用例执行(大多外包企业就这么安排人员),那么只需要知道很少甚至是无需知道开发相关知识。而且,如果是职业用例设计人员,那么收入也是很可观的。可以考虑在外包企业等大型企业一直工作下去,占领为该企业的资深文档设计师。重点强调:业务知识的了解很重要,比如现在较有发展前景的:金融行业——证券,银行,基金等。

  如果你想作为一个安全检查人员,或者是自动化测试高手,脚本的编写和广泛的软件工具,以及多语言化的背景和原理的了解,对你来说,至关重要,直接关系到你是否能够涉足这一行业。那么,跳槽也许能够帮助你接触多语言,多工具的了解和学习。

  有了开发知识,和没有开发知识,工作的区别?

  1、没有开发经验的,可能对于测试的执行是比较苛刻的,只要是问题,我们就全面站在客户角度,可以毫不含糊;但是有开发知识,往往多少会站在开发角度,忽略一些细节和使用上的本质问题。

  2、没有开发经验的,提问题只是纯粹的提出问题,可以缺乏一个问题定位的描述和问题的推断,增加开发的负担;

3、没有开发经验的,能够从事的事情,可能较少,但是,要对自己所从事的工作有信心。

  最后,一个合格的测试人员,最重要的是素质和耐心,以及健全的理论和实践的经验,很多问题需要靠经验和感觉去判断。

  信心最重要,定位自己也很重要,在自己的位置,合理设计职业规划,一步一步扩展知识面。

  wnpcl:

  1、会开发,提出问题的时候可以定位问题具体在哪?这样开发修改时也节约时间,并且测试和开发的关系也会更好。不知大家是否有过这样的经历,有时你提的问题开发说不是问题,或者另外一个测试人员提的问题,他看都不看就觉得是问题。这可能跟两个和开发的关系不一样。也与两人所提的问题深度不一样。如果你会开发,提的问题能定位到具体代码或那个类中等,这样开发从技术方面就不会轻看你,这样你们也有共同的立场,也有相同的话题。

现在在测试行业想得高薪主要有:1)自动化2)性能测试3)安全测试4)管理 5)业务需求分析6)白盒测试 ,就管理不说,如果一个公司可能你入行比较早,技术不是很强也可以当管理。但以后换工作了也就很难说了。 自动化、性能测试安全测试、业务需求分析 这几个想做深做好,不懂开发技术真的很难很难。

  1)自动化:你不懂开发技术,不知如何写脚本。

  2)性能测试:如果不清楚开发知识,性能分析和一些脚本也会遇到问题。

  3)安全测试:如果只是想做个脚本小子,不懂开发也行,但做的不深,一般招安全测试的,都要求熟悉开发,网络及安全测试攻击方法以及如何防止。

  5)需求分析:是一个系统至关重要的,不论从性能还是从安全方面都起到非常重要的作用。如果你熟悉开发等技术,设计一些功能也可以从优化性能方面考虑。还有安全都是从需求分析做起的。

  6)白盒测试就更不用说开发知识。

  3、大家还可以看下目前国外的大公司招测试时都要求熟悉开发知识,至少熟悉一门开发语言。目前国内招聘要求也是有这一条的。所以做测试想做好,熟悉开发知识是必不可少。

  xaviertest:

  我的总结是,测试人员应该学习的广(当然能有深度更好),开发人员可能会在某个领域做得很深。至于说到会不会开发,个人感觉有如下几点:

  1、开发平台:这个最好能多了解,代码看懂看不懂无所谓,关键要对界面功能熟悉熟悉,不会让开发人员一打开开发界面就愣了

  2、数据库方面:这个最好能有一定掌握,虽说有不同的数据库,但基本的sql语句能写出就好,其实基本的无非是增删改查,只要了解了,具体语句上网查也行

  3、代码方面:这个就看个人爱好了,其实除了做白盒,也就是基本的几个语法,看的差不多就好,又不是做极限开发(测试人员坐在开发人员旁边,随时纠正代码错误),当然能写基本的最好,因为毕竟自动化测试软件会用到

  4.自动化测试方面:这个做的深就要有一定的代码基础,但个人感觉这里有个误区,可能是国内的企业接触QTP、LR、Robert等比较多,所以传的多,其实就拿QTP来说,人家包装上都写了,强项就是关键字驱动和描述对象,想想我们平时用QTP写脚本能有多少时候用得上关键字和描述,而恰恰一些小软件,也能达到自动化的效果,可是很多时候被我们忽视了,测试经典定义告诉我们“一个好的用例就是有可能发现尚未发现的bug,一个好的测试就是发现了尚未发现的bug”,我觉得,如果你的自动化用例能够做到有效果能够重复使用,那就是好的自动化用例,不在乎他是什么类型脚本或是什么软件生成的


TAG:

Emma的个人空间 引用 删除 caoyan_emma   /   2011-03-07 08:09:08
-5
Emma的个人空间 引用 删除 caoyan_emma   /   2011-03-07 08:08:57
很不赞同你说的话,或者说,你在表达测试人员如果不懂开发,就是无用处的人。不知道你现在工作有多吗了不起,我就是不懂开发,可我做了三年测试,混的也很好,没看出来我给开发增加负担了,测试本身就是要站在客户的角度去使用软件。我不否认你说的,测试应该更广的学习开发的知识,不过,你的一些看法,我无法赞同。
robychio的个人空间 引用 删除 robychio   /   2011-03-06 10:14:23
-5
 

评分:0

我来说两句

日历

« 2024-05-19  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 6477
  • 日志数: 13
  • 建立时间: 2011-02-14
  • 更新时间: 2011-03-04

RSS订阅

Open Toolbar