In a previous blog post we discussed How to develop a Structured Exploratory testing strategy and we introduced why it is the real asset to exceptional functionality and superb UX if you want your QA to go above and beyond basic expectations. Also, in another blog post we analized if our Exploratory Testing should be be automated.
When you say or hear that someone found issues by "simply browsing about and seeing these bugs, I performed some exploratory testing," you can bet your life that it was not exploratory testing.
When the scrum master/whoever says, "Let's perform some exploratory testing before the live release just to make sure everything is alright," you can bet they don't know what they're talking about.
So, what exactly is the purpose of exploratory testing? WHY is it so fantastic?
There is a psychological foundation. Allow us to explain.
Joseph Luft and Harrington Ingham created an analytical approach to assist individuals understand their relationships with themselves and others. It was known as the Johari window.
There are four quadrants in this model:
- open area: known to others as well as self - known known
- blind spot: known to others but not to self - known unknown
- hidden area: not known to others but known to you - unknown known
- uncharted territory: no one knows about it - unknown unknown
This paradigm is referred to whenever the idea of "known knowns" is mentioned. Many scientific fields have adopted this notion, and if you follow politics, you may have heard Rumsfeld say it during a briefing in 2002.
This methodology is also applicable to software development.
The criteria that can be addressed by automated and manual testing are called knowns.
Our assumptions or expectations about the program, such as its performance, are examples of unknown knowns. We can make this known by performing performance testing.
By asking questions, we may cover our blind spots.
When we talk about how confident we are in the quality of the program, we usually mean these, which give us confidence.
This is insufficient. Automated and manual testing are not always sufficient to guarantee that the program is operating correctly and effectively. As a result, confidence should be encouraged. How do we go about it?
Potential concerns are lurking in the Unknown Unknown, ready to emerge and do reputation damage. By exploring, we can catch issues that dwell in the Unknown Unknown region and boost confidence.
This is when Exploratory Testing comes into play.
So, what exactly is exploratory testing?
We like how Elisabeth Hendrickson described it:
Exploratory testing is a style of testing in which testers are simultaneously learning about the system while designing and executing tests, using feedback from the last test to inform the
Be careful, since this is not Ad hoc Testing. According to her, exploratory testing provides useful information.
Variety and focus consistently provide useful information.
Exploratory Testing is very effective in uncovering vulnerabilities that no one has previously considered. You have the ability to pick up on tiny clues and let your intuition to lead you in your quest for problems since you utilize input from one trial to influence the next.
However, because exploratory testing includes developing tests on the fly, there is a risk of becoming stuck in a rut of just performing one or two types of tests (the hammer/nail dilemma) or uncovering information that is far far from what your stakeholders want. Focusing on charters, followed by a range of analytical approaches to approach the targeted region from many viewpoints, helps guarantee that your Exploratory Testing activities consistently produce insights that your stakeholders will appreciate.
Using TestQuality with Exploratory Testing
One of our clients explained us that they perform Exploratory Testing quite often. They do the following process, when a bug is discovered they build a Testcase in TestQuality while also logging the defect in GitHub since TestQuality is designed around a live integration core. This live two-way core allows TQ to communicate directly with GitHub or Jira in real-time linking issues and requirements with the key tools in your DevOps workflows. .
As a result of performing Exploratory testing, these tests can be produced on various days, but they will all be included in a single run designed exclusively for ad-hoc tests.
Exploratory testing are a great approach to find business bugs.Unfortunately, exploratory testing is frequently underutilized in software testing due to a lack of time on teams, despite the fact that it is critical and complimentary to functional testing.
In certain situations, they even lead to the detection of functional flaws, such as display issues, data issues, stopped functions, and so on.
In some circumstances, it is feasible to realize a business scenario that is unachievable in reality, or to fail to reproduce a scenario that should be doable. In this situation, we discovered what we call a "business" bug.
What about automation?It is always recommended to fix the "business bug" by adding controls during the execution of the various functions.
Also, it is a good option to run an automated test that replicates the "business problem" and checks that it does not reproduce. This is the essence of what TestQuality could offer as a Test Management tool with the use of test and Cycles for running groups of tests repeatedly.
In general, it is crucial to constantly cover bug fixes with automated non-regression tests connected to the bugs, guaranteeing that they do not reoccur: it is extremely uncomfortable for a client to report a bug in version N, only to have it solved in version N+1 and then recur in version N+2.
The concept of creating a Cycle for a repeated group of tests that are needed to run
Finally, when an exploratory test uncovers a business bug, it is beneficial to automate the scenario and add it to the functional test battery. And, if the automation of an exploratory test appears to be overly complicated due to the test's combinatorial structure, keep in mind that TestQuality includes features to create and organize test cases in a global test repository - with preconditions, steps, attachments, and more. For each test you can add steps, preconditions, and expected results. Link your tests to requirements, group in folders and more.
The aim of a Test management tool like TestQuality is to manage and monitor the testing process from test case creation and organization, to running tests and analyzing test results and trends. A good test management solution will assist team members in creating and organizing test cases, managing testing requirements, scheduling tests, informing testers what to test next, executing tests efficiently, and finally tracking and monitoring testing results, progress and trends. Ultimately an effective test case management software solution assists an organization in creating and delivering high-quality and defect-free products.
Sign Up for a Free Trial and add TestQuality to your workflow today!