我觉得这要看项目
有些时候不一定非要懂开发才能做好测试工作,其实这完全取决于项目,这个项目做什么测试了,如果需要做单元和集成可能要求有编程能力,但是项目只需要做功能,或者说只要基本功能跑通就行了,我觉得不懂开发也可以做的。 要有编程能力,近段时间参加了几家公司招聘软件测试工程师的笔试,笔试题目也一样,几乎每家公司都说,tester和开发人员编程能力要不相上下。从这就反应了,目前的市场需求,tester要有一定的编程能力,而且要蛮强的才行。 我会编程,确实有正方所说的,喜欢从代码的角度去想问题,但是不可否认的是因为我做了测试,所以不可能只是从代码角度去想,同时我也把自己当做用户去操作,试图破坏。但是我觉得编程绝对是测试人员的一个增幅器。。。所以建议现在还对代码一点都不了解的测试同行,区看看,或许不用那么精通,了解下编程思想,设计模式,对测试绝对是有很大帮助的。因为你更容易发现程序员在哪个地方容易出错,在哪个地方他抱有侥幸心理,在哪个地方他不愿意去多花时间。。。[ 本帖最后由 xmylll 于 2008-11-13 16:06 编辑 ]
不会编程肯定可以做测试,但是肯定把测试做不深.
不会编程肯定可以做测试,但是肯定把测试做不深. 看是做什么方面的测试了因为自己就曾做过开发,所以支持反方!
首先从技术上说呢,懂得编程肯定会事半工倍,而且错误定位都会比较快和准。其次从现实上来说,每个公司又不可能全是这种懂编程的人,各种人才都有,可以互补,对公司和个人而言不是更好,既不会产生一山不容二虎的现象,又可以让大家更团结的工作,给公司带来效益的同时,也让个人名利双收。
这个世界本来就应该是多元化的,没必要每个测试人员都懂编程。但是如果你要从事白盒,性能的测试工作那当然就要懂编程了。
[ 本帖最后由 lvtianhai 于 2008-11-20 10:43 编辑 ]
不懂编程不代表做不好测试
不懂编程并不代表做不好测试首先我要中肯的说,没有一定的编程基础在进行白盒测试时存在一定的难度。但是如果说编程就做不好测试,这就太片面了。一个好的测试人员,编程能力不过是其职业技能中的九牛一毛而已。一个好的测试人员,对于os、小型机、数据库、网络、测试工具等都有一定的能力。所以,不要将不懂编码和能否做好测试直接联系在一起,不懂编码也一样能够做好测试。 测试分多种,个人认为,懂编程好于不懂,对测试很有帮助,软件测试与编程是分不开的,要想走测试路,应该学会编程。 我很同意 SWORDTONG 的说法!他说过的我就不说了。
没有编程和脚本能力你一样可以做一个很好的手动测试员
懂编程不一定能做好测试,不懂编程一定做不好测试,个人观点。
懂编程不一定能做好测试,不懂编程一定做不好测试,个人观点。编程在测试中的用处:
1. 对产品的design review和code review。
2. 白盒测试case设计。
3. 性能测试和性能瓶颈分析。
4. 自动化测试开发。
但是,话说回来,编程只是测试工作的基本功,就好像当学生就要会写字一样:不会写字根本没有办法当学生,但是能写字是远远不够的,只写了一笔好字,别的都不会也一样当不了好学生。 关键是要看对相关软件的业务熟悉吧 讨论这个问题就跟讨论“会用筷子的外国人能吃到中国的饺子,不会用筷子的外国人不能吃到中国的饺子”一样没有意义。
测试是分几个阶段进行的,或者说有几个测试层次。只有做单元和集成测试的测试人员(也叫代码级测试人员)需要掌握软件设计和编程技术,而且最好是软件高手,用来指出一般软件开发人员在设计或编程时产生的设计、编码错误,以及纠正不规范的编码风格;其它测试层次则不需要了解过多的编程技术。很多人不了解、也分不清测试的层次,以为软件测试就一定要接触代码,这实际上是一种误解。
所以这个问题的完整说法应该是:做软件的程序代码级测试的测试人员不会编程就一定做不好!
会不会编程的区别
会编程,可能是百合方面的高级测试工程师;不会编程,有可能变成黑盒测试的高级测试工程师;
但是作为测试人员,会计算机的人要有些编程经验的会更好.
这个答案居然是最佳答案?
不仅滑稽,而且不可思议。我就是被没开发经验害惨的
我承认我不会开发,没有开发经验。故而我只能做黑盒测试,但黑盒测试我感觉更加的复杂,因为一个正常的IT公司,对代码的保密程度肯定会更高,所以就不会轻易的透露给别人,所以我在定位问题时看不到代码还有定位问题,所以就相当的困难,而且项目又有期限限制。没办法我只好被逼研究适合本公司开发体系的测试架构问题,以在短时间内达到最大的功能测试覆盖度,又可以快速的定位问题。但就在我的研究马上要有成果时,公司把研发部解散了,没办法,我又不会开发,一些公司招聘条件又相当的苛刻,现在我又没研发条件,看来我的测试架构体系研究只好要带入地府了。当然也可促进地府软件测试的发展:lol 。会编程也许测试时容易一些
但是不会编程,也一样有做的很好的前辈。up
不会编程做不好测试,谬论 :)不会编程不是做不了测试,但是会有局限性
我们做测试,有时候懂编程是必要的,为了达到测试的目的,我们需要有开发的技能 我也来说说自己的想法:2个观点我更倾向于反方的;
我的理由:
不了解程序是怎么回事,不至于不能做测试,但要做个优秀的测试人才是不可能的。
举个C的例子,C编程的时候,当处理字符串时你是用strcpy呢,还是csrcpy_s,是用strcat呢,还是strcat_s呢?这类问题对于有经验的开发来说很浅显,但对从未亲手写过代码,了解过编程是怎么回事的人可能有点难吧。我刚写代码的时候也对这2者的区别不以为然,从来就不把VS的WARNING当回事。直到后来才发现,原来这函数功能虽然一样,但其中1个明显有安全隐患。
这里有个安全隐患叫做内存溢出(问题越谈越深了,不知道不懂程序怎么回事的人能不能了解),strcpy,strcat之类的函数由于未对目的字符串参数的长度校验,产生了这样1个安全隐患。这里有的人又会说,溢出就溢出吧,和安全有啥关系?
那么我们再来了解下什么叫内存溢出(这些知识如果不了解,要怎么对这类问题有测试意识呢,没有意识就更别提发现这类问题了),简单的说就是利用计算机某种执行程序的机制和程序漏洞(strcpy,strcat这类存在安全隐患的函数)达到攻击的目的。
好了,我是不是又该再介绍下计算机怎么执行程序的?这个问题就大了,我也只了解皮毛中的皮毛,我就说下和溢出有关的(也是前不久查的资料哈哈,本人非常热爱学习滴),堆栈,内存的概念在编程里很重要的,程序调用1个函数的的物理过程,就是先把函数的参数压入栈底(先进后出的机制),然后,嘿嘿这里可重要了,将返回地址压入栈中(返回地址就是当被掉函数执行完后,计算机要知道下1个执行语句的地址,CPU顺序执行代码的嘛),再然后,被调函数的变量空间分配之类7788的事情,再然后寄存器跳转到函数内部,再然后,有个EBP的寄存器的值压入栈中(保存栈底地址,以便函数退出后恢复到原来位置,个人这么理解不知道对不对),后面就8谈了,谈不下去了,说的越多错的越厉害哈哈哈,怕丢人。。。
好了,想想如果栈中的返回地址被覆盖掉会怎么样?如果是乱七八糟的东东还好,程序顶多死给你看,如果是段恶意代码呢,如果是段获得ROOT权限的代码呢?那你隐私不全没了嘛?一开始还想有没有人做这种无聊的事,居然还真有人做这种事情,这样也就出现了所谓的内存溢出攻击了~~~让你吃过1次苦头,看你以后还敢不敢用strcpy,strcat了。。哈哈
说了那么多,无非想证明1点,对程序不了解,怎么测试?当然学过编程的人就一定牛了?也未必,要看他学的怎么样了?不过编程好的人,能发现其他人发现不了的问题,且多是严重或致命缺陷的。。。
很多人看不起黑盒的,总觉得白盒高档点,本人有点不同的看法,其实都是测试,同样需要扎实的编程基础,良好的逻辑思维能力,我到感觉看的见代码的人在检查上述安全隐患时,还比黑盒测试人员容易呢,毕竟他们看的见嘛。。。你说谁更高档,谁又低挡了呢?如果黑盒测试人员能把白盒测试问题给发现了,那才叫牛B呢。。那八成是个资黑了(资黑可没源代码看的哦~~)。。哈哈。。
好了,综上所述,编程是为了了解程序,不要为了代码而代码,了解程序,编程,写代码是个非常好的途径(本人就在不断努力中,哈哈),做测试的时候便更有底气。。。问题能测的更深入。。。