书名:思维力 - 高效的系统思维;作者:王世明
首先“第二部分 系统分析语解决问题”的前言部分,通过一个案例说明了系统分析与解决问题的5个步骤,我将其5个步骤简化为3个步骤,如下图所示:
本文主要主要针对“第3章 发现问题 - 界定问题”的内容,结合自己的测试经验,关联软件测试过程中碰到的类似案例。
什么是问题?问题指的是现实与目标之间的差距。因此基于问题的定义,可以分析导致问题的原因:目标是什么?现实是什么?产生偏差的原因是什么?消除差距的对策是什么?对策是否有效等?作者王世明老师将工作(例如解决问题)、生活(沟通表达)、学习和写作过程中碰到的问题归类为4种类型,分别是:
1)未能准确地描述问题
2)没有梳理清楚问题的结构
3)被问题的表象蒙蔽
4)忽略问题隐含的假设
一、未能准确地描述问题
案例分析:开发人员D和测试经理说,你部门的测试人员T合作态度太差。
“太差”就是一个主观笼统的词,并不能明确问题。因此首先需要了解测试人员T是就针对开发人员D合作态度差,还是是一个普遍对人态度差的问题?合作态度差是否是由于业务知识不过关导致的?还是由于当时他太忙而导致无法向开发人员提供合作支持?也就是说,在碰到模糊化、非定量和有歧义的问题时,首先需要将它们转换为可例证、可量化、清晰化的问题描述。
二、没有梳理清楚问题的结构
案例分析:客户希望我提供一期探索性测试
此时,通过5W2H的框架有助于澄清该问题相关的信息。例如:针对上述我通常会问为什么要开展探索性测试?哪些人会参与(获取测试工作经验、负责的测试级别、测试类型等信息)?什么时间、时间周期等;
三、被问题的表象蒙蔽
真正的问题并不会自动摆放在你的面前,它们可能会以问题的表象、问题的初步解决方案,或者无关的干扰信息等形式出现。很多人会被这些偏差迷惑,从而偏离问题的真正解决之道。例如:
1)测试团队为什么会遗漏这么多缺陷到用户现场?
直觉地回答是测试团队由于各方面的原因导致测试有效性差而导致的。但是,这可能是表象的原因,此时采用5WHY法将是一个不错的选择以澄清真正的问题,可能通过几个WHY问题之后,发现缺陷遗漏这个问题的根本原因是需求定义作物导致的。实际问“为什么”几次,要根据具体的场景,基本标准是达到我们能解决的层次为止。5WHY分析法的关键是:鼓励解决问题的人努力避开主观假设或逻辑陷阱,从结果入手,沿着因果关系链条,直至找出问题的根本原因。
2)客户要开展一期探索性测试
同样地,你可以问几个WHY就会发现,实际上客户的培训目的是为了高效测试,此时你会发现探索性测试只是为了达到这个目的的一个手段,而非全部。
四、忽略问题隐含的假设
案例分析:为什么敏捷开发会在公司内部失败?很多时候就是由于忽略了敏捷开发成功实施的隐含假设。隐含假设还可能包括环境假设(例如:被测对象的工作环境问题)、时间假设(我性格内向,因此不适合做管理工作)、理论/工具使用的前提和边界等(探索性测试成功实施的前提和边界)。
界定问题是系统化分析与解决问题的第一步,也是非常关键的一个步骤。“能够正确澄清问题,已经将问题解决了一半!”