分类: IT职场
2010-04-14 09:49:53
不熟悉业务是黑盒测试的悲哀
李守亮 2008-7-4
业内一位朋友突然甩给我一个问题:在电梯里,电梯突然停止了,你觉得是哪些原因?
我一愣,如果不是脑筋急转弯的话,这便是一个典型的黑盒测试问题。如果仅仅为了考察测试思维的话,我不认为这是个好问题。但该问题确实耐人寻味,作为一篇文章的命题还是不错的。因为,从这个问题里,折射出了一个黑盒测试的悲哀。
作为电梯的一般用户,在完全不了解其运行原理的前提下,面对的只是几个按钮,要猜测是哪些原因导致电梯停止运行?确实有些尴尬。正常的第一反应可能是:电梯停下来,已经正常到达预定楼层,下一步门应该开了。但如果电梯已停止,门也打不开,怎么办?按开门按钮。按开门按钮也不开,下一步的反应就是出故障了。可是出什么故障了呢?对,这就是刚才的问题。
怎么回答呢?
作为非电梯专家的一般用户(好比最终用户或客户思维),只能去尝试和猜测。首先看看照明灯和按钮键灯以及紧急呼叫是否正常?如果这些设施也都出现故障,那很可能是停电了。如果没有停电,再能想到的就是机械故障,哪里可能被卡住了。
如果这个问题是在考察测试思维的话,强迫一个不了解电梯运行原理的人去想(好比不了解业务的测试工程师做黑盒测试),他第一反应就是原因实在太多了!却如何也讲不清楚。只能根据有限的已知常识进行大概分类,如:电力故障、机械故障、机电故障、程序紊乱,甚至连火灾地震这种极端情况也先搬出来应付。
如果乘坐过透明的观光梯,直观地了解了一些电梯的构造和运行原理后(好比对业务有较深入研究的测试工程师),就能能讲得更具体一些。例如可把机械故障细化为:联动装置故障、缆绳故障、传感器故障、电磁铁故障等等;电力故障可细化为:是电梯内还是电梯外故障?电梯内的话,是电梯的某处短路还是断路?是被误按了紧急制动的组合键还是按钮接触不良等等。如果观察的足够细致,还能联想到更多更多的故障原因。
如果是名电梯的设计工程师(好比开发人员,可能不恰当,仅供理解),熟悉电梯的运行和防护原理,他知道任何环节出现问题都会导致电梯停止运行。因此,他坐在办公室里,就能把电梯停止的可能性原因讲的头头是道,并且每种原因都能讲上一大篇理论。但由于受思维定势的影响,他若被关在故障电梯里来猜测具体是哪种原因的话,估计他并不如电梯维修工程师。
作为一名经验丰富的电梯维修工程师(好比具有丰富业务知识和测试经验的测试专家),除了懂得电梯的设计和运行原理外,还有许许多多的实战秘籍。面对电梯的突然停止,仅根据表面现象就能马上判断出是机械故障,还是其他故障?继而根据电梯所处的状态(如倾斜程度,抖动震动、声音等)进一步缩小范围,迅速锁定在某一环节。再根据业务经验,就能很快准确地定位出具体原因。
引申:一名优秀的电梯检修工程师改行去做汽车检修(好比测试更换业务方向),虽然有机械、线路、油路的检修经验(测试经验),但在新业务尚不熟悉的初期,照样会遭遇水土不服。
由此产生的感悟是:熟悉业务知识,是做好黑盒测试的必要的条件。如果对业务不熟悉,也不了解软件的需求、设计和运行原理,那便是黑盒测试(人员)的悲哀——不管是手动还是自动。