With all the pros and cons of both Manual and Automated testing types, there is always a big concern while running any testing process – it’s all about budget and timeline optimisation. Learn how an innovative testing approach beats the well-known but overstayed testing methods. This article will introduce the innovative alternative called ‘Parallel Testing’, a semi-automated approach that may be utilized with ease and the utmost efficiency and describe what is parallel testing.
Parallel Testing 101
How an innovative testing approach beats the well-known but overstayed testing methods
Do you know a perfect portion of Manual or Automated testing types to apply for a comprehensive testing coverage? Have you ever thought about smart trade-off while implementing testing techniques in practice?
With all the pros and cons of both Manual and Automated testing types, there always is a big concern while running any testing process – it’s all about budget and timeline optimization. You have to be really choosy between time-consuming, error-prone Manual testing and cost-consuming Automated testing that does not keep up with the frequent application changes. This article will introduce the innovative alternative approach called ‘Parallel Testing’ that may be utilized with ease and the utmost efficiency.
Welcome to the Parallel Testing Notion
Parallel testing, a semi-automated approach is defined as a process of application testing against several environment configurations simultaneously. A tester can interact with an application through the main PC while directly monitoring a test run on other N-controlled machines conjoint together with specific test software.
The cutting-edge technology of parallel testing is particularly important and effective for the following testing types:
– Cross-browser testing;
– Сompatibility testing;
– Version assessment;
– Localization and Internationalization testing;
– Linguistic review and context validation;
– Performance checks;
– Environment configuration.
Parallel Testing can be the best fit for the following product types:
– Software product with custom UI controls;
– End-user-oriented product;
– Immature and quickly evolving product.
What is Parallel Testing in Practice?
Let me showcase our own successful experience with Compatibility testing implementation in parallel with two examples. These two featured cases were related to the desktop and client-server applications, which show flaws of the operating systems compatibility, within the shortest period of time with best quality ever. The first in its class and in the market in-house tool, based on RFB protocol, Microsoft UI automation framework and image processing algorithms, enabled efficient injection of parallel testing technique into our projects.
In the first case, we faced the task of validating the work accuracy of the desktop application on different Windows versions. Since the app function was to convert immense project files from one format to another, the well-to-do files conversion and correct auto-update on all the needed platforms essentially had to be ensured. The testing environment was filled up with the operating systems that included 32- and 64-bit versions of Win XP, Win 7, and Win 8. The test cases were executed simultaneously on each relevant operating system accordingly. The use of simultaneous testing contributed to the high-level estimation of the program performance changes. It was discovered that Win XP version of the app ran dramatically slowly compared to other versions. We calculated saving time threefold as the entire testing process was easily run by a single test engineer. In response to that, the project developers gained the great advantage to meet the tough project deadlines and maintain the all-round test coverage within significant time constraint – as specified by the guidelines of Agile methodology applied to the project.
Another successful story of implementing compatibility testing in parallel refers to the client-server application. The server side of the app could run on Windows Server, Solaris and Linux OS while the client side had to operate smoothly on Windows 7 with no changes at all. The testing process was carried out on three client sides allocated in different testing environments simultaneously. Each client was plugged into a separate server with an appropriate operating system. A single tester simultaneously tracking the operating speed of each environment handled the whole process. The test engineer could identify the most resource-consuming actions through diverse program metrics (SyncTest Performance Monitor). The use of parallel testing allowed defining delays in report generation and performing specific activities within a database.
Delivered Benefits in a Nutshell
In both of our projects, the results of utilizing the parallel method had the common frame. The main advantage we discovered was significant resource and time reduction. The tester was able to immediately identify the leaks in the operating speed of the program modules on various platforms, mismatch of a user interface and functionality – all through the simultaneous work with different configurations of the test system and operating speed comparison on each environment under test.
The impressive outcome of the analysis conducted by our customer on dependency between time and number of test configurations is illustrated by a graph below.
The other edge of benefits went to the significant cost saving that was ensured through:
– scriptless optimization of test execution – no need to convert existing manual test cases into scripts;
– minimization of resources – one test engineer managing the tool that replicated his actions across other environments, per project;
– no advanced qualification needed – programming skills are not necessary for a test engineer involved.
As described by the cases in this article, parallel testing definitely takes quality control to a new level and reveals many more opportunities for effective and comprehensive functionality checks.
About the Author
Nazariy Popov holds a position of Head of QA RnD at ELEKS, a global organization delivering software engineering and quality assurance services as well as complex software solutions including Data Science, Mobility and Digital Production. He investigates new QA approaches and trends, implements strategic innovation for the company and assists in execution of business plans. In particular, he is in charge of developing frameworks and services for optimizing the quality assurance workflow and expanding the list of QC services provided by the company. Nazariy is a Co-founder and visionary of SyncQA company that provides innovative solutions for quality assurance for SME and large product companies. To share his knowledge in innovative QA approaches, Nazariy actively participates and speaks at both local and international industry events. Nazariy can be contacted at [email protected]