Showing posts with label Tester Skills. Show all posts
Showing posts with label Tester Skills. Show all posts

Friday, April 23, 2010

What Makes a Good Exploratory Tester?

Exploratory testing combines learning, test design, and test execution into one test approach.

We apply heuristics and techniques in a disciplined way so that the actual testing reveals more implications than just thinking about a problem.

As you test, you learn more about the system under test and can use that information to help design new tests.

Exploratory testing should start with a charter of what aspects of the functionality will be explored.

It requires critical thinking, interpreting the results, and comparing them to expectations or similar systems.

With exploratory testing, each tester has a different approach to a problem, and has a unique style of working.

However, there are certain attributes that make for a good exploratory tester.

A good tester:

  • Is systematic, but pursues "smells" (anomalies, pieces that aren't consistent).
  • Learns to recognize problems through the use of Oracles.
  • Chooses a theme or role or mission statement to focus testing.
  • Time-boxes sessions and side trips.
  • Thinks about what the expert or novice user would do.
  • Explores together with domain experts.
  • Checks out similar or competitive applications.


 

Thursday, April 22, 2010

Good Testers Vs Great Testers

Successful projects are a result of good people allowed to do good work.

Good testers are continually looking for ways the team can do a better job of producing high-quality software.

They help the developer and customer teams address any kind of issue that might arise.

Creativity, openness to ideas, willingness to take on any task or role, focus on the customer, and a constant view of the big picture are just some components of an effective testing mind-set.

Good testers have an instinct and understanding for where and how software might fail, and how to track down failures.

In my opinion the difference between a good tester and a great tester is that a great tester has the soft skills to influence and communicate in a manner that they become vital to the project, whether they are fighting their way in or are enthusiastically welcomed with an open door.

Let's be honest, not always will everything line up wonderfully for us so that we can do the great job that we know we can do. But blaming the project removes our ability to control and influence the situation so that we can bend to our will.

Great testing requires a toolbox full of soft skills, including:

  • Communication
  • Influencing
  • Negotiating
  • Stakeholder management
  • Emotional Intelligence

We often don't sufficiently prioritize the development of these skills in our testers. It's much easier to make the case for ISTQB training expenditure than a soft skill class.

However, if we are to develop great testers, we must invest in soft skills as well as technical testing knowledge.

Wednesday, April 21, 2010

Why Testers Should Study Critical Thinking?


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. 
Furthermore, critical thinking is a necessity in the effective creation of arguments. Daily testers must argue or advocate for bug fixes, testability features, or enhancements in 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
All of the above are the meat and bones of testing and are the very things that no testing class can effectively teach you.


The study of critical thinking will empower your testing and will increase your effectiveness.