We from 99tests attended Bangalore Barcamp 2012 at SAP, Bangalore on 25th August 2012. This is post from the talk by Ajay on “Exploratory Testing” who leads a QA Team.
Software Testing is currently practiced either as Scripted Testing or Adhoc testing. Now what is the problem with both of these approaches and what is the common problem with Automation. Too much automation results in important bugs that need human creativity get through to customers and too little automation results in bigger regression burden with testers. What is Exploratory Testing and how can it help in delivering high quality software products?
Scripted Testing involves creating of Test Cases which are optimum for 90 % of the test execution time and only around 5-10% is left for Adhoc testing. This involves skilled tasks while creating the test cases with testing techniques such as Equivalence Partitioning (to check values for similar input types), Boundary Value Analysis (to check the boundary conditions in input conditions) & Orthogonal Arrays (which is used to reduce the required combinations of Browsers, Operating Systems & other supporting software platforms on which the application will run). So the basic assumption with Scripted Testing is the tester is skilled to use techniques to create an optimum set of test cases which might find most number of bugs and that the tester executing these optimum test cases does not have to use his intelligence while testing. These assumptions have not been totally held up in practice, i.e. it might not always be possible to create optimum set of test cases for Scripted Testing and also that fact that Testers have not been able to use their creativity during test execution as they have to follow a script, has not always resulted in find the the most important bugs that have the maximum impact using Scripted Testing.
Adhoc testing involves a group of tester getting together and testing the application without any thought on how to go about the testing and how to help their management understand what was covered. Yes a few good bugs will be caught in these testing sessions, but it is not entirely repeatable and it depends on the team testing on how they find bugs. While Adhoc Testing is very motivating to the testers who get their creative freedom in testing the application, it does not help the developers in understanding what was tested and how much more testing is needed.
Now Adhoc Testing and Scripted Testing are two ends of the spectrum. is there are middle path which helps in giving the testers creative freedom to find the most impact-full bugs while at the same time helping management understand how the time and effort will be spent and what results can be expected? Yes there is and Exploratory Testing is the middle path, that might solve both of these problems and help in releasing a high quality software product.
Ad-hoc Testing Exploratory Testing Scripted Testing
Now, how do we go about running exploratory testing sessions. The two most important concepts are called Scope and Tours. Now unlike adhoc testing where a test team can test any part of the application, the testers pick out a scope to test the application for the next 45 mins or 1 hour session. For example if you asked to test Facebook in an adhoc session you can pick any part of the functionality of facebook, but in exploratory testing sessions you first pick a Scope of the application, with in which you will test. For example you can pick the chat functionality in facebook to be your Scope. So the tester as a defined area where he can use his creativity to find bugs, which is still a bounded area of the application.
The next important concept is called the Tours. Testers can now pick the type of Tour he would like to take on the defined Scope of the application. Tours are kind of approach you take to testing, i.e. a tester cannot try negative testing, usability or boundary values all at once. One has to decide on the type of Tours the tester will take in that testing session. There are more than 30 Tours in exploratory testing techniques.
Types of Tours
- Anti-Social Tour
- Landmark Tour
- Intellectual Tour
- Super Model Tour
- Tourist Tour
- Guild Book Tour
Let us take a look at “Anti-Social Tour”. In this tour the tester thinks like an user who is performing anti-social activities on the application. For example he will try to break the application by all possible means of sending large text, hacking into the sessions of other users, by passing the security. So the tester has the freedom to use his creativity for the 1 hours testing session on the defined Scope and selecting the type of Tour he is going to take on the application. This gives the best results in terms of finding the most important bugs, letting the testers use their creativity and a high level coverage report for the management.
This is the first introduction to Exploratory Testing for Software Testers. In the next post we will talk about how to use exploratory testing in team scenarios, how to schedule Tours to get the best results and get feedback from testers in protocols apart from bug reports.