软件测试员的思考问题方式[3] 软件测试
从来也没有研究过这些问题的很多人也能测试得很好,但是如果要做得比很好还好,就要研究这些问题。研究认知心理学有助于理解影响测试员工作成绩的因素,以及影响人们解释自己工作方式的因素。
开始研究认知心理学,不能不看《旷野中的认知》(Cognition in the wild)(Hutchins 1995)。Hutchins研究海军航海团队,以及他们怎样协同工作。这本书的很多内容也都与软件项目和测试团队有关。
有关思考心理学的一本有用的书是《理论与证据:科学推理的能力的开发》
(Theory and Evidence:The Development of Scientific Reasoning)(Koslowski 1996)。在这本书中,Koslowski研究了人们如何使用因果关系理论进行系统推理。这可以解释为什么测试不只是查看外部行为,并对照简单的预期描述进行检查。
经验4,测试在测试员的头脑中
优秀测试和平庸测试之间的差别在于测试员如何思考:测试员的测试设计选择,解释所观察到的现象的能力,以及非常令人信服地分析描述这些现象的能力。测试的其他工作大部分是一般的办公室工作。如果看到两个测试员并排工作,不一定能看出谁的测试更好。他们工作中能够看得到的部分外表相同,这说明:
·很多人认为测试很容易,因为可以很容易地模仿优秀测试员的外表看得到的行为,并且他们没有好的测试的其他标准。
·如果要成为优秀测试员,就要学会像优秀测试员那样思考,而不是模仿他们的行为。
经验20,测试需要推断,并不只是做输出与预期结果的比较
流行的观点认为,测试员只是执行测试用例,并对照预期结果比较执行结果。这种观点把测试看作是简单的比较活动,没有看到一些聪明人必须设计测试,并确定预期输出。想想看,测试设计人员几乎从来没有得到过应该测试什么的权威指导,更不要说应该期望什么了。可以得到的指导是要解释的主体。在现实生活中,大多数测试设计都是基于推断,或基于与测试员的推断有关的经验。不仅如此,这些推断还要随时间发生变化。像测试员那样思考,就是要掌握探索式推断的艺术。
探索式推断听起来可能像是奇怪的想法,这意味着要以一种不能事先预测的方式,通过一种思想引出另一种思想,然后再引出下一种思想。有关探索式推断的一本很好的书是《证明与反驳:数学发现的逻辑》(Proofs and Refutations:The Logic of Mathematical Discovery)(Lakatos,1976)。关于这本书需要注意的是,Lakatos如何说明数学和科学推理过程是探索式的,而不是脚本化的。甚至数学家也是积极探索地推理,而不是通过运用枯燥的公式。他们像测试员那样思考!
经验5,优秀测试员会进行技术性、创造性、批判性和实用性地思考
各种类型的思考都要考虑测试的实施。但是我们认为需要提出四种主要思考:
·技术性思考。对技术建模并理解因果关系的能力。这包括诸如相关技术事实的知识和使用工具并预测系统行为的能力。