1、什么是批判性思维
批判性思维是以一种相信什么或做什么决定而进行的,合理的(反思的)方式进行思考,从而能够清晰准确地表达、逻辑严谨地推理、合理地论证,是一种训练有素的思维方式的体现。批判性思维是一种技能和思想态度,不受学科或专业的性质影响,任何论题都可从批判性思维的视角来审视。
最早的苏格拉底问答法,是被公认为批判性思维的先祖。苏格拉底问答法,是通过无止境的设问、追问或反问,让被提问者通过理性思考、发现谬误、拓宽思路、获得真相,或是提出反例,引入新的认知,找到新的解决方案,这就是批判性思维的体现。思维结构提问法更是把批判性思维体现得更加的系统化,它由八种元素构成:目的、观点、假设、结果、信息、推论、概念和问题。是一个不断循环的过程,体现如下:
任何人在对问题或是事情下结论之前,或多或少里面包含了假定和推理,而作为批判性思维的践行者,质疑其假定、推理的过程,进而质疑其结论,这样可以消除认知中的误区,突破知识构建时的边界,重新认识某个主体(系统/产品)。
2、批判性思维在软件测试中的应用
软件测试中,测试人员抱着质疑的态度来验证被测系统,以确保被测试系统在不断的质疑中符合期望。在传统的测试中,测试人员拿到的需求文档和设计文档,会包含一定的模糊性、片面的理解、不确定性和局限性,只有在需求评审、设计评审和代码评审中重新审视被测的系统,质疑那些不合理、模糊的内容,测试列表和测试用例的设计才能更完整,更加地深入,在测试执行的时候才能更全面的发现软件中的错误和漏洞;而在敏捷开发模式下,需求文档和设计文档更加不充分,需要测试人员直接面对着系统,直接对系统进行不断的质疑(不断的输入、操作),从质疑(不断的输入、操作)反馈回来的结果进行分析、判断,再质疑、分析、判断。这个是探索式测试的核心,而批判性思维在测试中的应用,正是体现在探索式测试中,因为这个核心体现了批判性思维的“假设、推论、分析、问题”,或者说,测试人员需要具备良好的“推论、分析、认知”能力,来分析和评估产品的质量。
当测试人员拿到一个功能点,对应批判性思维的思维结构提问法,做如下自我提问过程:
从上面的整个提问过程可以看出,没有审视和分析就不能做出正确的判断,批判性思维促进我们重新审视问题,善于提出问题,分析问题,勇于质疑证据,寻找解答方法,形成自己的意见、做出决定、形成结论。批判性思维的论证过程,同样适应于测试人员的思考过程,测试过程不仅具有良好的系统性思维、分析性思维,而且更具对系统或是需求的求知欲,敢于怀疑自己,更加开放、自信,不断追求真理,使自己对系统或是需求的认知不断深入下去,修正自己的认识,更加了解系统的架构,使测试的开展更加顺畅,我认为,测试人员本身的成就感会更强。
作者:陆空