Exploratory testing definition from James Marcus Bach:” Simultaneous learning, test design, and test execution.”
Today, I will introduce a new tool – Charter to you. Which helped me a lot to generate ET ideas in past years. (Charter concept is come from Session-based testing management)
What is a Charter? It is a clear mission for a test session. A test session, you can understand as a test activity of an item during each sprint. A Charter may suggest what should be tested, how it should be tested and what problems to look for. So the format is:
to discover [information]
For example: Explore login function with correct username and incorrect password to discover the account is locked after 6 times experiments.
I suggest a Charter can come from stakeholders, team, risks, quality attributes and places where we require information. And it can be defined in advance but can be changed. You can (re)prioritized charters before each new session. Please kindly to notice that a charter is not meant to be a detailed plan.
Here maybe a comprehensive definition of a Charter: making your own decisions about what you will work on and how you will work. Understanding your client’s needs, the problems you must solve, and assuring that your work is on target.
A Charter can be separated into 2 types:
- General Charters – may be necessary at first. For example: Analyse the Player Login function
- Specific Charters – provide better focus, but take more effort to design. For example: Test player account login. Focus on security and performance, and make sure business rules applied correctly and invalid player can’t access successful.
When you practicing writing Charters, please remember the principle: When you look at a list of 10 charters, you should see 10 distinct testing missions. And essential elements of a Charter:
- Risk: Why am I running this test? What could go wrong? What am I looking for?
- Coverage: What am I testing? Which features, screens, artifacts, or areas of the product should I be touching while testing?
- Time Frame: How long should it take to perform this testing? Are there setup tasks I should do before I officially start? What do I need to do when I’m done?