软件测试是软件工程中的一个重要部分,它贯穿于整个软件开发生命周期,是软件质量保证的关键手段。随着软件产业高速发展,从事软件测试的技术人员也愈来愈多。软件测试工程师在工作环境、自身能力和价值创造等方面的提升,对企业软件开发组织和个人成长之路都有重要意义。在通往软件测试的成长之路上,涉及测试能力培养、测试心理调适、测试与开发团队间的协作沟通等内容。一个测试新人如何通过组织培养和自身努力,逐步成长为中高级测试工程师或测试管理者,是需要迈过很多关口的.
  下面我们一起来探讨一下软件测试工程师的成长之路上“过五关”。包括“心理关”、“业务关”、“技术关”、“专业关”和管理关。
  一)心理关
  在当前的软件行业中,由于软件公司规模大小不同,对软件研发的投入和重视程度也不相同,有部分中小公司对质量的概念薄弱,以致于软件测试也常常被忽略或不受重视。行业内还有不少老古董开发人员对测试有偏见和误解,认为只有不会编程或技术弱的才去做测试。
  刚从事软件测试工作的人员如果一开始进入了一个中小型公司,在开始时,常常心理上不适应。这种不适感来自于自身技术薄弱、公司没正式的测试部门、开发流程不规范以及公司领导对测试的不重视等多种因素。很多软件测试人员从心理上占了弱势,自觉地把自己当成开发人员的下级去沟通,长此以往,在整个开发工作中很被动,总被开发人员支配,被开发牵着鼻子走。如果遇到这种情况,我们除了在心理上接受并忍耐着配合完成工作,但也应该努力提高自己的工作质量和效率,提出更多有建设性的意见帮助开发团队一起改进,去赢得开发团队的尊重和重视,不能总是这么被动地顺从不合理流程。
  实际上开发和测试是软件工程中并行的两条线,同等重要,所以我们在工作中心态要平和,要自己对自己有信心。
  二) 业务关
  在软件测试中,功能测试是基础也是重要的,要做好功能测试,必须对被测系统要实现的业务功能非常熟悉。掌握被测软件系统所涉及的业务知识对每个测试人员都很重要。快速学习并掌握各种流程及业务知识才能设计出具有深度和广度的测试用例,并高效地执行测试,这是测试人员必须有的基本功,测试人员必须过“业务关”。
  一个测 试工程师长期从事某一个行业领域的测试工作,他通过“业务关”的有效途径是先学习和掌握“行业通用业务知识”。例如:银行核心业务系统、电信计费系统、税收征收系统、财务软件等我们都分别把它们叫做对应的某个行业。
  三) 技术关
  强调精通业务知识不等于不用掌握技术。事实上,测试是一个技术性很强的工作。与开发工程师相比,测试工程师需要掌握的技术范畴要广阔得多,只是在技术深度方面有所不同。
  一般来讲,测试工程师要掌握系统使用和系统管理方面的技术,包括以下几方面:
  1)各种操作系统安装、配置和系统管理;
  2)各种数据库管理系统的安装、配置和系统管理、数据库的使用(SQL);
  3)各种中间件的安装、配置和管理;
  4)计算机网络的配置和系统管理;
  5)上述系统的综合管理和应用,其中高级别的要算性能测试的性能调优工作,这一般是高级性能测试专家才具备的能力,一般测试工程师和开发工程师都难以企及。
  所以的高级测试不比开发差,往往比一般开发能力更强。
  除了以上一些常用要掌握的,测试工程师还需掌握这些专业的工具和技术。不仅要会使用,而且还要会脚本开发,能够独立地完成自动化或性能测试工作。
  中高级测试工程师同样需要熟悉一两种编程语言和测试脚本开发。
  无论开发还是测试工程师,我们都不可能精通每一项技术,但常用的我们要熟悉,至少能精通一两种。在实际测试工作中多培养解决技术问题的能力,遇到什么问题时再加强相关知识的学习,也是什么不懂拿起来学。多去开展一些技术攻关活动,这样做的事多了,技术能力自然会大大提高,这也是过技术关的关键所在。
  四) 专业关
  对于测试工程师来讲,前面的过“心理关”、“业务关”、“技术关”都是为过“专业关”打下基础。测试质量如何才是我们真正的能力体现。测试的能力体现在以下这些方面: