• Integrations
  • US Data Center
  • EU Data Center

Critical Thinking in Software Testing: A Key Skill in the IT Industry

In this blog.

Software Testing is a career path that offers plenty of opportunities for anyone interested in it. In recent years, software testing has become an increasingly popular and sought-after profession. Many organizations looking to hire qualified testers to ensure their products are up to the highest standards.

Software testers have to use their technical knowledge and skillset to improve the quality of software applications:

  • finding bugs and identifying issues before they reach users
  • offering valuable feedback on design decisions
  • software testers are a crucial role in the development process

Critical Thinking in Software Testing: A Key Skill in the IT Industry

Critical thinking in IT

Sometimes, studying software testing can be quite challenging. If you're an IT student struggling with essay writing, don't worry - there is help available. You can get professional essay help from experienced writers. Besides, you can find good critical reflection essay examples and follow them to complete your homework faster. Additionally, this will give you a better understanding of how to create your own unique essay that meets all the requirements.

Critical thinking isn't just about making snap decisions. It's about carefully considering all the available information, looking at different angles, and examining the consequences of different courses of action. With practice, it can help us become more aware and make better choices in life.

Critical thinking is one of the most important skills for IT professionals to possess. With the constantly evolving technology landscape, the ability to think critically and solve complex problems quickly is essential in order to stay ahead of the curve.

This is especially true when dealing with security issues. Having a comprehensive understanding of your systems and being able to identify potential weak points can save you time and money in the long run. Additionally, critical thinking allows you to make informed decisions about which technologies are best suited for a given situation or environment.

By applying logical analysis and reasoning, rather than relying on intuition alone, IT professionals can confidently select solutions that will be successful in their organization’s unique context. In other words, critical thinking helps ensure that IT professionals are making the best choices for their company’s success.

Ultimately, critical thinking is essential in order to remain competitive and successful in the IT field. It is a skill that sets top-tier professionals apart from the rest and provides them with an invaluable edge in our rapidly changing world.

How software testers use critical thinking

  • Analyzing Requirements. Software testers are required to analyze and understand the functional requirements that drive the development of the system. This involves asking questions about what features and functions should be included, as well as understanding any limitations or constraints imposed on the system. This helps them evaluate if a feature is necessary and makes sure that all relevant considerations are taken into account when producing a solution.
  • Debugging. Debugging is an essential part of software testing. It involves finding, isolating, and resolving bugs within the code in order to make sure it works properly. Testers must think critically while debugging in order to identify the root cause of the problem and determine a solution.
  • Testing Strategies. Software testers use their critical thinking skills to develop effective testing strategies. This involves selecting appropriate tests that are necessary for verifying functionality, determining the order in which tests should be performed, and evaluating test results. By developing an effective plan of action, software testers can ensure that all testing goals are achieved within a reasonable amount of time.
  • Risk Analysis . Risk analysis is often used as part of software testing to evaluate potential risks associated with implementing new features or changes to existing ones. Testers must think critically about possible outcomes and assess the impact these changes might have before making any decisions about implementation. This helps them ensure that any risks are minimized and that the system will work as intended.
  • Problem-Solving. Software testers are also responsible for solving any problems they encounter while testing. This involves using critical thinking to identify possible solutions, evaluate the pros and cons of each one, and determine a course of action that will ensure successful implementation.

Final thoughts

By using their skills in critical thinking, software testers can help ensure the quality of software systems and protect users from any potential issues or hazards. They play an important role in ensuring that products are functioning properly before they are released to the market.

PBS Logo

Olivia Tayllors has been testing software for over five years. She is passionate about ensuring a quality product. She puts her technical skills to the test to make sure that products are running optimally.

Related resources

Navigating through modern software testing complexities, solving the integration testing puzzle with bas dijkstra, taming the chaos: how to manage testing in complex & robust environments, the 2024 state of testing™ report is now live, share this article.

  • Software testing tools and techniques

The importance of critical thinking in software test

