Teaching testing: scripted vs exploratory testing Martin Jansson
Let us assume you are a test lead and you have a group of testers. Some are totally new to the profession and some are old and experienced.
In the scripted test environment you might setup a test matrix, plan test cases and allocate them among the testers. Some of the testers might have been involved in creating test cases. Some might create test cases along the way as they do testing, but in the extreme scripted test environment you plan the tests before you get the build. Those that were not involved in creating test cases will just execute the tests.
Where is the learning process in this? Is it limited to just a few of the testers or is it in fact the whole group?
If you introduced pair-testing combined with the scripted testing there might be some collaboration that would stimulate learning, still if you are to follow the script there is no room for going outside the path.
When we do session-based testing you might identify risks and outline which missions to do. Testers will during the test session practise their way of expressing what they test, how they do it and what they find. Then during debriefing there is a natural way of giving feedback. Overtime you can look back on what you did and how you have evolved.
If I look at a group of testers who have been running test sessions, I see enthusiasm and sometimes passion keeping them from stop testing. Compared to those who have been executing predefined test cases, I see lack of will and boredom. The learning will be affected by this.
I have seen a few times that when giving out missions for test sessions to a group of testers who were inexperienced at exploratory testing, but instead were very familiar with how test scripts where run, there was a lack of courage in going to unchartered territory. I heard objections such as “But we have no test cases for this area, we do not know how this works.”. Can it be so that exploratory testing also brings courage and decrease fear of learning new things?
I have written tons of test cases over the years and I would say that you do learn by designing a test and preparing it to be run by yourself or by someone else. Still, it is not the same kind of learning and not the same kind of satisfaction (at least for me) as when writing on your charter.
What if scripted testing began making charters the same way as an exploratory tester do in session-based testing. Would they also increase their learning curve? What other changes would we see in the testers behavior? If the script was the mission and going outside was opportunity, would we infact see even better testing that what we see today from exploratory testing without the script? Is one of the keys the charter/opportunity, thus the fact that it is ok not to do the script?