从营销角度看软件测试的价值

来源:互联网 发布:单片机初始化函数 编辑:程序博客网 时间:2024/05/01 18:02

做过几年软件测试和质量管理方面的工作,一直都想好好写点东西,来表达自己对软件测试职业的心得及看法。

上世纪末,国内软件企业大多数还处在规模小、缺乏规范、客户不成熟的状态,软件行业处于一个飞速发展的阶段,各种软件公司如雨后春笋般的出现,到2004年底,据有关部门统计国内大大小小软件公司共计达8000多家,而其中大部分都在50人规模以下的小企业。同质化竞争、乃至恶性竞争严重损害了行业的整体利益,再加上国际寡头的步步进逼,这些小企业的生存状态越来越难。一些具有深厚的客户关系的企业,生存状况还可以。然而,更多的小企业不得不面对这么一个残酷的现实,即随着客户越来越成熟,客户对产品的质量和售后服务的要求越加苛刻。另外,一些企业将市场瞄准到日本及欧美的海外市场,质量管理的需求也日益强烈。面对着激烈的市场竞争,企业要么创新以开拓新的市场,要么在现有资源内缩减成本。更多的国内企业选择了第二种手段。于是,软件测试人才和质量保证人才的需求开始多了起来。

软件测试工程师,这个工种是最近五到十年逐渐开始出现的,现在逐渐成为热门职业。在这之前,除了少数行业,如航天有专职测试工程师以外,国内大多数软件企业并没有软件测试工程师这个岗位,软件系统在编码完成后由程序员交叉测试,或者干脆在客户验收阶段由客户试用,并派人长期驻守于客户方,以随时进行修改。可见,那时候软件测试未能得到软件开放商的重视,软件系统的所有问题都在项目的后期才发现。很多大型项目因此而宣告失败。

可喜的是现在很多企业的管理决策层已经意识到,软件测试是软件开发过程中不可缺少一道环节。据统计,软件测试占整个软件开发过程进度的50%-60%。软件测试质量的好坏,直接关系到软件产品的质量。软件测试是软件质量保证的重要手段。然而,具有质量意识并不能立刻给企业带来受益,软件测试的价值是很难评估的,它与软件开发——这种创造性的工作特性形成了鲜明的反差。我认为,软件测试价值评估需要建立在完善的软件开发过程之中,诸如CMM质量模型的意义便是在于量化管理的不断深入,通过对过程数据进行复杂的统计才能得出科学的结论。可是,CMM适和小企业吗?经验告诉我们CMM在大企业中推广较多,效果较好。因此,我们可以说,目前的行业状况是,大家已经认识到软件测试是重要的,但是并不知道软件测试有多么重要!软件测试工作到底该如何开展?每个从业人员都需要去摸索。然而在摸索之前,有几个观念需要正本清源,那便是对软件测试价值的认识。

我认为软件测试存在的根本价值有两点:
1)为间接客户-开发组织,提高质量、缩短交货时间,从而降低成本。
2)为直接客户-最终用户,提供满足需求的软件系统。

作为测试从业者,首先要认清楚自己的“衣食父母”是谁,明确软件测试的立足之本,才能估计软件测试的价值为几何,才能够知道如何去创造更大的价值。只有了解大环境的发展趋势,只有对自身定位明确清晰,才能不受外界干扰,一步一个脚印的走自己的路。从产业发展的角度来看,软件测试的发展取决于软件产业的发展,这个过程是伴随着市场的成熟、开发商的成熟及客户的成熟。因此,软件测试的发展是一个任重道远的过程。如果我们从经济学的角度看待软件测试,我们会悲观地发现软件测试人员是一个附庸的角色,无论是过去、现在还是将来,都无法摆脱这个命运。软件测试机构无法直接生产满足各行业需求的产品(测试工具和测试服务都不算)。测试组织生存的前提条件是开发组织具备开发、创造符合客户需求的软件产品,脱离了开发机构,测试组织没有任何价值。

