为什么:
其实开发人员真地挺辛苦的,解决技术问题所需要的巨大精力,导致了他的关注点很有限。
我们其实不能去blame他们,因为也许他们也和我们差不多聪明程度,但是他们要解决的技术问题,往往远远要比我们要解决的难。
其实换了人也一样,如果我们所有的精力都用在解决问题上,往往对于为什么要解决这个问题,以及解决这个问题到底能带来什么价值,没有足够的时间去考虑。
所以他们也需要跳出具体的实现,看看他做的东西到底会带来什么样的value。
而测试人员从本来就可以不一定关注具体的实现,完全有必要站在客户的角度,考虑这个产品的价值究竟的在哪里。当然,我们不能对问题浅尝则止,如果有可能的话,完全可以去看看代码,可以去了解一下你发现的bug都是怎么被开发人员引入的,从而对系统有更深入的了解。
或者有机会,也可以写一些产品的代码,这样帮助你从两方面来考虑问题。既有从外到里黑盒的角度,也有从里到外白盒的角度。现在的Scrum的软件开发模式,应该会让这种想法更有可能。
一些思考:
什么是Bug?Bug就是对软件的期望用户的价值有损害的功能。
什么是质量?质量就是软件可以给他的期望用户带来value-add,但是没有或者很少value-decrease。对于它的非期望用户,应该是没有任何的value-add 。比如财务软件对于一个没有授权的用户,应该是没有任何可用的功能。
测试人员的职责其实是如果帮助发现这些负价值的功能,并让这些正价值的功能更容易被用户接受,达到价值最大化,比如用户的可用性更好,性能更好。
所以开发人员和我们是伙伴,我们共同来交付一个可用的,质量足够好的产品。很多时候,开发人员关注在do things right,而我们可以帮助他们更好地do right things。如果是一个维护性质的团队,也许你可以通过改进回归测试来确保代码改动不会引入新的问题。
之所以我们对我们的定位有很大的忧虑,是因为没有看到我们自己的核心价值。你不是一定要一直做测试,但是如果你现在还是的话,也许可以以下方面来提升你的核心价值:
一双发现价值的眼睛
锻炼你的一双慧眼, 如何深入地理解产品的价值到底在哪里,敏锐地捕捉可能对实现产品的价值实现有损害的地方。因为软件的价值最终还是通过用户来实现的,所以你就要关注让软件的用户价值的最大化。
磨练你的思维,思维成就测试
关注一些测试大师的文章,学会大师的思维方式。知其然,也要知其所以然。国外的一些大师都给我很多的启发,比如James Bach,CemKaner,Harry Robinson, James whitaker,etc
这么多年测试工作带给我最大的特点就是发散性思维的能力,似乎总能想到一些别人想不到的地方。还有就是充满怀疑精神,一个事情没有经过自己的验证,总是不愿意完全信任。
领域知识
对于相关领域知识的了解,对于本领域知识的深入了解,没有领域知识,什么方法论到最后其实都是起不了的。在某些领域,比如电信领域,领域知识的深度和广度也不是那么容易搞定的。
必要的技术能力
锻炼写代码的能力,至少可以搞定自动化测试。因为没有自动化测试的话,你的日子会比开发人员更加辛苦,而且重复地做同样的事情对你没有任何的帮助。但不要对你的写代码的能力比不过开发人员有太多的顾虑,因为本来那不是你的强项。而且开发人员可以你的朋友,可以帮助你。