When creating IT solutions, mistakes cost a lot of money and this is especially true for medicine, where human lives depend on the quality of software, or in the field of banking, where large financial losses are possible. Testing automation helps to organize continuous quality control of the software. Let’s see when it is needed.
Some companies find automation a waste of time and money. Others, on the other hand, believe that it is a cool trend and a magic pill for all diseases. But where is the golden mean? What is the point of testing automation? Let’s find out.
The slightest mistake in software can cost huge money. The better the development processes are built, the lower the risks. However, even such software giants as Google and Microsoft or leading banks make mistakes.
One of the famous “accidents” in the world of finance occurred at the First National Bank of Chicago in the late 90s. Somehow, overnight, money in bank accounts grew by $ 900 million. Then the senior vice president of the bank, James Lancaster, admitted that it was a “software error in the computer” which, fortunately, no one got a chance to exploit.
There are costly mistakes in other industries that seem to be unrelated to IT. A well-known example is an accident during the launch of space technology, in particular, in 2017, Roskosmos corporation lost a satellite worth over $35 million.
When working with large-scale IT solutions such as remote banking systems (RBS), it is important to constantly test not only the operation of individual functions but also how they interact.
Leading banks update their applications every month and with tight deadlines, it is impossible to test everything manually.
Two following approaches are usually combined when making IT products for business:
• tests are carried out manually, with the help of QA specialists;
• manual testing and automation of key test cases are combined, with the help of SDET (Software Development Engineer in Test) experts.
The work of an SDET specialist borders on three areas: development, QA, and DevOps, covering both the writing of automated tests and other tasks. For example, SDET can customize CI to automatically deliver and deploy applications, maintain documentation, and organize processes. However, in this article, we are only talking about one aspect – testing automation.
This is one of the fairly new areas in development, surrounded by a lot of myths. Most often, a business that turns to automation believes:
1. It will solve all the problems of high-quality software release;
2. It will allow you to get rid of manual testing;
3. It is necessary simply because it is a “cool trend”;
4. It will speed up the release;
5. It will increase the coverage of platforms and versions of operating systems during testing.
Obviously, the first three statements are controversial: to ensure the quality of an IT product, it is important to consider many aspects, and not just test automation.
In turn, the last two statements are true: competent test automation helps both in accelerating releases and increasing case coverage. At the same time, manual testing and automation, as a rule, are equally important and are used in combination. In addition, each project is individual, and sometimes there is no need for automation.
• Large-scale application with many business functions
• A significant lifetime of the application (from 1 year or more)
• Implementation of CI/CD, regular releases, and a small number of QA specialists
SDET experts are involved to ensure:
• Automation of frequent tests, reducing the burden on QA specialists.
• Control of the main functions of the application and tracking changes in the product.
• Ability to test with a large number of devices, browser versions, and operating systems.
• Testing the performance of the application in conditions of simultaneous work with a large amount of data and users.
Automation helps to build balance by:
• manually testing what requires human attention (as a rule, up to 25% of cases);
• automating the rest of the cases.
At the same time, automation in the long term reduces both testing costs and risks associated with the human factor.
In addition, releases can be accelerated if needed. For example, if you need to check about 400 cases, then their manual testing will take up to two weeks, and automated tests can be carried out at night and analyzed in 4 hours.
Thanks to automation businesses get the opportunity to make sure that the key functions of the system are working correctly and check if there are any errors (and define them).
Ready to learn automation qa? Enroll for our QA automation course today.
Suppose that at the current moment in the mobile bank you need to go through up to 700 cases, each – from 70 to 100 times a year. Less than 25% of cases require manual testing, the remaining 75% can be automated.
Time required for manual testing: 30 hours.
Time spent by automation: the night run of tests takes 8 hours, but it is not taken into account as it does not presuppose human intervention.
Other spent time:
• 8 hours for manual testing of cases that cannot be covered by automated tests (25%);
• 6 hours to analyze the results, and, if necessary, to check failures (up to 10% of tests).
Total: testing automation allows you to reduce the time spent from 30 to 14 hours.
Of course, each case has its own characteristics, so the time required may vary. We constantly analyze how long it takes to write automated tests, support, and analyze the results.
On average, automation saves at least 30-50% of your time, allowing you to spend more time, for example, on product development and improvement.
Every IT company has its own quirks in test automation, as well as in other workflows. The following methods help to quickly build work with clients’ projects.
The testing process begins with the development of a strategy – a test plan, the basis for the creation of individual test cases. To automate SDET engineers select key, frequently used scenarios of the user interaction with the product and such scenarios provide about 80% of the business value.
After that, you create the basis for further automated tests, set up stands and workflow, CI for regularly running tests on various branches. You choose which approaches to preparing test data you will use (API, access to databases, generation of synthetic data, use of data from production). SDET engineers write tests that cover key scenarios for working with the product, analyze the results obtained, and the need for further automation.
You can develop automated tests using all the most popular programming languages – Java, Python, Kotlin, etc. The main tools and technologies are Appium, TestNG, JUnit, RobotFramework, Pytest, Selenium, Senenide, Allure, TeamCity, Jenkins, JMeter.
Which tests need to be automated in the first place depends on the characteristics of a particular product. Most companies automate smoke tests, regression tests to check ready-made functionality, as well as cases to check various parameters (for example, valid and invalid data during registration).
In our practice, we build test automation processes already at the start of development, in parallel with manual testing. This work is carried out continuously, especially on large projects, including banking.
The balance of manual and automated testing allows you to constantly monitor the quality of an IT product. Some projects are checked manually, while other tasks can be better solved using automation. Manual testing is used when people are irreplaceable, for example, if localization is needed, error descriptions, manual usability testing. In small projects, tests are often written by the developers themselves.
Manual testing in combination with automation is carried out when creating large IT products, where several teams work (for example, in banking applications) and there are complex algorithms and business logic. This method helps to streamline product testing processes and reduce the risk of costly errors, which is especially important when working with a tight release schedule.
Thank you for reading! We hope this article was useful to you!