Before we start testing, we should ask yourself some very important questions.
- Why do we want to test? – is helps us to answer the next question
- When do we need to start testing?
- What do we want to test?
We will try to address them here.
Why we want to test?
In most of the cases, we will start end-to-end testing for one of the following reason:
- to increase application quality
- to reduce the risk of failure for customer
- to check functionalists after changes
- simulate real scenarios
You should define your own reasons to test before the start. It helps you to choose the most suitable scope of testing and effort that you want to spend on them. Your reasons may be different, but based on my experience, these are the most common.
When we need to start testing?
In the case of unit testing, it is very easy. They should be created from the start of development. The other situation is for end-to-end and acceptance testing. We can’t write them right at the beginning because we don’t have anything to test. The best moment is when some functionality is fully implemented but before the first presentation for a customer. This is the time when we have a stable version of at least one application functionality and we want to be sure that it works. It is good to do the same for every functionality.
Why shouldn’t we start earlier? Because if we still working on the best solution, the HTML code may change. Each change of web page code may result in test fixing. This is the additional work that we can leave for later.
What we want to test?
This is the most interesting question because it depends on the number of people dedicated to writing tests and their engagement. It will list here the possibilities depending on the size of the dedicated testing team. I will give you an example based on shopping application.
- none – (if you don’t have the separate testing team) – you should focus only on few the most crucial happy path in applications. For example – adding item to cart and making an order
- 1-2 – you should test only important functionality. For example – changing password or checking order details
- 3 or more – you should have tests for each user story in the project. For example sorting orders in the admin panel.
This is only my point of view. Do you agree with it or maybe you would make different decisions?
You can find more information about end-to-end testing in my book
The power of end-to-end testing
End-to-end testing is a great improvement in quality testing automation. It reflects the user experience the most of all tests.
This book is a complete guide to Selenium tools. Both for beginners and experienced developers.
It just makes sure that system works fine, saving your time after all.