Even though there are numerous definitions for the term "software testing," there is common ground. testers need to use critical thinking skills when diving into the testing of a software application. in this tip, expert chris mcmahon explains ways for testers to increase test coverage, use proven approaches and determine which aspects of testing fit in and where..

  • Chris McMahon

The first definition of the word 'test' in the American Heritage Dictionary is "a procedure for critical evaluation." But The Free On-line Dictionary of Computing has a much more restrictive definition of 'software testing': "The process of exercising a product to identify differences between expected and actual behavior."

The second definition is a fairly accurate description of automated testing, but it is only partially true of the actual work of software testers . The first definition, though, suggests interesting possibilities for software testers. The use of critical thinking is crucial for effective testing.

Procedure is only part of testing. A test procedure is the set of steps by which a test is accomplished. One common approach to defining a test procedure is first to define a test objective; then to define an expected result by which to measure the objective, and then to define a procedure by which to demonstrate that the expected result confirms the test objective.

This is the typical factory school approach to testing; an approach that lends itself to repeatable scripted testing. While such procedures are common in the industry, there are far more productive approaches to testing available.

As examples of more productive approaches to test procedures, consider exploratory testing (ET) and what has come to be known as "agile testing." ET is the practice of designing the next test based upon information gathered from the last test, guided by effective heuristics designed to maximize the amount of valuable information produced by the testing activity. Agile testing also values ET, but includes elements of test automation, most particularly Acceptance Test Driven Development, where the desires of the customer are implemented as automated tests before the features are developed. When the acceptance tests pass, the customer knows that the features are done.

Evaluation of software. A test is "a procedure for critical evaluation." A software tester evaluates software. But in order to evaluate software, the tester has to have some criteria by which to evaluate the software being tested. Criteria for evaluating software come from any number of sources.

One typical source of criteria for evaluating software is the set of functional requirements for that software. A naive view of software testing asserts that the only activity of software testing is to evaluate whether or not the software answers its functional requirements. But even under these circumstances, software testing activities becomes quite sophisticated, because requirements are often vague and nebulous descriptions that map poorly to computer systems, and an important part of software testing is discovering whether the system meets the undocumented expectations of the authors of the requirements (or of those whom the authors represent, the users).

Another set of criteria for evaluating software are non-functional requirements, or "ilities": accessibility, scalability, usability, portability, and so on. Security and performance often come under this heading. Non-functional requirements tend to be expected by users and customers but are rarely specified well.

Testing from a critical stance. Procedures in the service of evaluation define how to do software testing, but do not explain why to do software testing. A test is "a procedure for critical evaluation."The literature of software testing is full of descriptions of how to do software testing using procedures for evaluation, but it is nearly silent on why to do software testing. To understand why to do software testing, a software tester needs a philosophical basis for the work. Such a basis, I call a "critical stance." A critical stance is a set of internally consistent principles by which to evaluate software projects. A critical stance demands critical tools to use in the act of evaluating software projects.

One of the most important critical stances for modern software testers is to be able to evaluate software projects according to the extent to which they are agile. In other words, a software tester may take an agile critical stance in the course of evaluating a software project. The most important critical tool for an agile software tester is the Agile Manifesto. A software tester may use the Agile Manifesto as a critical tool to evaluate the extent to which a particular software project is or is not agile.

The Agile Manifesto defines four values and twelve principles. Each of the four values and twelve principles lends itself to questions from which the software tester may construct procedures to evaluate the agility of the software project. For example, the first value of the Agile Manifesto is to value "individuals and interactions over processes and tools." Thus the agile software tester may ask the question "is this project investing too much in processes and tools, and not enough in individuals and interactions?" The first principle of the Agile Manifesto is "to satisfy the customer through early and continuous delivery of valuable software." Thus the agile software tester may ask "can this project deliver software earlier or more consistently? Can the software be made more valuable to the customer?"

Within agile software projects there may be other critical tools available. For example, the team may be using eXtreme Programming (XP), in which case the agile software tester might evaluate how much pair programming (or code review) occurs, how much test-driven development (or test coverage) occurs, and how much of the project is managed under continuous integration.

