有一个投票的功能,在预发布阶段我发现两个比较严重的问题。一个是添加新的选项的时候,点击“添加”按钮正常,用回车提交就加了两条;另一个是投票完成之后,选项radio和提交按钮都是可以点击的,再次投票之后弹出对话框,提示“你已投票”。我反馈给对应的测试工程师,得到的信息是这两个问题都跟开发人员提出过,对于第一个问题的回答是“现在的技术方案只能做成这个样子”,对于第二个问题的回答是“投票关联到好几个表,如果一打开就判断是否投过票,性能会比较差”。于是——这样的问题被放过了。
我建议这样的问题一定要提bug,技术能力问题还是性能问题都不是牺牲用户体验的借口,而且这样最基本的用户要求都达不到,还做这个功能干什么?用户不会因为我们做了多少新东西而表扬我们,却会为我们产品的质量而骂我们,甚至抛弃我们。
后来我深入思考了这个问题,测试人员发现了问题,但跟开发人员的交流中,妥协了。
这是为什么呢?
测试人员为什么会被开发人员牵着鼻子走?
1.开发更了解需求,UC是开发人员写的,测试人员是UC的读者,大部分的情况是作者比读者更明白
2.有些功能的实现受限于开发人员的能力,说实现不了,你能奈我何
3.需求分析、系统设计和开发都是开发人员在主导,于是测试人员习惯性的受开发人员指导了
4.PM也是开发人员,当出现争论的时候,PM会站在开发人员的角度思考
测试人员怎么做到不被开发人员牵着鼻子走?
1.提升自身技能,保证测试质量
有能力才不会被人左右,那测试人员需要具备什么样的能力?
需求分析的能力——需求分析往往是开发人员在做,测试人员参与评审,但一个评审很难深刻理解需求,这就要求测试人员在需求分析的过程中多参与,多讨论,把大量细节的问题提前分析清楚
测试设计的能力——开发人员做系统的设计,这对功能的实现有很直接的指导关系,测试人员必须能够深刻理解系统的实现方案,明白整个系统中具有哪些对象,这些对象有什么属性,有多少状态,哪里实现有困难,哪里容易出问题。当对系统的内部结构了然于胸的时候,你才有能力把握它的质量。如同一个医生给人治病,如果不了解人体构造,要呜呼哀哉了
用户体验的能力——用户体验是一个比较虚的话题,但却有一些实在的方法可以测试,例如一个投票的功能,网易有、新浪有、QQ有,这么多网站都有,去对比一下就知道怎么样的功能更好。平时要多关注我们同类型的网站、类似的功能都是怎么实现的?自己作为一个用户,你会不会觉得有些功能别扭?你了不了解淘宝上的用户是怎么使用这些功能的?
时间管理的能力——管理好自己的时间,同时也管理好开发人员的时间对你的影响,时间和质量是一对冤家
2.坚持质量第一
受PM管理但只为质量负责——测试人员在项目中是一个质量监督员的作用,他的权力是不受PM制约的,项目的进度、问题、风险、商业目标,都不能影响测试人员对质量的要求
质量包含产品质量,还有需求、设计的质量——测试人员需要控制整个生产过程中的所有环节的质量
当我们遵守的标准跟PM的要求有冲突时提升问题级别——不要害怕冲突,质监人员跟送检人员之间产生冲突是非常普遍的,而且,如果你做的事情让送检人员很满意,谁来保证客户的满意?
如果职能领导要求改变标准,提出完整的问题和风险列表——假设,真的为某些目标,对质量的要求妥协了,记得写清楚问题有哪些,风险有哪些。剩下的,不是你能够控制的。
有了这些能力和原则,我想测试人员可能反过来要牵开发人员的鼻子走了。软件测试是一门科学,但这门科学还不够完善,我们平时工作中多思考,多探索,也许突然有一天,我们就站在了业界的最顶尖。