|
首先,定义我们的测试,是由专业的测试人员开展的测试工作。通常,代码级别的测试、单元测试是开发人员自己进行,所以不在讨论之内。由测试人员开展的测试通常是白箱集成、黑箱集成、系统测试等。
想讨论两个话题:1,测试在产品的生命周期中,是什么角色?2,测试做为一门职业,能够给投身于此的人们带来什么?
测试,在产品生命周期中是什么角色?软件产品首先要开发出来。
核心技术,是一个公司的竞争力。在核心竞争力上,还要有一系列的产品。对于产品要有质量保证,才能够活下去。
就说我知道的行业吧。一种是小公司。小公司的活力在核心技术和产品,而且多偏重于硬件,或涉及到软件也多是集成性质。这种公司产品推出快,不需要太多的质量管理。测试人员在这种公司是没有什么饭吃的。另外一种就是系统级别的软件公司。这种公司通常受到两方面的压力:1,技术的不断更新;2,产品质量的稳定和可靠性。在这种公司中,质量会提高到生命线的地步。测试人员在其中是能够有稳定的饭碗。
回过头,再看核心技术和产品质量。很多国内的公司对如何积累和发展核心技术是有自己的想法,但是对于如何有效提高产品质量,却是处于自发的无意识阶段。在这种公司里面,测试人员的工作会是辛苦,而且低微的,需要承受被忽视的心里压力。常见的情况就是,谁的开发工作做的越不好,谁得到的奖励越多。为什么?因为快速地递交开发成果-效率高,先得到表扬;质量不好当然会出现较多的问题-这个是正常的,不会因此受批评;自己制造的麻烦,当然自己最清楚,于是做为优秀的救火队员,多次在危难中把老板解救出来,呵呵,老板能够不感激吗?
再看看测试在质量保证中又是一个什么样的角色呢?质量是设计出来的。一个质量可靠的产品,从需求分析开始,就有了质量保证。虽然需求总是变化的,但是需求分析是可以做到在一定阶段是清晰的。系统架构设计中,给测试,和维护做了多少考虑?模块划分当然受限于系统设计师的水平,但模块间的接口定义,流程定义是否清晰,是质量控制可以起做用的。最后,详细设计,和代码编写的质量如何?也是直接影响产品质量的。产品走过这些流程后,才开始进行集成和集成测试,系统测试。虽然测试人员可以奋力发现BUG,但是产品的质量其实在递交测试前就已经成型了。在产品的质量控制中,测试只是发现BUG,最终是否能够有效定位BUG,解决BUG,还是取决于系统设计时候为这些工作做的准备,以及编程十分规范,能够有效检查代码,并事先就避免了很多低级的代码错误。所以,不要指望测试就能够提高产品质量,测试只是整个质量控制环节中的最后一关。
产品面世后,客户支持,修复BUG,这些方面的质量控制,就和测试更没有关系了。
那测试是干嘛的?发现产品的BUG。不是质量管理,更不是项目管理。所以,我们定义测试工作,它的职业特性是什么?发现产品的BUG。
好。我们定义了什么是测试工作。那,这项工作能够给其中的人们带来什么?
首先,测试是一个负面的工作。它不会把产品从无到有的制造出来。而是产品制造出来后,检查是否满足客户需求。是公司内部的虚拟客户。所以它不是公司的核心,也不可能有什么原创的东西。说白了,想靠测试做爆发户,那是不可能的。(做测试培训或产品认证中心之类的工作不是我说的测试工作)
其次,测试的工作是上下受限的。怎么说?没有测试人员,产品也照样出来。如果说没有开发人员,那产品就啥也没有了。这就是下受限,产品能否出来,和测试人员不相关。同时,测试人员再努力工作,产品能够做成什么样,还是取决于产品的设计,开发人员的BUG修复能力。测试人员只是发现问题,解决问题还是要开发人员。这就是上受限,产品能够做好,也和测试人员不是很相关。测试工作再好,也是让产品有一个量变,却不可能质变。测试人员摆脱不了被忽视的目光,也体会不到打了胜仗痛苦淋漓的快感。
真的让人很悲观。大家常说,用20%的精力,来完成80%的目标。而测试就是用100%的精力,把剩下的20%补完。虽然产品的竞争力往往就体现在那剩下的20%中,可惜这20%所花费的100%的汗水,注定只能够默默地流。就像富人只是少数,但却是最吸引眼球和最被人们所向往的。请大家千万考虑清楚,是否入测试这一行。
测试有什么好处?
精神和思想的解脱。测试对某项技术的理解,用20%的精力,就可以达到80%的理解。这也就够了。剩下的80%,还可以达到至少4个方面的80%。如果你不想全部用在工作上,自己考虑考虑理想,人生,也是完全可以的。测试工作的重复性,又让你的大脑有更多的空白时间。愿意想啥,就可以想啥。
测试还能够给我们带来什么?转行的方便。做技术支持,销售,项目管理,你都有了对整个系统比较全面的了解,有了产品质量低下带来的痛苦经历。
测试,还能够给我们带来什么?大家告诉我吧。 |
|