测试没有银弹

  在测试行业,并没有放之四海皆准的灵丹妙药,不可能有一种方法能够解决所有的测试问题,当然也不会有哪个测试师一上来能解决所有的问题。随后贺?引用孙子兵法战法:道、天、地、将、法,这些兵法同样适用于管理软件测试团队,他强调“道”是指要将企业愿景目标须明确,是一切的前提!而具体到“法”的话,则是解决如何做测试的方法、按什么顺序做的问题,剩余的是管理的问题。但是对于不同的团队,由于侧重点和资源都不一样,所以不可能通过一种通用方法解决测试问题。

  不同类型的团队适用于不同的测试管理方法

  ● 小型团队

  小型团队通常面对的大的问题是如何存活下来。总之是要有特色,也是“人无我有,人有我精,人精我贱”(这里贱是指便宜)。以此为前提,才能决定测试怎么做。小型团队讲究少花钱多办事,这是不“二”的选择!以此为前提,那么适合小团队的是互测了。三五个人的小团队通过互测、自测来保证质量,更多的时间应该放在业务功能上,把卖点做足。

  ● 中型团队

  中型团队已经可以有自己的专职测试人员了。那么第一问题在于明确KPI,清楚什么才代表真正做好了。在搭配独立的测试工程师的时候,好按照角色进行划分:比如:软件测试搭建、自动测试组、手工测试组、性能测试组和安全评估等。

  中型团队虽然可以通过自动测试来提高效率,但是自动测试有时候会出现一些简单错误,所以不要去期望有一个的自动测试框架来解决所有的问题。自动化测试只是用来提高机械测试的效率的。

  对于中型团队,敏捷也是一个不错的解决方案。但是在实行敏捷之前需要确定项目的容错率和可靠的人,合适敏捷的一般是30岁以上能对项目负责、重视荣誉感的人,这才能保证项目的质量和进度。

  ● 大型团队

  大型团队很需要重视企业文化,贺?举例,微软坚信人才有价值,Google信奉互联网也有民主。但不同的公司的核心企业文化通常差异很大,因为他们的业务并不一样。侧重软件的微软会比互联网公司Google更重视产品质量,因为Google的产品更新简单,但微软的维护、升级成本却很高。做测试也同样需要明确这个理念,软件公司需要质量能有有力保证,互联网公司则更需要敏捷做推动力。

  我们建议,在做大型软件项目时开始推进持续集成,至少每天集成一次,Build时相当一次安全检查,完成之后再进行一系列单元测试在集成到整个系统,再对整个系统进行编译,再部署,后自动化回归。总之,每天都在做测试、做集成。

  同时也要提醒大家,大型团队的质量也是有成本的,好做个实用主义者,谋定而后动,目标决定过程,而过程决定质量。

  互动环节

  提问:敏捷测试对个人素质要求比较高,但团队通常是年轻人居多,经验普遍不足,这个方面您能否给出一些建议?

  回答:敏捷要求具备很强烈的学习欲望,愿意对自己负责,而不是现在会什么,团队的持续学习的能力才叫素质。所以团队做不了敏捷是因为没有学习的氛围或者是团队人员本身不适合这样的学习氛围。

  提问:对于小型公司,在团队里测试人员更适合做哪些除测试之外的服务和帮助?

  回答:研发人员通常会把自己不愿意做的事情扔给测试人员,比如说明书、用户培训、安装和售后支持、服务等。这在小公司没有什么问题,但不适合大公司。但更应该让专业的人干专业的事。比如产品说明书,我曾经找来一个专科文科学生代替测试人员,结果更好、更专业。

  提问:测试人员做得好了常跳到产品部门,公司留不住人怎么办?

  回答:这是好事。公司里重要的是好的产品,所以理解产品的那个人才是对公司重要的人。如果测试部门能培养这样的人那无疑对公司是一件好事。这个问题可以试着通过轮岗来解决。