There is a famous quote by Albert Einstein “Information is not knowledge. The only source of knowledge is experience. You need the experience to gain wisdom.” This quote is apt when we think of the importance of experience while coming up with test cases. In this tutorial, we will talk about experience based testing techniques.
- What is experience based testing?
- What are the types of experience based test technique?
- Common pitfalls of experience based testing.
What is Experience Based Test technique?
In previous articles, we have gone through blackbox testing techniques like equivalence partitioning and boundary value analysis. These approaches are more structured, and there is a clear approach defined to apply these techniques. If multiple testers apply the same technique on a requirement, then they will come up with a similar set of test cases.
When applying experience based test techniques, the test cases are derived from the tester’s skill and intuition. Their past works with similar applications and technologies also play a role in this. These techniques can be helpful in looking out for tests that were not easily identified by other structured ones. Depending on the tester’s approach, it may achieve widely varying degrees of coverage and effectiveness. Coverage can be difficult to assess and may not be measurable with these techniques.
When should we use experience based technique?
- Requirements and specifications are not available.
- Requirements are inadequate.
- Limited knowledge of the software product.
- Time constraints to follow a structured approach.
Once the structured testing is complete, there can be an opportunity to use this testing technique. It will ensure the testing of important and error-prone areas of applications.
Intuition too, play a key role in this technique. For example, consider your favorite web or mobile app that you use – E.g. Amazon. You did not get any requirements or a document on how to use a functionality. Yet, most of you are aware of the features and functionalities that they offer. How did you do that? By exploring the application on your own. This is a classic example of knowing the application by using it over time.
A similar thought applies to a tester as well. It’s just that they are trained to look for finer details and to look out for defects. Over a period, they know the areas that can be buggy.
For example, if you test an eCommerce application like Amazon, there are some scenarios that a tester would know from his experience that a casual user might not try such as:
- Enter a negative value in the quantity field.
- Order multiple products or quantities, apply a discount code on the cart value, and then return some quantity. E.g. if you bought 3 quantities at 100 each and then applied a 10% discount your final amount is 270. When you return one quantity, you should get 90 refunded and not 100.
- Also, try loging in to multiple sessions and see if cart gets updated correctly.
- Add a product in cart and make it out of stock from the backend.
- Add product to cart, enter payment details, and just before clicking place order make it out of stock from the backend.
These types of scenarios (and many more) come from experience, and they would apply to most of the ecommerce applications.
Scenarios to avoid
While we can always use this testing along with the structured techniques, in some cases, we cannot use it stand alone. At times there are contractual requirements where we need to present test coverage and specific test matrices. Experience based techniques cannot measure the test coverage. Hence, we should avoid them in such cases.
Types of experienced based testing
Error Guessing – Tester applies his experience to guess the areas in the application that are prone to error.
Exploratory Testing – As the name implies, the tester explores the application, and uses his experience to navigate thru different functionalities.
Checklist Based Testing– In this technique, we apply a tester's experience to create a checklist of different functionalities and use cases for testing.
As the name suggests, this testing technique is solely based on the experience of the tester. The quality of testing depends on the tester, and it would differ from person to person.
This approach might result in a very poorly tested application if the experience of the tester is not enough and can lead to bugs in the application.
In some cases, the tester has the experience but the domain is new. E.g. the application is in a banking domain, but the tester has worked on eCommerce applications. In such cases, the experience based testing would not work as well.
Hence, it’s extremely important that we use this technique when a tester has been working in the same domain or on the application for a long time.
So, to summarize, experience based testing is really useful to come up with test cases. In next tutorials we will dig deep into different types of these techniques and learn how we can apply these in our projects.