by Ivanna Kyryk | June 12, 2018 7:20 am
The main purpose of automated testing is to make the verification of software more effective. Automation of regression tests enables your QA team to spend more time on exploring a new functionality instead of retesting the same one. So, you reduce time and expenses required for QA activities.
You design and prepare scripts once and then adjust them to functional or interface changes in new versions of your software. The duration of scripts support depends on the number and nature of software changes. Here is the diagram that represents the ratio between time and cost of manual and automated testing.
Testing of long-term projects (for a year and longer) is better to automate. The matter is that such projects consist of several subsystems that require regular regression testing. And QA team can spend too much time on the manual execution of regression tests.
If you have a team of two and more developers, you also may need test automation. A developer should be sure that his modifications don’t break someone else’s code. Test automation helps to check that faster.
When you plan to support old versions of your software, then automation will be an effective solution. Running auto scripts, you can cover verification of the same functionality on different configurations.
Developing software that processes a large amount of data, for example, accounting systems, you can spend the whole life inputting data manually and analyzing the results. Manual testers aren’t able to provide a wide test coverage within minimal time. But automation definitely can.
If you develop software according to agile methodology, then you will have short iterations and frequent releases. You have no time to conduct regression testing manually within one sprint. And in this case, automation will be very much to the point.
If one of the above-mentioned cases is relevant to your project, then it requires test automation. Before starting a project, you should define:
Automate frequently-used functionality as there is a high possibility of bug detection by end users. For example, registration procedure, authentication, payments and so on. It is important to cover with scripts all the critical features to minimize the risk of bug occurrence.
To save time and resources, you’d better automate routine actions. That can be the forms with several input fields. Besides, you should prepare scripts for checking validation messages. Don’t forget to verify the procedure of filling the form with invalid data and the validation procedure.
Long end-to-end scenarios also should be automated. For example, a scenario for testing Task Management System. For example, user registration – task creation – task assignment to a particular person – changing task status and so on.
Tests that require accurate mathematical calculations. This can be relevant for analytical and accounting software. Also, automate tests that will be executed on different hardware and software configurations.
NB: Not every test can be automated. Read when say “no” to automated testing.
It is not necessarily to automate all the tests at once, as a kind of test hierarchy exists.
An automated testing pyramid shows the dependency between the number of test scripts and the level of system architecture. You should have a large number of unit tests of the lower level and a small number of UI (User Interface) tests of the upper level.
If you automate UI tests, you have to wait for a new deploy and the end of a test run. Automating API tests, you run scripts on a fully deployed software. You will get less false positive results. Unit and component tests don’t require the deployment of the whole project. You can run them after a module compilation. And test editing and bug fixing can take several minutes.
So, the lower pyramid level is, the less time you’ll spend on test execution. You’ll be able to run a bigger number of tests within the same time. More information about test automation pyramid you can find here.
And remember automation is not a panacea, and not every project is suitable for automation. Analyze the specifics of your software and project to make a right decision – automate or not.
Source URL: http://blog.qatestlab.com/2018/06/12/when-automate-testing/
Copyright ©2018 Independent Testing – QATestLab