Critical stance, value and quality. When evaluating software, it is difficult to say how a particular feature or defect affects the quality of the software without a critical stance in place. To revisit the agile example, the Manifesto instructs the software development team to interact with the customer to determine the value of particular aspects of the software, whether positive (features) or negative (defects). A defect that does not affect the customer's perception of the value of the software might not be fixed on an agile project. In the absence of an agile critical stance, a tester might advocate wasting the team's time fixing defects that do not affect the customer.

But a different critical stance may dictate a different set of evaluations. For example, on a project devoted to collaboration software, a tester may adopt a critical stance based on the set of principles that guide wiki software, known as "Wiki Way." Wiki Way would then supply a critical stance by which to formulate tests to evaluate the degree to which the software, and the software project, is in fact collaborative.

Critical stances are the future. The evolution of procedure and evaluation in software testing is well known and well documented. However, much software testing effort is wasted in the absence of a critical structure against which to measure the results of software testing. Critical stances like the Agile Manifesto and Wiki Way supply the missing critical structures, the frameworks that will carry software testing into the twenty-first century.  

Dig Deeper on Software testing tools and techniques

critical thinking for software testers

Where requirements-based tests fit in software testing

MatthewGrasberger

whole-team approach (team-based approach)

KatieTerrell Hanna

How ALM differs from SDLC

StephenBigelow

Top 10 software development and test tips of 2020

MeredithCourtemanche

HPE debuts its virtualization capability for HPE Private Cloud later this year as an integrated GreenLake alternative to ...

HPE GreenLake debuts a new PaaS offering for enterprise GenAI development, co-created with Nvidia. HPE also updated OpsRamp and ...

AWS, Google, IBM and Microsoft offer machine learning certifications that can further your career. Learn what to expect from each...

Managing microservices without API gateways might be uncommon, but not unheard of. Consider the benefits, downsides and available...

The switch from microservices to monolith could save costs and improve performance. Explore key considerations and questions to ...

The RESTful API Modeling Language, or RAML, can be a powerful tool for developers looking to create an efficient, standardized ...

In this Q&A, Varma Kunaparaju, HPE OpsRamp lead, talks about soon-to-come platform updates, which include GenAI capabilities and ...

SUSE Rancher bolsters its bid to capture users dissatisfied with Broadcom's changes to VMware with the acquisition of StackState ...

Weeks after a jury awarded Splunk $1 in its lawsuit against Cribl, the two vendors remain on a collision course, this time in the...

A work promotion can feel uncomfortable due to expectations and uncertainty, but that's also a sign of career and personal growth...

Dive deeper into Java pattern matching techniques with these examples that range from nested records to type inference, variables...

Ready to use distributed ledger technologies for smart contracts or other transactions? Know what risks to avoid and overcome to ...

Many organizations struggle to manage their vast collection of AWS accounts, but Control Tower can help. The service automates ...

There are several important variables within the Amazon EKS pricing model. Dig into the numbers to ensure you deploy the service ...

AWS users face a choice when deploying Kubernetes: run it themselves on EC2 or let Amazon do the heavy lifting with EKS. See ...

Whatever the Q, We got the A

  • Dedicated Teams
  • Product Development

October 13, 2022 - 4 min

Critical thinking in Software Testing

critical thinking for software testers

Jelena Scevic

QA Engineer

critical thinking for software testers

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 i nconsistencies , 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!

ABOUT AUTHOR

Jelena is a QA Engineer that raises software quality with her skills and various testing techniques, but her favorite skill is critical thinking. When she’s not testing, she’s probably reading crime books or hanging with her family and friends.

critical thinking

software testing

GitHub Copilot blog hero image

Leni Duderija

May 28, 2024 - 4 min

GitHub Copilot: Unlocking Smart Coding with Your AI Development Assistant

AI adoption blog post - hero image

Zlatko Matokanovic

May 3, 2024 - 4 min

Early AI Technology Adoption: Launch of Q's AI R&D Vertical

