A New Way To Think About Quality Assurance: Parallel Testing

Nazariy Popov
QA Program Manager at ELEKS

In the era of digitalization, the main focus of software vendors has shifted to the optimization of the product delivery lifecycle process where testing gets exposed too. And it is because of the slow performance and excessive resource consumption that classical software testing approaches became inefficient. This gave us a huge drive towards finding a new innovational testing method that would be an alternative to both error-prone, time-consuming manual and cost-consuming automation testing approaches. And parallel testing just might be the answer.

What is Parallel Testing

Parallel Testing is a semi-automated approach involving human and automation testing efforts. Application testing is run simultaneously against various environment configurations with a single tester controlling and interacting with an app through the master PC while monitoring a test run on other conjoint N-controlled machines. Synchronization between machines is done through specific software – an in-house developed tool, based on Microsoft UI automation framework, RFB protocol and image processing algorithms.

Parallel_Testing_1_ELEKSlabs

Faster than manual and cheaper than automation, parallel testing is particularly helpful for:

  • Cross-browser and compatibility testing
  • Versions assessment
  • Linguistic review and context validation
  • Localization and internationalization testing
  • Environment configuration verification
  • Performance checks.

Parallel Testing in Action

Yes, parallel testing is that cool. But not to sound groundless, let me share some success stories on compatibility testing through parallelizm related to desktop and client-server applications.

In the case with a desktop application, we aimed at accuracy assurance of a file converter work and its auto-update across various Windows versions. The testing environment was specified with 32- and 64-bit versions of Win XP, Win 7 and Win 8. The execution of test cases was done simultaneously on each defined operating system.

The results were impressive: threefold time savings even with the involvement of a single test engineer – great contribution to Agile practices.

As to the other success story, our task was to assure smooth operation on Windows 7 for the client side of an app while keeping a flawless run of the server side on Linux OS, Solaris and Windows Server. The testing flow was ensured simultaneously on three client sides of the app allocated in diverse testing environments by a single tester. Each client was plugged into a separate server with an appropriate operating system.

The most resource-consuming actions were identified through different program metrics (SyncTest Performance Monitor) which significantly impacted the speed of report generation and database activities.

The Advantages of Parallel Testing

Both our projects resulted in significant cost, time, and resource saving through:

  • Scriptless optimization – no scripts composition needed.
  • Resources minimization – a single test engineer (per project) interacts with the tool that reproduces his actions across different environments.
  • Process simultaneousness – simultaneous execution of application testing against various environment configurations.

The thorough analysis run by our customer on testing approaches comparison illustrates the dependency between time and number of testing configurations and additionally serves as evidence to the parallel testing effectiveness.

Parallel_Testing_2_ELEKSlabs

Check out parallel testing in action (by ELEKS partner)

What do you think about parallel testing? Can it be the next big thing in software quality assurance?

tags

Comments