Exploratory testing is a dynamic approach to software testing that emphasizes your freedom and responsibility to adapt to changing testing conditions. However, without a clear direction or purpose, getting lost in testing without achieving meaningful results can be easy. This is where test charters come in. In this article, we will explore what test charters are and how to use them to optimize your exploratory testing process.
A test charter is like a mission statement for your exploratory testing session. It guides your testing activities while giving you room to be creative.
Test charters are often used in session-based testing to help you focus on testing in a specific area and within a certain time frame.
To create a test charter, ask yourself:
Exploratory Testing differs from other testing approaches because it doesn't follow predefined steps or check for well-known expectations. You don't test randomly, either. Instead, you use your experience and knowledge to uncover new information.
Using test charters during exploratory sessions helps you stay focused and inspired, resulting in better outcomes. By defining a specific area of the system to test and setting clear expectations for what you hope to achieve, you are less likely to get sidetracked or waste time on testing that doesn't contribute to your overall goals.
Test charters also encourage creativity and innovation by inspiring you to test from different angles and explore the software in diverse ways. This can lead to more varied and comprehensive testing scenarios, which may uncover issues that otherwise can be missed.
Writing effective test charters is essential as it can impact the quality of your exploration.
A charter structure that works for most teams is the following:
Explore <area, feature, risk>
with/using <resources, restrictions, heuristics, dependencies, tools>
to discover <information>
Adapted from Maaret Pyhäjärvi, Elisabeth Hendrickson
A common mistake you should avoid while writing a charter is overcomplicating it. Try not to get too specific, otherwise, you'll write a test case. On the other hand, you should also avoid getting too broad because you will lose focus.
A perfect charter inspires you in your exploration without forcing specific actions or outcomes.
Explore the login page
Using Chrome and different screen sizes
To discover problems with usability
Getting stuck in your day-to-day routine may make you feel uninspired to write charters and have difficulty thinking outside the box. Luckily, experts in the testing industry have developed approaches and techniques that can help you test from new angles and find unnoticed defects:
User personas help you explore your system by considering different user behaviors, which leads to finding product issues associated with them. Your user personas can contain information about age, job, accessibility, usage habits, and feelings.
Here are some examples of user personas that can you can consider:
A charter example that is based on a persona:
"Explore the bookstore site
With a mid-age, non-technical teacher persona perspective
To discover problems around the easiness of the whole process of buying books"
Tours are metaphors for testing activities linked with themed journeys that users may take. When you're testing using a tour, you navigate the system focusing on finding defects linked to a theme. James Whittaker uses a tourism metaphor that organizes tours in different themed districts (business district, entertainment district, tourist district, and more).
Here are some of the tours that James Whittaker is proposing:
A charter that uses the supermodel tour can look like the following:
"Explore the login page
Using Chrome, Firefox, Edge, and Opera
To discover problems with CSS styling and JavaScript"
Test heuristics are cognitive shortcuts that facilitate the testing process by helping you to solve problems or make decisions. They can have different forms, such as checklists and mnemonics.
Here is a charter example that uses the CRUD heuristics:
"Explore the REST API endpoint for managing bookings and the CRUD operations
Using the "curl" command line tool and the REST API specification
To discover problems with the syntax"
We created the Xray Exploratory App to help you focus on your exploration session and ease the documentation task by easily recording your findings.
Start your exploration session by writing down your mission: the charter. Include in your charter the quality attributes you aim to test and add lists of items you know in advance you want to cover. Remember that a charter needs to inspire you and keep you focused, so try not to get too specific.
While you explore your system, use the app to record evidence and videos, take screenshots, and mark defects directly in Jira. When you feel you're losing focus, return to the charter and remember the goal for your session. Use the notes to write down ideas for new charters.
At the end of your session, export the PDF report of your session or automatically upload the results to Jira and Xray. Once there is visibility over your exploratory session, discuss the charter with your team. Charters can be reused and will generate different findings when used by multiple members.
Learn how to generate a PDF report of your exploratory testing session using the Xray Exploratory App:
Test charters are an important element of exploratory testing as they help you stay focused and inspired in your exploratory testing sessions. Writing charters for exploratory testing is a continuous process that starts with the first discussion of requirements and evolves with each session. To keep your sessions focused and ensure better test coverage, it's helpful to create a charter library. If you feel tempted to explore in ways that are clearly off-charter, it's a good sign that you need to update your charter library.