|
曾经在"鼓励大家积极参与讨论!其实测试真的很重要"一帖中 表示了自己的观点,即测试和开发应该是分不开的(见下附)。我自己也就这样做的。结合自己几年的测试和设计工作,再来谈谈对测试工作和开发的认识(其实测试也是开发,只是大多数公司不这样称呼而已),与大家分享。
因为自己做的是硬件,所以谈到的主要是硬件开发和硬件测试。因为每个公司的模式不同,我说的只是针对自己公司的情况:测试人员和开发人员分属不同的部门。个人浅见,欢迎指正,J
1. 工作内容的差异。
测试工程师要根据各种标准规范,产品性能和指标,甚至客户的需求来对产品进行测试,找出可能存在的问题,保证质量。
而设计工程师则主要依据MRD的要求来设计产品。通常来说MRD定位了产品的档次,性能,价格和外观等指标,有时甚至指定了产品设计的平台。设计工程师则根据要求来设计电路,寻找合适的芯片和器件。在挑选各种元器件时,不光要考虑其性能,而且要考虑成本,甚至库存,比如一批料不符合ROHS,但马上ROHS要实施,那么必须把这批料用掉以减少浪费。然后在试产过程中根据测试报告来进行修改,最终让产品上市。
2. 介入时间的差异
开发工程师往往在产品方案确定前要做大量的工作,包括确定平台,芯片,外围器件等。因为如果等到后期再发现产品存在缺陷,特别是致命性缺陷的话,给公司带来的损失是相当大的。所以开发工程师在前期要评估,测试,验证,调试等等,甚至改变最初的解决方案。等测试工程师介入测试时,性能基本稳定,当然还会发现些问题,但这些大多不是致命缺陷,只是需要时间来完善。我们非常希望开发工程师,大多对可能出现的问题心中有数,不过大多时候仅希望而已:)
测试工程师介入产品比较晚,但他们的工作从介入一直到产品上市这段时间,都是非常重要的。而且问题发现得越早越好,因为随着时间的推移,解决发现问题的成本是成几何级增长的,如果说等产品上市后才发现该产品存在问题而招致用户的投诉,而需要通过升级或者维修来解决问题的时候,代价是惊人的。公司是经不起这样折腾的。
有时我们测试人员工作的时候,发现开发人员并不是很忙,甚至比我们还闲,这就是介入时间不同而产生的。其实开发工程师的很多工作前期做了很多而没有被我们发现。等你测试的时候,他可能又在评估下一个产品的解决方案呢:)
3. 工作涉及面的深度和广度不同
一般来说,作为一个测试工程师,需要了解的知识特别的多,面也特别的广。包括设计的知识,我们希望硬件测试人员能看懂产品设计spec,原理图,软件测试人员能看懂设开发人员公布的代码。除了这些设计知识外,测试工程师需要熟练掌握测试技巧,测试方法,测试流程;熟练操作测试仪器,最好要深谙测试原理;要熟悉各种标准,如做GSM的要熟悉11.10一样,要关注各种新的标准和法规,如WEEE和ROHS等,因为可能一个新的标准出台等我们的产品有很大影响。
而开发工程师呢,” 扫尽自家门前雪”(开个玩笑:) ,他们往往对他们自己的一部分负责,不断深入,不断完善和改进。但涉及的面远没有测试工程师的宽,做硬件的不大关注软件版本何时发布,做软件的不大关注硬件的解决方案。再例如很多硬件开发开发人员是根据经验数据来做的,如果某个测试规范有了新的标准,那么他们最先是从测试工程师那里了解到的,因为他们不像测试人员那么关注这些标准,大抵如此。
正是因为测试工程师涉及的知识面太宽,他们也就无暇关注这些方面的设计知识,很多测试工程师因为这个原因而觉得技不如人,其实大可不必,因为测试人员了解的远比开发人员多,只是在某一点上你没有开发人员深入,仅此而已。如同你拥有一片小树林,又何必去羡慕别人拥有的一棵大树呢?
4. 在项目中所起作用不同
正是因为如上所述的两者工作深度和广度不同,所以他们需要打交道的人也不同。测试工程师需要和几乎项目组所有成员打交道,而开发人员则需要协调的人相对少一些。
开发工程师需要做好自己的工作,而测试工程师在做好本职工作外,还需要协调整个项目组,特别在产品测试中出现的问题比较多的时候。
例如为了某个产品的认证,那么需要硬件软件,结构等各个组配合,那么这时大多由负责认证的测试工程师来牵头并协调。再例如测试工程师发现手机电流异常,那么是软件的某个功能模块在待机时没有关掉,还是BB的电路有问题,还是RF应用了新的PA?这些就需要测试工程师来协调大家,督促各个成员来定位并解决。很多时候是需要几个人共同来解决的,如RF人员说BB送来的信号不好,而BB的人员强调他们的电路没有问题,嘿嘿,这个时候就更需要测试工程师来协调,或者同项目负责人一同来协调。
正因为打交道的人特别多,所以要求测试人员有良好的沟通能力和协商能力,再兼测试人员有很宽的知识面,所以测试部是产品经理的培养摇篮,窃以为J
今天到此,下次再续[br]<p align=right><font color=red>+3 RD币</font></p> |
|