优秀测试和普通测试之间的差别在于测试人员如何思考:测试人员的测试设计选择,解释所观察到的能力,以及非常令人信服地分析描述这些现象的能力。
然而,在实际工作中,我们更多的看到了测试人员在电脑前点点点,或者拿着手机在办公区域边走边操作着,看到他们的这些行为,自然而然的就觉得他们的工作其实很容易,很简单,因为可以很容易的模仿测试人员的外表,看到的他们的行为,但却很难理解到他们的思考方式。对于测试人员是否优秀恰恰不在于他们的工作表象,而在于他们的思考方式,那么优秀的测试人员和普通的测试人员思考方式到底有哪些不同呢?
在《软件测试经验与教训》一书中,作者描述优秀测试工程师会进行技术性、创造性、批判性和实用性的思考。
技术性思考:对技术建模,并理解因果关系的能力,这包括相关技术本身的知识和使用工具并预测系统行为的能力。
比如对于移动端PUSH,需要了解到PUSH的一般的技术实现方式,如:操作系统本身提供的消息通道;长链接方式实现的消息技术架构;第三方提供的消息方式,如信鸽等等,这些技术的优缺点,测试时应该关注那些东西,每个技术本身可能存在的问题等。
创造性思考:产生思想并看到可能性的能力,测试人员只能以能够想象的到的方式进行测试,只能寻找并猜想会存在的问题。
去年年中,为了提高Android push消息的触达率,push消息推送更换了一套利用长连接的推送push的方案。该方案上线几天后,发现曝光数据有问题。
后经过开发测试发现,该问题因为引入Android客户端长连接保活机制导致,长连接使用了Android像素保活,为了实现保活机制,需要点亮屏幕界面(人肉眼看不到),点亮屏幕界面就会触发曝光数据,引发线上曝光数据异常。
后来思考这个问题,如果仅仅从测试的角度这个问题几乎很难被发现,但如果我们了解了长链接的技术实现原理,然后结果数据曝光的机制,就很容易发现这个缺陷。
批判性思考:评估思想并进行推断的能力。这包括在自己的思考中发现并消除错误的能力,将产品观察与质量准侧关联起来的能力,以及针对特定信念或所建议的行动过程构建有说服力的测试用例的能力。
对已知事件或者正在发生的事件根据经验、数据、事件、规则、程序等进行分析评估推论出与已知不相符的结果。
在N年前组织的一次线下沙龙过程中,发现投影仪一直不亮,感觉可能是投影仪的问题。然而在不断的测试开机关机中,偶然发现一道亮光一闪而过,猜测这道光可能是投影仪发出来的,进而进行不断测试,后来发现原来是投屏的问题,而不是投影仪的问题。
实用性的思考:把想法付诸实施的能力,这种能力包括运用测试工具,并使用测试手段和力量与测试范围适应技能。
总之像优秀测试人员那样思考,不会是我们所看到到那样点点点的做测试,而是能够不断拓展思考的维度与深度,当测试以最具有破坏性的方式失败时,根本原因肯能是我们的视野狭窄导致的。所以测试人员在让自己变得优秀或者卓越,除了学习业务知识、技术知识,还有努力提高自己的思考方式。
网友评论