软件测试人员的思维

我经常会和一些测试人员做结对测试设计,他们之中有很多并没有系统的学习我的那套MFQ&PPDCS方法

结对的过程,其实就是我不断问他们问题的过程。通过问问题,我了解了粗略的需求,了解了被测对象的特征,以便决定用哪一种模型。

然后,我们一起画model。画model的过程就是测试分析的过程,很多需求的细节层层展现出来,这些细节有些是他们在前面介绍需求时忘记提及的、有些是他们此前从未考虑到的,而我只是通过不停的问问题,让思维发散,提醒他们想到这些细节。

我们都知道,领域知识是做好测试的前提,没有领域知识只有测试知识是做不好测试的;其实反之亦然,只有领域知识,缺乏测试知识,也做不好测试(我的意思是,你仍然可以做测试)。结对的人员,“独自去做测试设计”,和“与我结对做测试设计”,造成结果差异的根本原因是什么呢?

是我懂因果图、状态图这些测试设计技术而他们不懂吗?也许有的时候确实有一点这方面的因素,但我想更重要的不在于此。一个例证,我此前培训过多期MFQ&PPDCS方法,所有参与培训的人他们现在的测试设计提高了吗?这些方法他们使用得很好了吗?我看到的是成功者不在多数。那么原因是什么呢?

通过结对过程我发现,除了测试技术,更重要的导致结果差异的一个原因在于– 思维 — 人的思考方式,人的大脑,英文叫mind。比如有一次结对,同样是应用状态图,我会做的是:

- 测试目标应该锁定在哪里、各个部分之间有什么关联 (系统性的思考systematic thinking、识别真正的问题的能力);

- 除了结对人员描述的,还可能有哪些情况、分支、输入输出等(发散性思维defocused thinking、逆向思维reverse thinking);

- 对结对人员所描述的场景,我会不停的问为什么,问原因,问为什么是这样原因导致的,问为什么不是别的原因,问导致这个现象还有什么原因等等(挑剔的思考critical thinking);

- 我们画model的过程并不是一气呵成,而是先画一点,然后再讨论,再画一些,甚至重新画,甚至重新选择model,再讨论(轮换的思考和实践alternative thinking)

一个好消息是,这些测试人员都应具备的思维能力或者叫软技能,都是可以通过训练提升的。参加过本届ChinaTest测试游戏坊的人应该有更多体会。面对同样一个挑战或难题,为什么有的人可以迅速找到答案,有的人却感觉无从下手?测试的过程就是解决问题的过程、就是发现未知的过程、就是学习的过程,你的测试思维很大程度上决定了你的测试结果。

具备a testing mind是优秀测试人员的必备素质,对我们产品测试的成功意义重大。这使我想到了很多产品的一个策略:请很多外包人员做测试执行的工作,请有经验的员工做测试设计的工作。前些日子,收到不少这些专职测试设计人员的求助,他们问我在这种情况下如何提升测试用例的有效性。其实在这种情况下,如果缺陷发现不理想,不完全是测试设计不充分,有很大一部分是测试执行不力导致的。想一想吧,你制定了很好的测试策略、你设计了很多优秀的测试用例(但不是详细的测试用例),最后,你期待让一些经验不是那么丰富的外包人员依据你的用例去做测试执行?他们是否具备这些testing mind?如果不具备,又如何期望他们挖掘更多有价值的bug呢?

希望每个测试人员都能认识到测试思维的重要意义,并有意识的去训练自己;希望每个测试管理者也能认识到这点,更有的放矢的开展测试人员能力提升的工作。

我在“认识你的测试思维”一门课中,最后有一页胶片,拿出来共勉:

● 记住:你的思维的质量决定了你的测试的质量

● 开始把改进你的测试思维作为高优先级的事情来对待

● 要改进你的测试思维,先要认识你的测试思维

● 了解更多优秀测试人员的思维方式

● 可视化你的测试过程

● 通过测试过程回顾你的测试思维

● 分析你的测试深度和测试广度

● 通过对比识别你的测试思维中的优点和待改进点

● 记住你的改进点,在测试实践中,不断有意识地改进你的测试思维

你可能感兴趣的:(软件测试人员的思维)