Privacy overview.

CookieDurationDescription
cookielawinfo-checkbox-analytics11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics".
cookielawinfo-checkbox-functional11 monthsThe cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional".
cookielawinfo-checkbox-necessary11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary".
cookielawinfo-checkbox-others11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other.
cookielawinfo-checkbox-performance11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance".
viewed_cookie_policy11 monthsThe cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data.

SkillsYouNeed

  • Career Management Skills
  • Top 5 Soft & Hard Skills Every Software Tester Must Have

Search SkillsYouNeed:

Personal Skills:

  • A - Z List of Personal Skills
  • Personal Development
  • Career Options for School Leavers
  • Careers for Graduates
  • Developing Your Super-Strengths
  • Discovering Your Career Values
  • Creating and Exploring Career Possibilities
  • Improving Your Career Confidence
  • Building A Personal Brand
  • Job Crafting and Job Enrichment
  • Choosing and Changing Jobs
  • Negotiating Within Your Job
  • Networking Skills
  • Top Tips for Effective Networking
  • Personal SWOT Analysis
  • Continuing Professional Development
  • Setting Up a ‘Side Hustle’
  • Career Sectors
  • Careers in Business
  • Careers in Administration and Management
  • Careers in Retail
  • Careers in Hospitality and Personal Care
  • Careers in Information Technology and Computing
  • Careers in Construction
  • Careers in Manufacturing
  • Careers in Engineering
  • Creative Careers: Arts, Crafts and Design
  • Creative Careers: Media and Advertising
  • Careers in Healthcare
  • Careers in Social Work and Youth Work
  • Careers in Life Sciences
  • Careers in the Third Sector
  • Careers Involving Animals, Farming and the Natural World
  • Careers in Education
  • Careers in Physical Sciences
  • Careers in Financial Services, Insurance and Banking
  • Careers in Law and Law Enforcement
  • Careers in the Armed Forces, Security and Emergency Services
  • Careers in Politics and Government
  • Careers in Sports

Check out our eBook:

The Skills You Need Guide to Personal Development

The Skills You Need Guide to Personal Development

  • Creative Thinking Skills
  • Personal Skills for the Mind
  • Emotional Intelligence
  • Stress and Stress Management
  • Anger and Aggression
  • Assertiveness
  • Living Well, Living Ethically
  • Understanding Sustainability
  • Caring for Your Body

Subscribe to our FREE newsletter and start improving your life in just 5 minutes a day.

You'll get our 5 free 'One Minute Life Skills' and our weekly newsletter.

We'll never share your email address and you can unsubscribe at any time.

Top 5 Soft & Hard Skills Every Software Tester Must Have

The responsibility of a software tester in the dynamic, constantly changing world of software testing goes beyond simply discovering bugs and faults. Modern software testers are strategic quality assurance experts who employ a broad range of skills to make sure that software meets strict functionality, dependability, and user experience requirements.  Software testers are important to the development of software as they find unknown bugs and verify complex features, among other things.

A mix of soft and hard skills is thus paramount to business success for software testers in an increasingly competitive industry.

Here are the top five hard and soft skills required by any software tester.

Soft Skills

1. critical thinking and problem-solving.

Software testers are digital detectives, relentlessly searching for various defects and solving complicated intricacies Testers with excellent critical thinking and problem-solving abilities are able to evaluate software testing functions, foresee future errors, and design new testing methodologies. The unique ability to tackle different issues through multiple perspectives is crucial in finding core triggers and, thereby, coming up with productive and efficient solutions. By joining the best software testing conferences , all these important skills can be gained and updated according to the ongoing trends and technologies.

2. Communication Skills

The very foundation of successful software testing is efficient communication . It is a must that testers communicate their results, observations, and suggestions to developers, project managers, and other stakeholders in a rather manner that is simple and straightforward. The capacity to communicate difficult technical knowledge in a way that's comprehensible promotes teamwork and ensures that concerns are handled as soon as possible. In addition, solid communication essentially motivates testers to understand user needs, further easing the creation of suitable test cases.

