The scale of the automated testing market is growing every year and growing rapidly. Last year (2023), global automation testing market size was valued at $15.4 billion. By the end of 2024, $17.7 billion is projected, and by 2032 the figure should reach almost $70 billion. At the same time, North America occupies a leading position in the automation testing market. We talked with an expert in this field about the advantages, disadvantages and prospects of autotests.
Anatolii Tymoshchuk is an experienced test automation engineer with more than six years of experience in the field of QA. He has deep knowledge in the field of development of automated test frameworks and significant experience working on large international projects.
Working for Grid Dynamics, he participated in the development of an automated framework for Nike and SNKRS mobile applications on the iOS platform using Swift and XCUITest. His work has significantly improved the efficiency of the testing process, speeding up the release of updates and improving the quality of the product.
At EPAM Systems Anatolii worked on internal projects related to cloud technologies. He participated in the development of automated test solutions for the EPAM Cloud platform using Java, Selenium and Selenide. His contribution helped to improve the quality of services and increase the reliability of the company’s cloud solutions.
At Andersen Lab he participated in the development of automated test scenarios for the Paysera fintech product, ensuring the stability and security of financial transactions.
Anatolii actively trains and mentors new specialists in the field of QA and test automation, conducts lectures and master classes.
In your opinion, what are the advantages of automated testing in the development and debugging of financial, media and other user-oriented applications?
I believe that the rapid development of artificial intelligence technologies is significantly changing the field of automated testing.
Firstly, AI allows us to automate not only the execution of tests but also their creation and maintenance. By using machine learning algorithms, we can generate test scenarios based on the analysis of user behavior and historical defect data.
Secondly, artificial intelligence helps to identify complex patterns and dependencies in the code that are difficult to detect with traditional methods. This enhances testing efficiency and allows us to focus on the most critical areas of the application.
In addition, AI technologies contribute to improving regression testing by prioritizing tests. Algorithms can predict which parts of the system are most vulnerable after changes and automatically adjust the test suite for optimal coverage.
Also, AI can act as an experienced colleague with a high level of expertise. It helps to generate new ideas, refactor code, and identify errors. Artificial intelligence analyzes code for optimization, suggests improvements, and points out potential performance or security issues, thereby enhancing overall development quality.
The implementation of AI also changes the role of QA engineers. Now, it is important not only to be able to write automated tests but also to understand how to train and use AI models to improve testing processes. This requires new skills and approaches to work.
Of course, there are challenges associated with integrating artificial intelligence. It is necessary to ensure the reliability and transparency of AI systems and to consider possible ethical aspects.
AI technologies expand the capabilities of automated testing, making it more intelligent and adaptive. I am confident that their implementation will become a key factor in improving software quality in the near future.
Tell us in more detail about those cases when it was your work and your contribution that made it possible to significantly improve the work of certain projects?
It was my participation in developing an automated testing system for a financial application – my contribution allowed to substantially improve the project. The team was facing problems of slow release cycles due to lengthy manual testing, which negatively affected the product’s competitiveness.
The QA team was given a task to rectify this situation. So we gave an idea to implement automated testing using the Selenium WebDriver framework in combination with Java. After a detailed analysis of requirements and the development of test scenarios, we automated the key functional tests. Additionally, we set up integration with the continuous integration system Jenkins – this allowed tests to run with every commit to the repository.
As a result, the time spent on regression testing was down 30%. We achieved our goals – we could accelerate releasing new versions and improve the overall product’s quality and the stability of the environment, making the work easier for manual testers.
In another e-commerce project, I developed an algorithm for generating payment data, which helped us to test user E2E functions as accurate as possible in different environments when we couldn’t use real payment data. Before that, the platform had some issues with these scenarios: they were not fully tested up to the point of entering payment data. By developing load scenarios, we identified bottlenecks in the system and, together with the development team, optimized the application’s performance.
These examples demonstrate how my work in test automation and process optimization directly influenced the success of projects and the achievement of business goals.
AI technologies are now developing by leaps and bounds. How, in your opinion, does this change the scope of autotesting?
I believe that automated testing plays a critical role in the development and debugging of financial, media, and other user-oriented applications.
Using automation tools like Selenium, Appium, or JMeter allows quick and efficient execution of regression and load tests. This accelerates development cycle and ensures stability of the application after code changes.
Furthermore, automation enables coverage of complex, multi-variant test scenarios, including parallel testing on different platforms and configurations. For financial applications, this is especially important due to the necessity of complying with regulatory requirements and ensuring a high level of data security.
Moreover, automated testing minimizes the human factor, providing repeatability and accuracy of results. Integration with Continuous Integration and Continuous Delivery (CI/CD) systems allows quick detection and fixing of defects at early stages of development.
And using of TDD (Test-Driven Development) and BDD (Behavior-Driven Development) approaches in automation contributes to higher-quality code design and better understanding of requirements.
Ultimately, automation helps to optimize resource allocation, allowing team members to focus on more complex tasks such as exploratory testing or improving user experience, which in turn enhances the quality of final product.
