Automation testing is a method of testing where tests are scripted and can be run repeatedly to throughout a lifecycle as often as needed. It takes less time to execute than traditional manual testing and provides efficiency, effectiveness in less time.
So what do I mean by 'tests are scripted'?
So manual testers generally will follow a test plan to carryout particular tests, an automation tester will automate these steps so that they can be run at the click of a button.
Generally this approach is more for functionality and regression style testing. However you can automate a number of different types of tests including load/stress, API & performance testing.
It all comes down to what your are trying to achieve, for me personally I always aim to test functionality and the users journey in a regression format. They reason being that the user is what the application is built for and will generally highlight other issues with API's and performance indirectly.
So for a summary, you create automation tests by using automation tools or frameworks. Once the tests have been written you can then execute the test cases (scripts) nightly or at a given time throughout the sprint lifecycle.
What Automation Frameworks & Tools Are Available?
I personally at the moment prefer using the automation framework called Cypress.io, however there are a number of options available.
Below is a list of the frameworks I personally recommend, all of which are FREE frameworks/tools:
- Cypress.io (JS)
- Selenium WebDriver
- NightWatch JS
Other paid frameworks and tools are available, I may write another post in the future listing these.
When should you implement automation testing?
It is important that you do not look to implement automation testing to early, if you do a lot of time can be wasted.
Personally I feel that throughout the early sprints of a project only manual testing should be applied as a generally a number of changes will be made to the original requirements. If you did try to implement too early you could spend most of your time refactoring tests.
By not implementing automation testing until you have functionality that has been agreed and proven. This way you can write the tests and only have to make tweaks, not rewrite the entire test case.
How should you implement automated testing scenarios?
As mentioned earlier you have a number of different frameworks/tools you can pick from, however before you decide you need to firstly review what requirements you have and what is needing to be tested.
Once you have selected a framework/tool you will need a process, generally the standard approach is to:
- Analyse the features/functionality that need to be tested
- Chose the appropriate automation testing framework/tool
- Write Test Scripts
- Execute Test Scripts
- Create a Report
- Raise Highlighted Defects/Issues
- Update/Maintain Test Scripts
It is very important that the automation scripts are run regularly to ensure you find issues early. Also, it will highlight any changes that need to be made to the scripts to ensure they are maintained in line with current functionality.