一人敌千军,故而好;但实际工作和生活中,都是很多人协作完成的,需要大家互相配合
从需求评审开始说起,产品经理代表业务和用户,他们会将用户的痛点或者隐性需求转化为需求模型;研发讨论需要如何实现及分工,比如,服务端需要处理哪些逻辑,提供给客户端接口信息,客户端需要处理逻辑,如何高效配合;测试人员则是依据产品原型,编写测试用例,尽可能发现更多问题,包括潜在的问题,保证产品在预期的时间内上线。所以在这过程中,各个阶段需要高效配合,有效沟通,才能发挥团队的最大价值
所以,作为一个合格的测试人员,不是说只需要简单的依据产品原型编写测试用例就好了,这样很容易只发现表面的问题,潜在问题很难发现。比如,本来产品逻辑设计上就存在漏洞或者过于复杂,明明A->B,非要设计A->C->B,造成逻辑复杂,也不易于用户使用;或者,研发在只是实现的简单的功能,并没有考虑异常的情况,而用户使用场景千变万化,很可能有各种异常或者报错;更甚者,用户的信息安全得不到保障,黑客可以随意攻击服务并窃取或者破坏用户信息....产品/功能上线后也很可能有很多用户投诉。
绝大部分的产品经理没有研发背景或者编码基础,只是站在用户的角度思考问题,并没有考虑到实现的复杂度;研发也并没有习惯性去思考我做这个功能的目的是什么,而只是限定在代码实现层面;所以,一个优秀的测试人员,不仅需要跨部门沟通,更需要多了解多看,大到产品设计(多了解产品的出发点是什么。当然,产品能力也应该是程序员的核心竞争力之一),功能实现逻辑(测试过程中很容易定位具体的问题,并且可以很容易考虑到研发没有想到的场景),在测试的过程中,你都可以从另外一个高度去思考问题,发现更多潜在问题。