测试从业者要清晰地认识到开发与测试的产业链上下游的关系。你或许会说,那你怎么解释测试驱动开发呢?我想这是不同层面的问题。测试驱动开发,首先是一种开发方法或开发技术,其次才是一种测试技术。先写测试代码后写开发代码,并不能说明测试比开发重要,反之亦然。开发人员在认识上存在不足,常常认为测试人员在给他们找麻烦,是他们的对头!为此,测试人员也很苦恼,在情感上处理不当的话,会以同样的方式与开发人员对立起来。其实,这种场景恰恰是考验测试工作者的沟通能力和EQ的时候。要知道,测试人员需要具备的素质是一种广度,除了要求专业技能以外,对沟通技巧、情商、客户意识的要求也更高,这与开发人员要有专精的素质要求是不同的。测试人员只有意识到开发人员也是自己服务的客户,那么才可以更好的与他们沟通,从而为整个企业赢得最终顾客的信任。

成功学有一句话:“改变世界之前,改变别人之前,先改变我自己”。常常看到同行们抱怨待遇不高,工作缺乏成就感。我认为这种心态可以理解,但不值得同情。大家都是在外面打工的,应该知道任何一个老板都不傻,他不愿给你高薪,只能说明你没有给他带来利润,或者退一步说你没能让他看到你的工作价值!如何提高工作价值?除了摆正心态,树立服务客户的意识以外,就是不断地提升专业能力,努力成为专家。请注意,测试专家不能只用技术来衡量,更不是用编码能力来衡量的。在不同的测试层面上,可以有不同的专家。比如:集成测试专家、黑盒测试专家、自动化测试专家、测试管理专家等等。举例来说,开发人员普遍重视技术不重视客户需求。疏不知,客户最关心不是你用的哪种技术,而是你给他们提供的系统能不能为他们赚钱、省钱!

我从事软件测试作为自己的职业可以说是机缘巧合。现在回想起来,我很感谢我以前的主管和公司领导,是宽松的管理给了我学习成长的好环境,不但教会了我工作技能,更培养了我良好的职业素养。的确,领导的支持和合理的制度,对软件测试人员的成长非常关键。因为,软件测试在国内刚开始发展,可利用资源杯水车薪。常常听到测试同仁们说老板们把一些缺乏从业经验的人安排到测试岗位上就觉得很心酸。这种做法是让软件测试的发展在缺乏财力、物力资源的情况下,连最关键的人力资源选配权也给剥夺了!在MS、IBM这类成熟的软件开发组织里面,软件测试人员和软件开发人员待遇是相当的、地位是平等的,他们是我们学习的对象,更是我们未来的方向。

遗憾的是我们大部分软件测试人员没有这种良性的土壤。然而抱怨是无济于事的,只有从改善自身做起。这么多年来,一直希望将软件测试作为自己的一份事业,而不仅仅是一份职业。做事业,就得找对自己的客户。前面提到过“衣食父母”,我就常常向做销售、售前、售后的人学习客户服务的意识,这一点很重要。我们都在企业工作,大家坐在一起的第一个目的就是赚钱——这也是企业存在的墓地。想赚钱,首先要知道谁愿意给你钱。技术人员往往忽视了这一点,开薪水漫天要价。我请问,你能给你老板赚多少钱?或者省多少钱?市场一线人员很清楚自己的客户是谁。那么请问,开发人员的客户是谁?你会说和销售人员一样。你说的不全对,开发人员的客户除了最终用户以外,还有项目经理、销售人员、老板。我一直认为,在一个公司里面,后勤人员的客户应该包括外勤人员,反之亦然。你说这是团队精神也行,但我更愿意把这种服务精神视为个人的职业素养。因此,我认为测试人员的客户,除了开发人员的哪些客户以外,还要把开发人员视为自己的客户。试想,如果开发人员认同你,销售人员佩服你,老板喜欢你,你的薪水还会少吗?

测试人员只有先把本职工作做好,把最近的客户——开发者服务好,才有可能将自身的价值提升到一个更高的阶段。才有可能将职业变为事业。这绝对是一个艰辛的过程。如果哪天,你公司开发人员说“因为有你的参与,我的工作效率提高了,产品质量更好了,我的心情越来越愉快了”,那么你就是一名成功的测试工程师。

任何一个产业的发展都要经历婴儿期、成长期、成熟期和衰退期。软件产业正处在逐渐迈向成熟、走向理性,成熟意味着规范化、标准化、模块化、量化,这便是精细化质量管理所追求的境界。一个企业的发展,在不同阶段的战略不同,初期是创新,成熟的时候是创效。软件测试人员的未来就在于如何最大化地为软件企业创效。

 

后记:成文于2005年8月,现略作修改。

原创粉丝点击