3. Detail-Orientedness

The cause of faults generally lies in the details, and thus, software testers must be meticulous in their attempt at achieving excellence. It is highly crucial to meticulously verify software components, data flows, and interactions between users to further detect small flaws that may often go unnoticed. Strong attention to detail guarantees that every nook and cranny of the program is fully assessed, thereby resulting in a resilient and polished end product.

4. Coordination and Teamwork

Software development is a collaborative process, and testers are essential members of cross-functional teams. Collaboration with designers, programmers, product executives, and quality assurance colleagues promotes a unified approach to quality. Accepting cooperation helps that testing efforts are linked with the larger project goals, and information exchange leads to a comprehensive grasp of the software's complexities. This seamless collaboration also promotes effective bug tracking and resolution, resulting in a more streamlined development cycle.

5. Adaptability and Learning Agility

The software world is always changing, with new tools, technologies, and approaches emerging all the time. Testers must accept change and be prepared to constantly acquire knowledge and adapt to the change. Being open to learning new software testing lifecycle frameworks, tools, and scripting languages allows testers to stay ahead of the game and analyze cutting-edge software products much more successfully. This capacity to quickly adopt new approaches improves a tester's problem-solving skills , allowing them to effectively address unique difficulties.

Hard Skills

1. testing methodologies and techniques.

Software testers must have a firm foundation in multiple testing methodologies, such as manual testing, automated testing, and exploratory testing when it comes to hard skills. Determining when and how to employ different testing approaches helps testers to design extensive and effective test scenarios that cover the full functionality of the product. Furthermore, a thorough grasp of these approaches enables testers to customize their tactics to the individual project needs, hence maximizing the testing process.

2. Domain Knowledge

Software testers are often employed in certain industries, such as healthcare, finance, or e-commerce. As a tester develops domain knowledge, their ability to understand user requirements, forecast future situations, and validate software functionality against real-world use cases increases. Domain expertise enables testers to provide valuable insights while also verifying that the software complies with industry-specific standards and laws. This expertise not only enhances testing accuracy but also supports good communication with domain specialists, allowing for the translation of complex domain-specific concepts into efficient testing processes.

3. Test Automation Software

Test automation is certainly an important component of modern software testing since it increases efficiency and repeatability. Selenium, Appium, and JUnit test automation tools allow testers to automate time-consuming tasks, run tests across several platforms, and provide rich results. Furthermore, the ability to create and manage automated test scripts is essential.

4. Technical Ability

Software testers must have a solid technical background and can be upskilled by joining relevant software testing conferences. Understanding the software architecture, its parts, various data structures, and APIs promotes better test design and execution. Furthermore, technically aware testers may notice distinctive nuances, find performance bottlenecks, and contribute to improving program behavior.

5. Languages for Programming and Scripting

Furthermore, although software testers do not need to be expert programmers, knowledge of programming and scripting languages such as Python, Java, or JavaScript is advantageous. This solid knowledge may assist testers in writing and changing test scripts, doing data-driven testing, and so integrating with various testing frameworks and technologies.

It goes without saying that a successful software tester is a balanced combination of soft and hard skills in the world of software testing. While hard skills help testers to comprehend the complexities of software systems, soft skills allow them to communicate successfully, cooperate smoothly, and address issues with grace. Testers may confidently defend the reliability and accuracy of software products by fostering a balanced skill set that encompasses both the art and science of software testing, thereby leading to the success of the software testing lifecycle and the contentment of end-users.

About the Author

Vibhu Dhariwal is Co-Founder & Director of Marketing at Digital Gratified Pvt. Ltd., a SaaS Digital Marketing Company. He likes sharing his experience through outreach marketing, link building, content marketing, and SEO with readers. To know more about him, you can connect with him on LinkedIn.

Continue to: Creative Thinking Techniques Careers in Information Technology (IT) and Computing

See also: 5 Soft Skills Every Software Engineer Needs What Is Design Thinking and How Can You Use It to Benefit Your Projects The Skills Required for Proper API Management

