October 13, 2022 - 4 min
Critical thinking in Software Testing
When you find yourself questioning the idea behind the application you’re testing, acceptance criteria in user stories, design, and application – you are actually doing critical thinking.
There are different types of thinking, but critical thinking is one of the most important in testing because as a Quality Engineer, you can’t just accept everything you hear, read or see. You need to question if it matches business logic and end-user needs.
This blog post will introduce you to critical thinking, what it looks like in software testing and how to practice critical thinking so keep reading!
What is critical thinking at all?
Critical thinking is analyzing information to make a judgment. It requires a person’s mental effort to observe all available facts before making judgments. Besides that, critical thinking is reasoning – why is something just like it is.
Critical thinking helps:
- understand relationships between different things or ideas
- recognize the importance of arguments
- recognize priorities and arrange them well and wisely
- build arguments
- catch inconsistencies and errors
- approach and solve problems
- make a decision
As you may notice, all mentioned is something the Quality Engineer does every day. Maybe you weren’t aware of it, but critical thinking is a big part of the testing activities. Let’s see some examples of how critical thinking impacts testing.
How critical thinking impacts testing
Critical thinking improves the quality of the work in general, but let’s see its impact on software testing through the following examples:
1. Requirement analysis
Imagine that you’re testing an application that displays financial statistical data. There can be a user story with a requirement to ‘mark with a green color higher numbers’. This can be valid in the case where profit for the last month is displayed because the higher number means better result and green color is considered as something good.
On the other side, there can be a cost for the last month displayed. In this situation, a higher number is not something we aim for. Therefore, the high cost shouldn’t be displayed in green color, especially if it’s higher than the profit. It’ll be good to display it in red color as it has a negative effect.
If you accept this requirement, the end user could see his cost for the last month marked with green color although it’s greater than the profit. But if you recognize that as an issue, you can discuss with stakeholders how to manage this situation. That’s why analyzing and questioning requirements is important.
When looking into the design, there are probably going to be some inconsistencies. Let’s say that there are multiple confirmation dialogues across the application. It’s often a case that all dialogues will have only the X button for closing the dialogue, and then there is a dialogue with both X and the Close button for closing.
Design should be consistent, and all confirmation dialogues in this example should have the same behavior for closing the dialogue.
Whatever testing method you use, you are comparing something, analyzing, checking for improvements, searching for inconsistencies, and prioritizing. All mentioned are critical thinking activities.
Testing is the activity that probably takes the most of the Quality Engineer’s time so the better critical thinker the Quality Engineer is, the better will be her/his testing results.
4. Reporting bugs
Imagine reporting a bug that the user can access the billing page, but missing to add a precondition that the user doesn’t have an admin role that can access the billing page.
Suppose a developer who works on the reported bug isn’t familiar with user roles and permissions. In that case, he/she could restrict all users from accessing the billing page which could be a critical defect in production.
At the moment of writing the bug report, it’s a low possibility that there are written requirements that include all preconditions needed for a specific bug report, so we need to think about it, recognize all important information and write it down.
5. Writing test cases
This is a situation where critical thinking is crucial because test cases need to be specific, clear enough, and include all needed information. Test cases are written according to the existing requirements, but they cover general test cases and edge cases that are not written in the requirements.
All those test cases that are not covered by requirements are the result of critical thinking. And sometimes when you observe requirements you might catch a requirement that is not clear enough or misleading.
Maybe you haven’t considered critical thinking as a big thing, but you can see that it’s a big part of the Quality Engineer’s daily tasks. Besides that, critical thinking can be used consciously which will lead to better results.
How to practice critical thinking
The great thing is that Quality Engineers can practice critical thinking every day. Although this is something that comes naturally to Quality Engineers, critical thinking can be improved, and here are a few ideas on how to do it in daily Quality Engineer tasks:
- Whatever you do, question your assumptions – if you made any wrong assumption, you’ll probably recognize it by asking simple questions. Besides that, it helps you to understand why is something just like it is
- When analyzing requirements or acceptance criteria, don’t take them for granted. Check for any inconsistencies, missing or misleading information, make sure to understand all requirements, always ask questions, and don’t be shy to ask questions
- Think several moves ahead so you can make better decisions, provide more information, notice possible issues and give more accurate feedback. Also, you’ll probably get some new ideas.
- Put yourself in others’ shoes. This will help you understand other people, the way they think, and what are their needs
- Analyze your previous work. Look into the results you made and the desired results. Try to figure out if you could do anything differently to do a task more effectively
These simple steps can do a lot for the quality of testing, and also generate more unseen questions, scenarios, or new ideas.
Among different thinking types, critical thinking is one that is the most used in software testing. If the Quality Engineer starts working on his/hers critical thinking skills, the Quality Engineer can improve them so remember – the better the critical thinker Quality Engineer is, the better will be her/his testing results.
Give Kudos by sharing the post!