|
很多人问我为什么会选择“软件测试”作为自己的方向?坦白的讲,刚开始我也不知道。但现在有一些感触,觉得有必要将“软件测试”继续下去。
先说说软件测试的现状吧!
很多公司都会招聘大专生来做测试,测试工作门槛低,谁都能做。测试工作,就是别人把软件创造出来后,用一下;或者别人写完代码后,将东西扔过来验证一下,测试人员就是帮着开发人员打打下手。测试工作做好做坏,没有人关心,或者测试人员到底做什么,也没有人关心。
这就是国内大部分公司的现状,也许有些公司说测试要保证产品质量,测试人员很重要。只是口头上说说而已,而从实际行动上,当然是开发第一,测试第n。实际行动有哪些?很多:待遇、测试人员的来源、培训的机会、工作的分工、多方矛盾的化解,等等。
为什么会出现这种现象?
原因之一:软件产品成熟度的问题。记得产品的竞争力分为多个层次:人无我有、人有我优、人优我廉、人廉我转。先保证产品存在,然后谈产品的质量,质量好价格低的产品更畅销,质量好、价格低、服务好是用户追求的目标。以前的软件大多属于形象工程,有就行了。现在越来越多的软件用起来了,质量自然提上了日程。怎无奈,花钱的客户不是使用产品的用户,客户不懂产品质量,但他懂价格,导致的问题就是让开发商拼价格,降低成本。如果有一天,产品的质量对于软件的销售起决定作用的时候,开发商才会想办法提升质量。
原因之二:软件的质量并不完全依赖于测试水平。软件的缺陷是由开发人员引入的,如果少一点引入缺陷,即使没有测试,软件的质量也会很高。这是一个不错的观点。开发人员自身水平的提升对产品质量的影响是第一位的。ok,站在这个角度来讲,测试人员的存在是对产品质量提升的一个补充。
原因之三:测试人员没有争取。测试人员往往在公司的位置较低,同时他们却选择了逆来顺受,听之任之的态度。大多数软件测试人员的水平的确不行,连代码都看不懂,与开发人员根本没有办法交流,当然开发人员瞧不起你。
原因之四:高水平的测试人员都不做测试。水平高了,为了追求好的待遇,转开发了、做管理了,让自己的测试技能浪费了。
那“软件测试”还有救吗?是不是命中注定就是软件开发的“次要角色”?先提一些观点。
1、软件产品的质量越来越重要,而且是个趋势。——应该没有人反对吧!
2、为了保证产品的质量,有两条路可以走。第一预防,让错误少出现;第二验证,如果有错误,发现、处理。第一条路的主人公是开发人员。第二条路的主人公是开发人员和测试人员。测试人员的位置就是通过验证的方式去发现问题。而这两条路相互补充,在整个开发过程不会舍弃其一。
3、开发人员和测试人员越走越近,开发人员需要测试技能,测试人员也需要开发技能,只是在特定阶段完成不同的任务。开发和测试是软件开发过程中的不同角色。代表着工作范围或者工作方式,为了实现同一个目标。举个例子:TDD让测试与开发真正走到了一起。
4、测试从软件开发过程的一开始就进入。这是一种正确的工作方式,让测试人员有更多的表现机会。
5、测试人员需要掌握更多的技能。需求分析的技能、设计的技能、编码的技能(不见得有开发人员精通)、测试的技能。这样,测试人员在整个软件开发过程中,才能真正承担需求分析验证、软件设计评估、测试尽可能自动化、软件验证等开发任务。才能真正体现出:测试人员只是站在另外一个角度解决问题的角色。
一种理想状况是:开发人员和测试人员具有相同的技能,他们拥有不同的角色,一起合作开发软件,共同打造高质量的软件。如果项目小的话,其实开发人员和测试人员就是一个人。
说说最初的问题,作为第一篇blog的结束。“软件测试”对我的诱惑。
1、软件测试讲究的是思路,尝试各种思路去发现问题。如果只是将自己的思路固化在如何“构造”优秀软件上,往往导致“身在此山中”的问题。
2、站在用户的角度,为你的客户着想,我们开发的目的不是为了写代码,然后自己欣赏,让更多的人用起来才是真正的价值所在。
3、软件测试是软件工程师发展的必经之路。
4、软件测试是一种趋势,它将在软件开发中占据越来越重要的位置。试想,如果将来web service盛行,软件构造的方式可能会发生质的变化:也许就是选择web service,然后再验证的过程。
也许将来不再会有开发人员、测试人员之分,也说不清是开发人员吞并了测试人员,还是测试人员吞并了开发人员. |
|