Become A Better Tester By Becoming A Better Critical Thinker

Naveen Bhati shares on the Testing Planet how honing our critical thinking skills helps us become better testers

  • Mar 11, 2021

By Naveen Bhati

When it comes to thinking there are broadly two types:

System 1 Thinking - This type of thinking happens automatically and quickly which requires little or no effort. For example, answer to 2 + 2 = ?

System 2 Thinking - This type of thinking is lazy. It requires deliberate attention and effort. For example, comparing two closely similar testing tools for their overall value.

(System 1 and System 2 thinking ideas comes from the book Thinking Fast and Slow by Daniel Kahneman )

If you want to be a better tester then you will need to practice and get better at critical thinking which is a form of System 2 Thinking. This article will focus on why critical thinking is important and how you can use critical thinking to help make better decisions, solve problems more effectively, and how to clearly understand and interpret the requirement to deliver a quality product or service.

I will list some of the benefits of critical thinking both in the context of testing and in general to emphasize why critical thinking is THE skill that a tester must develop to be successful in today's diverse, virtual, border-less, demanding and competitive world.

I will share the 5 Steps to New Thinking process that I've utilized on many occasions to think critically and hope that it will provide a systematic approach to consciously apply and get used to critical thinking.

Key Takeaways

What is critical thinking and how it can help you as a tester?

As a tester when you should look to employ critical thinking.

5 Steps to New Thinking process to help improve and employ critical thinking.

How testers can benefit from thinking critically?

If you remember nothing else from this article, remember this:

"A good tester is the one who thinks, challenges, explores, investigates and questions rather than just accepts(at its face value), checks, validates and verifies."

Thinking about thinking

There are many different types of thinking that one must be aware of, especially as a tester, however thinking critically is the most crucial one, in my experience, when it comes to testing.

In today's fast-paced, quick feedback oriented and highly competitive market many forget to take a moment to think, explore, investigate, challenge and question rather than solely focus on getting something delivered.

Most of us (testers) are so busy with delivering something or meeting deadlines or seeking approvals or documenting our test results etc. that we completely forget about taking some time to reflect and THINK, about things such as:

Unnecessary processes

Pre-existing assumptions

Established practices and approaches

Using or chasing after unnecessary metrics

Why am I doing a certain type of testing at all?

Unneeded meetings or discussions or testing activities

Doing something that is dictated to you without any cross-examination

Writing automation scripts without considering return on investment (ROI) - such as investing resources in automating something that is short lived.

Can the number of high-level tests be reduced without compromising quality (think shift-left)? - such as aiming to reduce the number of UI (end-to-end) tests as they are by nature flaky and long running.

Time invested in fixing failed tests - without reflecting on their purpose or suitability or relevance

Improving existing practices - such as if tests are taking a too long time to run, how can run time be reduced

Testers especially those who find it challenging to approach an issue or a problem or a testing activity should take a step back and spend some time thinking about thinking.

What is Critical Thinking?

Have you compared anything recently? if yes, then you have used critical thinking. 👏 👏

As Connie Missimer defines:

"Critical thinking is a consideration of alternative arguments, hypotheses, theories or objects in light of their evidence."

One might think that critical thinking is painful and it requires me to work and think really hard or require some special powers to accomplish critical thinking but it's really not. Critical thinking is not hard or perfect, or not necessarily criticizing anything, rather it is a simple comparison of alternatives. For example:

Is cypress.io better than selenium?

Do I like product A more than product B?

Is idea A better than idea B?

Will a test case/activity/approach provide any value or not?

The fact that one needs some special powers or needs to be naturally gifted to think critically is a myth, everyone is already thinking and can think critically by:

Questioning assumptions

Question obviousness

Reasoning (ask why?)

Identify assumptions and play with it

Look for alternatives and supporting evidence

