When you think about exploratory testing, do you imagine a tester clicking through the app or a tester analyzing requirements? I bet the answer is a tester clicking through the app!
Both answers are correct, but in this blog post, you’ll read more about exploratory testing in requirement analysis. Don’t worry if you’re not a tester, anyone included in the requirement analysis will benefit from this blog.
Requirements can be explored in a requirement discussion or later when requirements are already defined and written. Exploring requirements is actually a ‘thinking’ activity. In this blog, you’ll learn how to explore requirements and why it’s important.
This question deserves (at least) its own blog post! However, take a look at this simple example to understand what exploratory testing is. Let’s say that you are looking into a requirement like this: ‘As a user, I want to be able to log in with my username and password.’
If you enter your credentials in a username and password field and click on the Login button, you are not exploring. But, if you click on the Login button without entering credentials, you are exploring. Furthermore, you can check what happens when you click multiple times on the Login button after entering valid credentials or observe what happens when you enter an invalid email or password.
In short, everything you test that is not specified in the requirements or test cases can be considered exploratory testing. If you want to know more about exploratory testing, I recommend an excellent book that describes exploratory testing in detail – Explore it! by Elisabeth Hendrickson. This book offers great examples and tips for exploratory testing. And how does exploratory testing fit into the requirement analysis? Let’s find out!
I would say that this is the perfect start for testing. Well yeah, you don’t have a product you can test, but you can save a lot of time (and nerves) if your testing starts here.
During the requirement discussion, the main focus is to define what a system should do. First, so-called happy paths are discussed. After defining and understanding what those happy paths are, other scenarios should be discussed – and that is the moment where exploratory testing should start.
Each happy path is likely to have scenarios that can go wrong. Let’s stick to the mentioned login example – what will happen if the user enters invalid credentials? If there are no warning messages saying that the username or password is incorrect, the user can be confused. Raise a question about scenarios that could go wrong following the defined happy paths.
This is a happy-path question, but it’ll help you understand where to put a great effort into breaking that thing. Ask stakeholders to define the most important use case(s). For example, imagine that your team is building a webshop and you’re discussing a payment flow in a webshop – one of the most important use cases is to always show correct prices and a correct total price.
You can discuss with stakeholders anything you think will affect the correct prices (reducing the number of the same products in the chart, removing products, discounts, promotion codes)
Discuss with stakeholders what should never happen. For example, products from the wishlist should never disappear. Try to cover scenarios in which products may disappear from the wishlist and how to handle those scenarios.
One of those scenarios is that the product is out of stock. The end-user wants to see all products he ever saved on the wishlist, although the product is out of stock. The product can be grayed out, or the ‘out of stock’ warning may appear under the product, but the product should remain on the wishlist, and the user should be informed that the product is out of stock.
This question is very important because it helps prevent defects in multiple functionalities. Let’s continue with the webshop example – one of the requirements is ‘As a seller, I want to be able to remove my products’. Now think about what functionalities depend on products:
Once you start doing exploratory testing in the requirement analysis following these questions, you’ll reduce many discussions that occur during the development – doesn’t it sound perfect?
I’m sure that you already know that any defined and written requirement can be changed. So don’t take for granted defined requirements, analyze them and raise your concerns.
When you understand what the requirements ask for, you can analyze them with the questions mentioned above:
And questions not mentioned above:
As in the previous examples, these questions will lead you to other questions. And sometimes, defined requirements won’t give you answers.
However, stakeholders will. You can forward your questions or concerns to a business analyst, project manager, project owner, or your clients – this depends on the organization within the project you work on. Just make sure to contact a person responsible for defining business logic and/or requirements.
If you have any suggestions on how to handle your questions, don’t hesitate to raise them with your questions – moreover, it’ll help stakeholders to make a decision, and your previous experience will probably generate some great ideas.
Exploratory testing in the requirement analysis doesn’t make sense if there are no benefits to it, right? Great benefits can be brought to both product quality and teamwork.
Let’s start with some benefits of exploratory testing during requirement discussion, where questions are raised before development starts:
If requirements are already defined, your team still can benefit from exploring them:
Although exploratory testing is about simultaneously learning, designing, and executing tests, exploratory testing can be done in requirement analysis. You need to think outside the box and let your results bring great benefits!
Partner with us