Start trefwoorden te typen om de site te doorzoeken. Druk enter om te verzenden.
Generative AI
Cloud
Testing
Artificial intelligence
Security
Exploratory testing is an experience-based approach of testing, the most important approach of experience-based testing in our opinion. We distinguish coverage-based and experience-based testing. Others use terms like scripted testing and free-style testing, but we prefer the division in focus on either experience or coverage, with the advice to always combine both coverage-based and experience-based testing. Of the described approaches of experience-based testing, Exploratory testing is the most versatile.
Testing is about creating and executing tests, but more importantly, it is about obtaining information about quality and risks, all of that to ultimately establish confidence that an IT solution will bring the expected business value. Exploratory testing is very well suited to support that confidence because of its interactive nature and the possibility to involve various stakeholders.
Exploratory testing has many flavors. We define this approach with the following characteristics:
These characteristics are reflected in the explanation below.
Exploratory testing is structured! There are three clear parts:
Exploratory testing is prepared by means of charters. A charter guides the testers and holds a start set of test ideas and/or test data and/or test cases and/or testing tours.
The test charter is a paper or electronic document that contains information to use during the exploratory testing session. The charters may be put on a backlog, for example as tasks on a Kanban board, but they may also be distributed during a designated timebox. A good charter offers direction without overspecifying test actions [Hendrickson 2013]. A charter describes various aspects, for example the test ideas, but it must not be a fully prepared scenario of test cases. Sometimes the testers will decide to make a small start set of test cases that helps them make sure they don’t forget any important aspects.
The team can prepare a number of charters in advance and put them on the backlog to be executed as soon as the relevant test object becomes available or when it is time for exploratory testing. The charters may be prioritized based on the chance of failure (for example, “How clear were the requirements?”) and the impact if the test object would fail. The charters with the highest priority are tested first.
When a paper charter is used, the backside is often used to store logging and debriefing information
While creating the charter, decide on the next aspects:
Test ideas can come up at any stage prior to test execution, for example during a refinement of user stories. Even during test execution new test ideas may arise and be added to the charter. Test ideas can be created in an unstructured way (for example in a brainstorming session) or structured, using techniques such as heuristics. A test idea may also be to apply a test design technique, for example to have a start-set of test cases. But the test idea part of the charter should not be filled with a complete test scenario. Test cases are generally created during the exploratory testing session, not beforehand.
During the testing of each test case, together with expected outcomes, actual outcomes and observations, are logged to keep track of what was tested and what actual results occurred, how these compare to the expectation leading to the observations and anomalies if applicable.
The test log may be captured manually, for example on a log form or in a spreadsheet. Also, specific logging tools may be used, but keep in mind that the expected outcome must also be logged. (This is something that is not supported by basic logging tools that only capture what is happening on the GUI.)
It is very important that the testers think about the expected result before executing the test. This expected result may be described in a very detailed or in a global way depending on the goal of the test and the knowledge the testers already have. The expectation may even be very vague in case the testers are trying to uncover the unknown unknowns, in which case they merely wonder “What happens if …?”, but even in this case they have some expectation that helps them to determine whether the actual outcome is OK or not.
Although exploratory testing doesn’t give any guarantee about coverage, the log makes sure that afterwards the testers can explain to a relevant level of detail what they have tested. There are multiple reasons to log the testing. Firstly, after some time of active testing, the testers may not exactly remember what they already tested, so reading the log will help keep the test session efficient.
When during the testing an anomaly is found, the testers need to register this. The information from the log can be copied to the anomaly administration.
Some tests will have to be executed again, for example when an anomaly is fixed or when the tests are added to a regression test.
All these examples emphasize the need for proper logging. Logging may be done on paper, but can also be done in electronic documents or by using logging tools. However, when using a tool, keep in mind that one of the important parts is the logging of the expected results; a simple record tool that captures all actions is not sufficient since it typically doesn’t capture the expected outcome.
At the end of the test session the testers have a debriefing with a relevant stakeholder, for example a product owner, scrum master, test master, user or any other person that has an interest in the results of testing.
The main goal of the debriefing is to convey all information that the stakeholder needs and establish their level of confidence that the pursued business value can be achieved. Preferably, the stakeholder assists the team in the debriefing by asking critical questions about the experiences they had during the test session.
Often, multiple exploratory testing charters are executed that together support the establishment of confidence, so the information from various debriefings will be put together. Any anomalies found will of course be recorded and followed up. This is done by using the usual anomaly management procedure of the team (anomalies from exploratory testing are not treated differently from other anomalies). The information and conclusions derived during the debriefing are kept and combined with the various test reports that the team produces. More detailed information in a DevOps situation see Building Block “Reporting & alerting“.
When writing down test ideas on a charter you may get inspired by two special variants of exploratory testing.
Many people involved in testing have mentioned that exploratory testing is not only a valuable approach for gaining information about quality and risk so they can establish confidence in the pursued value, but it is also a lot of fun!! Working together in pairs or mobs stimulates the creativity and exploration through which information often surfaces that otherwise would have remained uncovered.
A Friday afternoon bug hunt is an excellent way to combine information-gathering with fun. Just reward a small price (like a box of chocolates) for the most interesting piece of information found, distribute one or two simple charters to be executed to all team members and the team will have a great Friday afternoon.
Approaches
Related wiki’s | Experienced based
Test design techniques
Downloads