Jayant Deo提问说:

  “从目前的行业情形来看,尤其是对于金融行业,要求测试员既要具备专业的测试技能,同时也要具有一定的行业背景或者有一定的行业知识。我想知道,在整个软件测试过程中,为什么以及什么时候需要测试员掌握这些行业知识呢?”

  首先,我们来看一下Danny R. Faught 对测试员的三围评测法。在聘用测试员之前,需要对其进行三方面的技能评测,那到底是哪三方面呢?

  1)测试技能
  2)行业知识
  3)技术专长

  毫无疑问,任何一个测试员都应该具备基本的测试技能,比如说手工测试和自动化测试。而具有常识的测试员甚至可以发现软件中绝大部分较为明显的问题,那么你是不是想说“这样的测试”已经足够了呢?你会把这个只是做了“这样的测试”的产品发布吗?很明显,你不会这样做。在产品进入市场之前,你一定要向相关的行业专家咨询意见。

  在测试的时候,你应该把自己当作终用户来进行测试。但是,每一个人的能力都是有限的,不可能同时成为上述三方面的专家(如果你是上述所有技能的专家,麻烦你告诉我一下,我一定会不择手段的把你挖过来,呵呵)。所以说,你不能保证你能完全了解每个用户的想法。用户对于其从事的行业会有更好的理解。你需要去权衡所有这些专业性较强的操作,这样才能使产品的各个方面都能得到较好的处理。

  目前,你可以发现不同公司在招聘测试员中,具有较好的专业的背景知识甚至比有测试技能更重要。当前软件行业有个很好的趋势,是很多专业开发人员和具有专业领域知识的人员正在加入测试行业。

  我们还发现了一个更重要的原因,为什么专业领域知识会被测试行业越来越重视。像当你聘用一个刚出大学校门的学生时,你不能期望他们具有丰富的经验来完成测试工作。为什么呢?因为有经验的人员,他不管在行业知识方面还是在测试技能方面都有优势,同时他们对不同的问题有更好的理解,可以更快更好的将软件发布出去。

  下面列出几种有代表性的行业:
  1)手机软件测试
  2)通讯软件测试
  3)网络电话测试
  4)通讯协议测试
  5)银行业务测试
  6)网络测试

  如果你没有专业的行业知识你怎么测试这些软件?总不能当你测试银行业务系统时,你只是知道测试界面、功能、安全、负载和压力吧?你需要知道用户对银行业务的需求、工作流程、金融背景知识、佣金公开等等,并进行相应的测试,后只有你才可以说你的测试是足够了的 ? 这需要标的专家的出现了。

  以我现在的项目为例:我目前做的是搜索引擎软件的测试,在这里,我需要知道基本的搜索引擎术语和概念。很多时候,其他一些组员经常问我这样或那样的问题,比如说什么是“发布者”,什么是“信号器”,它们之间的区别是什么,以及它们分别是做什么的?你认为他们可以根据当前的在线广告和搜索引擎优化来测试这个系统吗?肯定是不可能的。除非他们都很熟悉这些术语和功能才有可能。

  当我更好的掌握这些背景知识时,我可以写出更好的测试用例,执行更多的测试用例,还可以更有效的模拟终用户操作,这是明显的优势所在。

  这里重点列出做软件测试需要的素质:
  ● 测试技能
  ● 寻找BUG的能力
  ● 专业技能
  ● 具有专业的领域知识
  ● 沟通能力
  ● 会自动化测试技术
  ● 编程能力
  ● 思维敏捷,可快速领悟问题
  ● 能承受较大工作压力……

  还有很多很多没有列出来。此时你肯定会问我,我需要掌握所有这些技能吗?这取决于你自身的情况。你可以着重学习一种技能,或者成为某方面的专家同时对其他方面也熟悉,或者均衡的学习所有的技能。现在是竞争的社会,你要确保自己可以很好的利用这一点。在你跳槽之前,起码要确保你能成为某一方面的专家。

  如果没有足够的专业领域知识,该怎么办呢?

  公司可能会将你安排在任何一个项目,并且分配不同的任务给你。如果正好把你安排在一个你没有这方面行业知识的项目,你该怎么办呢?你要尽快的并且尽可能多的理解其中的概念。把自己想象成用户去理解这个产品,如果我是客户的话,我会怎么使用这个软件呢?如果可以的话,可以访问客户的主页,了解他们如何用这个产品进行工作的,从网上学习你要测试的软件所需要的行业背景知识,参加一些该行业发布的活动,结识一些这方面的专家。或者在需要相关专业背景知识时候,公司会给测试员提供内部培训。

  在学习专业领域知识中,没有什么特定的阶段。在你测试的每一个软件和每一个测试周期中,你都需要运用这些行业知识。

  如果你已读到文章的这一部分,我想知道你正从事的哪一种行业的?这样的话,我们的读者对不同领域,不同项目的测试知识,会得到更好的观点和知识。可以把你的行业在下面跟帖描述一下。