All of us are using critical thinking daily. It is just that doing it consciously and regularly can lead to great results and that is something that comes or becomes second nature when you practice it daily. (If you want to learn how to form habits - I'd highly recommend the book Atomic Habits by James Clear )

Why is Critical Thinking useful in testing?

Using critical thinking in testing is really important as it can lead you in some really interesting directions and at the same time, it can stop you from going into the wrong, inefficient, long, unfruitful directions. In testing, critical thinking helps to avoid:

misconceptions

thinking narrowly

asking vague questions

jumping to a conclusion

missing key ideas

making poor decisions

unclear or confusing information

accepting inaccurate information

presenting or reporting inaccurate data

unjustified assumptions

poor communication

unimportant insights

taking anything for granted

focusing on irrelevant ideas/tasks

shallow knowledge or understanding of product/service

Employing Critical thinking

Critical thinking is a highly worthwhile activity as it's responsible for everything that we have around us today. It is necessary for the world we see and have around us. Many greatest thinkers of all time, the likes of Newton, Darwin, Galileo or Albert Einstein, used reasoning to support their critical thinking to come up with alternative theories and hypotheses.

As a tester, when you don't think critically, your knowledge of the product may not grow as quickly or correctly as you'd want; to ensure your understanding and eventually to deliver the quality product.

Last year I was asked to assist with testing of an almost finished project with a strict deadline, for which UAT has started, resulting in a huge number of bugs and issues surfacing. These findings were threatening the project deadline and forced the team to re-evaluate the whole codebase to fix the bugs.

As an outsider, I immediately identified that team were missing a whole lot of testing activities especially the low level (highly important) testing such as unit, component and integration testing, so I worked with the team to place their focus on implementing these testing activities which were I believed as necessary, only to find out that these were not really providing the value, quality and confidence that the business wanted to see at that(mature) stage of the project to deliver it successfully and in time.

It was then I stopped, took a step back to think and reason the best approach to test the project and I realized that only the end to end testing could provide the confidence in the project as a whole as compared to my previous approach which was providing confidence in the parts or components of the project.

Here is the process I used to employ critical thinking in the above example to bring the focus of testing activities back on track.

5 Steps to New Thinking 

Below are the 5 steps and associated questions that when asked will help you to think critically and/or will help you get better at critical thinking.

Stop and Think

What is the situation?

What are you trying to accomplish?

When does a decision need to be made?

Is this situation a high priority/high risk or can it wait?

Recognize Assumptions

What are the unstated assumptions associated with the goal, problem, or information that you know?

What do you know? What don’t you know?

Evaluate Information

Is your information accurate?

Is your information relevant?

Is your information from credible sources?

What are the alternatives to explore?

Draw Conclusion

Which alternative best matches the success criteria?

Is anything missing? Are there other alternatives that I might have missed?

Clarify your criteria for evaluation and identify if any of the alternatives can be eliminated.

Develop a Plan of Action

What types of resources are needed to implement this decision?

What plans need to be made to implement this decision?

What are the consequences of this decision?

Note: To learn more about the above process please refer to chapter 4 of the book Now You're Thinking!

A tester's benefits from thinking critically

Helps the tester question the requirements instead of only confirming the requirements

Enable weighing in pros and cons to decide which test automation tool to use

Enable weighing in reasons to decide whether or not automating something will deliver value on investment

Help promote shift left (require critical thinking) culture

When used as part of exploratory testing it helps derive knowledge about the product, its functionalities

Helps focus and decide on testing activities that deliver the most value

Wrapping Up

Critical thinking is possibly the most important type of thinking that a tester must practice to become a better tester. As many of us are the victims of pre-existing ideas, processes, assumptions that we forget to think and question these existing norms, so at this point, I'd like you to question This is how we do it here! - by asking what if I tried this alternative?

It's about thinking and asking what if, what if, what if?

Critical thinking is your Kryptonite to challenge the pre-existing, outdated or irrelevant norms that hinder your ability to be the best you can.

And once again if you remember nothing else from this article, remember this:

Naveen is currently working at Facebook as a QA Engineering Lead. As a leader, he helps to build a quality culture based upon autonomy, collaboration and trust so that teams are equipped with the skills necessary to build truly awesome quality products. He’s a strong advocate of shift-left, continuous testing, and context-driven approach to testing.

In his career, He’s been a developer, lead engineer, architect, freelancer and a mentor. He has experience in working on large scale projects, monolithic & microservices architecture, cloud solutions, designing test automation frameworks, test strategies, and building and leading teams.

References & Useful Resources

A Short Guide to Building Your Team’s Critical Thinking Skills

Thinking, Fast and Slow: Amazon.co.uk: Daniel Kahneman

Atomic Habits: Tiny Changes, Remarkable Results by James Clear

The Critical Thinking Skills Cheatsheet [Infographic]

Now You're Thinking!: Change Your Thinking...Transform Your Life

Learning Path: Critical Thinking at Work—Simple Ideas on a Crucial Topic | Learning Paths

Software Testing and Different Thinking Types

critical thinking for software testers

IMAGES

  1. Critical Thinking for Software Testers

    critical thinking for software testers

  2. Critical Thinking for Software Testers

    critical thinking for software testers

  3. Critical Thinking for Software Testers

    critical thinking for software testers

  4. Top Traits of Highly Effective Software Testers

    critical thinking for software testers

  5. Critical Thinking for Software Testers

    critical thinking for software testers

  6. Critical Thinking for Software Testers

    critical thinking for software testers

VIDEO

  1. AI ❌ Software Testers ✅ Will AI Replace Software Testers 🤔 A Must-Listen! #shorts

  2. Cognitive Biases In Testing

  3. ||non reasoning for all classes|| reasoning classes|| #shorts #yt shorts #reasoning #reasoningskills

  4. ANAKSys

  5. Critical Thinking for Software Engineers & Data Analysts

  6. Just When You Thought You Could Leave Early... QA Strikes! #tester #jirasoftware #bugfix

COMMENTS

  1. Critical Thinking is a Highly Valuable Skill for a Software ...

    Critical thinking helps testers to clearly articulate their findings, reasoning, and recommendations, and to tailor their communication to the needs of different audiences.

  2. Critical Thinking in Software Testing | PractiTest

    Software testers use their critical thinking skills to develop effective testing strategies. This involves selecting appropriate tests that are necessary for verifying functionality, determining the order in which tests should be performed, and evaluating test results.

  3. The importance of critical thinking in software test | TechTarget

    Testers need to use critical thinking skills when diving into the testing of a software application. In this tip, expert Chris McMahon explains ways for testers to increase test coverage, use proven approaches and determine which aspects of testing fit in and where.

  4. How to Hone Your Critical Thinking Skills as a Software Tester

    Learn how to apply critical thinking skills to test software quality, functionality, and usability. Discover tips on defining the problem, gathering information, evaluating alternatives,...

  5. Critical thinking in Software Testing - Q agency

    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.

  6. Critical Thinking for Testers

    Critical Thinking for Testers ‐Compact Edition.pdf ‐24 My Definition of Critical Thinking •Michael Bolton Testing is enactment of critical thinking about software to help people make better decisions. We aspire to be professionally uncertain when everyone else is sure.

  7. Cultivating critical thinking for software development and ...

    Critical thinking in software development and testing is essential for creating robust, efficient, and user-focused software.

  8. How to Improve Critical Thinking Skills for Software Testing

    Critical thinking skills are essential for Software Testing professionals, as they enable them to analyze, evaluate, and solve complex problems in the software development process....

  9. 5 Soft & Hard Skills for Software Testers | SkillsYouNeed

    A mix of soft and hard skills is thus paramount to business success for software testers in an increasingly competitive industry. Here are the top five hard and soft skills required by any software tester. Soft Skills 1. Critical Thinking and Problem-Solving

  10. Become A Better Tester By Becoming A Better Critical Thinker

    This article will focus on why critical thinking is important and how you can use critical thinking to help make better decisions, solve problems more effectively, and how to clearly understand and interpret the requirement to deliver a quality product or service.