Critical thinking is the process of applying reasoned and disciplined thinking to a subject. So why should testers study critical thinking?
Well duh! You're a tester. Every day you have a piece of software that you must break. That you must critically analyze to determine where to invest your time. Where to invest your time where it will pay off in bug reports but also in areas that the customer will actually need to use. All to achieve the end goal of finding those bugs that will detract the customer from their end goal.
The best testers use critical thinking, they find more bugs, they find better bugs, and they use the software under test as a customer would.
Critical thinking facilitates a tester in:
- understanding the logical connections between software components;
- identifying assumptions in the design of the software under test;
- evaluating the correctness of the design of the software;
- evaluating the ease of use of the software;
- detecting inconsistencies in the software design;
- identifying mistakes or bugs in the software;
- recognizing which features are the highest priority and why;
- unearthing bias in one's own thinking and that of the developers of the software.
Acquiring critical thinking skills helps you to develop more reasoned arguments and draw out the inferences in others' arguments. With heightened critical thinking to support your advocacy, you will have more of your bugs fixed, you will gain the credibility that developers respect, thereby, developers will incorporate your testability suggestions and your enhancement ideas into the software.
Critical thinking enhances language and presentation skills. Thinking clearly and systematically can improve the way we express our ideas.
In learning how to analyze the logical structure of texts, critical thinking also improves comprehension abilities. Comprehension abilities are a necessity when reviewing system requirement specifications. Critical thinking will aid you in reviewing these documents, to ask clarifying questions, and to pinpoint inconsistencies in the design.
Critical thinking promotes creativity. To come up with a creative (and problem-solving) solution to a problem involves not just having new ideas. It must also be the case that the new ideas being generated are useful and relevant to the task at hand as well as effectively communicated to others. Critical thinking plays a crucial role in evaluating the merit of new ideas, selecting the best ones, identifying the holes in the argument, and modifying them if necessary. Where in testing does this place an essential role? In exploratory testing of course!
Exploratory testing is all about creativity, determining new routes through the software, determining new ways the software can fail, and determining how the customer may use the software. Critical thinking will aid you in your decision regarding which routes to take, it will focus your mind on the areas of software that may be bug-heavy, and because it feeds creativity, you may come up with one or two ideas that just "spring to mind". Why? Because you have an improved process of thinking which causes your mind to open itself up to a whole new set of possibilities.
Critical thinking involves:
- Analyzing tasks
- Identifying assumptions
- Analyzing and classifying
- Making comparisons
- Problem solving
- Questioning and challenging ideas
- Observing facts versus assumptions & inferences
- Judging the validity of the source and the worth of the evidence
- Forming and effectively communicating opinions & arguments
- Identifying arguments
- Evaluating the validity of an argument
- Drawing inferences
- Making generalizations
The study of critical thinking will empower your testing and will increase your effectiveness.