测试-产品不能承受之轻
首先,定义我们的测试,是由专业的测试人员开展的测试工作。通常,代码级别的测试、单元测试是开发人员自己进行,所以不在讨论之内。由测试人员开展的测试通常是白箱集成、黑箱集成、系统测试等。想讨论两个话题:1,测试在产品的生命周期中,是什么角色?2,测试做为一门职业,能够给投身于此的人们带来什么?
测试,在产品生命周期中是什么角色?软件产品首先要开发出来。
核心技术,是一个公司的竞争力。在核心竞争力上,还要有一系列的产品。对于产品要有质量保证,才能够活下去。
就说我知道的行业吧。一种是小公司。小公司的活力在核心技术和产品,而且多偏重于硬件,或涉及到软件也多是集成性质。这种公司产品推出快,不需要太多的质量管理。测试人员在这种公司是没有什么饭吃的。另外一种就是系统级别的软件公司。这种公司通常受到两方面的压力:1,技术的不断更新;2,产品质量的稳定和可靠性。在这种公司中,质量会提高到生命线的地步。测试人员在其中是能够有稳定的饭碗。
回过头,再看核心技术和产品质量。很多国内的公司对如何积累和发展核心技术是有自己的想法,但是对于如何有效提高产品质量,却是处于自发的无意识阶段。在这种公司里面,测试人员的工作会是辛苦,而且低微的,需要承受被忽视的心里压力。常见的情况就是,谁的开发工作做的越不好,谁得到的奖励越多。为什么?因为快速地递交开发成果-效率高,先得到表扬;质量不好当然会出现较多的问题-这个是正常的,不会因此受批评;自己制造的麻烦,当然自己最清楚,于是做为优秀的救火队员,多次在危难中把老板解救出来,呵呵,老板能够不感激吗?
再看看测试在质量保证中又是一个什么样的角色呢?质量是设计出来的。一个质量可靠的产品,从需求分析开始,就有了质量保证。虽然需求总是变化的,但是需求分析是可以做到在一定阶段是清晰的。系统架构设计中,给测试,和维护做了多少考虑?模块划分当然受限于系统设计师的水平,但模块间的接口定义,流程定义是否清晰,是质量控制可以起做用的。最后,详细设计,和代码编写的质量如何?也是直接影响产品质量的。产品走过这些流程后,才开始进行集成和集成测试,系统测试。虽然测试人员可以奋力发现BUG,但是产品的质量其实在递交测试前就已经成型了。在产品的质量控制中,测试只是发现BUG,最终是否能够有效定位BUG,解决BUG,还是取决于系统设计时候为这些工作做的准备,以及编程十分规范,能够有效检查代码,并事先就避免了很多低级的代码错误。所以,不要指望测试就能够提高产品质量,测试只是整个质量控制环节中的最后一关。
产品面世后,客户支持,修复BUG,这些方面的质量控制,就和测试更没有关系了。
那测试是干嘛的?发现产品的BUG。不是质量管理,更不是项目管理。所以,我们定义测试工作,它的职业特性是什么?发现产品的BUG。
好。我们定义了什么是测试工作。那,这项工作能够给其中的人们带来什么?
首先,测试是一个负面的工作。它不会把产品从无到有的制造出来。而是产品制造出来后,检查是否满足客户需求。是公司内部的虚拟客户。所以它不是公司的核心,也不可能有什么原创的东西。说白了,想靠测试做爆发户,那是不可能的。(做测试培训或产品认证中心之类的工作不是我说的测试工作)
其次,测试的工作是上下受限的。怎么说?没有测试人员,产品也照样出来。如果说没有开发人员,那产品就啥也没有了。这就是下受限,产品能否出来,和测试人员不相关。同时,测试人员再努力工作,产品能够做成什么样,还是取决于产品的设计,开发人员的BUG修复能力。测试人员只是发现问题,解决问题还是要开发人员。这就是上受限,产品能够做好,也和测试人员不是很相关。测试工作再好,也是让产品有一个量变,却不可能质变。测试人员摆脱不了被忽视的目光,也体会不到打了胜仗痛苦淋漓的快感。
真的让人很悲观。大家常说,用20%的精力,来完成80%的目标。而测试就是用100%的精力,把剩下的20%补完。虽然产品的竞争力往往就体现在那剩下的20%中,可惜这20%所花费的100%的汗水,注定只能够默默地流。就像富人只是少数,但却是最吸引眼球和最被人们所向往的。请大家千万考虑清楚,是否入测试这一行。
测试有什么好处?
精神和思想的解脱。测试对某项技术的理解,用20%的精力,就可以达到80%的理解。这也就够了。剩下的80%,还可以达到至少4个方面的80%。如果你不想全部用在工作上,自己考虑考虑理想,人生,也是完全可以的。测试工作的重复性,又让你的大脑有更多的空白时间。愿意想啥,就可以想啥。
测试还能够给我们带来什么?转行的方便。做技术支持,销售,项目管理,你都有了对整个系统比较全面的了解,有了产品质量低下带来的痛苦经历。
测试,还能够给我们带来什么?大家告诉我吧。 写得很详细,用心良苦啊!有不少深入细致的分析,有助于大家来了解测试
不过有一个比较严重的错误,测试人员是应该参加软件产品的设计的,只有这样才能真正的保证软件质量,因此测试人员的作用不是搂主说的那样
另外,还有一个概念错误,就是什么叫核心技术?微软、Intel这样的公司是掌握核心技术的,联想、神州数码和海尔这样的企业是不掌握核心技术的,那些小公司更不可能掌握核心技术,因此能够苟延残喘,活下来确实不容易,不重视测试其实也就是造成这种局面的原因;搂主难道没有看到:大公司都还是比较重视测试,或者正在逐步重视测试,不重视测试的大都是小公司;也就是说是否重视测试和公司的发展是相关的 请问有没有测试人员参与软件产品设计的一些相关案例?测试人员在参与软件产品设计时候要承担的工作和责任是什么?说白了,什么样的文档上,会把测试人员的名字做为作者署上去?
另外,对于核心技术的理解,每个公司都有自己的活法,不是每个公司非要象微软,intel那样拥有世界领先的东西才能够说是有核心技术。提核心技术,只是想说明测试人员的可以考虑的择业方向。偏硬件的小公司,测试人员(我所说的是开发环节中的测试人员,不是生产测试环节中的测试人员)最好别去。只有做大系统的公司,或做支撑平台系统的公司,或想做百年老店的公司,是大家择业的方向。
核心技术的提法的第二目的是,测试人员不要有自己就能够暴富的想法,也不要和开发人员比薪水。关于暴富就不讨论了。关于薪水的问题,再给各位想加入到测试这一行的同事们泼泼冷水:同级别的测试人员,是不会比同级别的开发人员薪水高的。做到差一个等级左右,就很好了,说明你们公司已经很重视测试了。测试人员是最容易在钱这个问题上失去平衡。通常测试人员不会和市场人员比,不会和工程人员比,不会和技术支持人员比薪水。因为离得远,比不着。和测试人员工作在一起的,就是开发人员。测试人员的工作方面的信息,需要开发人员提供,测试人员能够发现问题,甚至能够把问题定位到代码,但是测试人员最根本的职责,是保证质量,而不是和开发比写代码。测试工作本身是负面的工作,而开发是正面的工作。东西要先做出来,才谈的上质量保证。所以,同级别的测试人员的薪水,是不会比开发人员高的。经济决定政治,后果就不用描述了。而测试和开发密切的工作关系,薪水间的不对等,人和人邻里之间的攀比心里,造成测试人员最普遍的心里就是:我不比他/她傻,凭什么我要比他/她拿钱少?而测试工作本身很大程度的枯燥性,更是让大家把这种心里的失衡归咎于测试工作本身。进而最容易产生的想法就是:我为公司这么卖力做这么多枯燥的活,公司又不可能看重我,自己还学不到东西,或感觉进步比别人慢,说不定哪天就被公司给淘汰了,进一步的推断就是,可悲的测试生涯,自己为什么要做测试,受这个气?
有人做明星,有人专门给明星搭台子。对于想往上爬的同事们,做开发和测试,或者市场,或工程,什么都不要紧,我就不替你们操心,描绘未来了。对于想一辈子踏踏实实安安稳稳做事情的同事们,我的建议是,测试是门好职业。
人人想当官,这是我们文化的传统,它给我们民族带来啥啥我就不敢放言了,没研究过。不过,现在的人生有很多选择的。对于不是很有雄心壮志的人来说,开发和测试都是可以踏踏实实做下去的。只是,开发虽然多拿几个钱,就是太辛苦。做工程总要出差。测试工作虽然很多的重复性,但是,真正的测试亮点是,你怎么保证你的那些“枯燥”的工作是肯定有效的?你怎么让你想做什么环境下的测试,想做什么样的测试,你就能够从环境上得到实现?不是知道使用几个测试管理工具,就算是测试高手。对被测试对象的理解,对被测试行业的理解,并具备实现测试的能力,才是走向测试高手方向。等到公司相信,你测试过的产品,是值得信赖的产品,你就在测试这一行业成功了。 呵呵,测试人员参与设计不是直接去写设计文档,测试人员要参与需求分析,参与需求规格说明书的评审;参与概要设计的评审;参与详细设计的评审。这些也就是参与设计工作。
记得曾经和一家有名的通信设备制造企业交流,对方遇到一个问题,ADSL的设备要求上网的同时能够打电话,但是该公司测试按照功能分成几个部门分别测试,一个部门测打电话,另一个部门测试上网,就是没有哪个部门测试同事上网和打电话的情况,所以产品上市后就出问题了,对方不知道如何解决这个问题,因为开发需求中并没有写清楚。要避免这种缺陷,我们的建议是设置一个测试系统分析员的角色,参与需求评审,把开发需求转换为测试需求。这就是测试人员参与设计的情形之一,这种情况还有很多。
关于测试人员的待遇不如开发,确实是事实,仔细分析,其实包括两种情况:
1、公司不重视测试,认为测试没有技术含量,因此认为测试人员不值钱,这是天大的误解,其实测试的技术含量很高,今天跟一位IBM的SQA兼SEPG交流,IBM的哥们说测试技术要求其实很高,越到后面要求越高;很多公司的领导没有这样的认识,没办法啊!
2、我们一部分测试人员的技术水平不够啊!只能从事简单的没有技术含量的测试工作,因此和同等级别的开发人员相比,技术还是差一些,这并不是大家不好学,而是学校没教,企业也没教,待遇低也是没办法。换一个角度来看,其实现在一些水平比较高的测试人员,都是众多企业抢着要的,一些人的薪水已经不低,还有一些机遇不好的,薪水早晚也会高起来的
要解决目前的问题,一方面要去影响、说服公司领导重视测试,另一方面必须努力提高测试水平 我当初就是觉得我在开发上面没什么信心,才选择软件测试专业的.现在学校里的授课也大都和开发有关.,关于测试的内容好少. 楼主说的很有道理,的确测试人员受不到重视的最根本原因在于测试人员不能把“东西”做出来。而目前公司中的测试工作又是在产品发布前才做的,往往这个时候发现的bug得不到认真的对待。但是我觉得出现这种局面是由于软件测试工作不规范,测试应该从需求就开始了,也就是李波大哥所说的参与需求评审、设计评审等工作,如果你有评审的才能,那么首先你应该了解你所以评审的东西,最起码要知道这样做的好处?为什么这样做?也就是说质量控制是从开始做的时候就要控制了,如果你真的想等到一切都已经做完了再去控制质量,这基本上是不可能的,因此往往会让人感觉测试工作效果微乎其微,自然也就受不到重视了。
我个人感觉测试最重要的价值在于确保有效。也就是说,开发人员能把项目作出来,而测试人员要通过一系列的工作保证项目成功,尽量将项目风险降至最低。所以说测试的价值在于保证有效。
而有效的工作对公司来说实在是重中之重,一个失败的项目会让公司损失巨大的。 關鍵在管理體系的效率問題,對於一個項目,它的縂的人工是個訂數的情況下,如何分配測試和開發的比例,權限,職責,關係,是最有效率的
页:
[1]