Containers are changing the world of testing

Introduction

Development and deployment teams are increasingly adopting container technology to accelerate application delivery within continuous integration, deployment & delivery practices. These teams are using containers in the context of simplified application development/deployment (the image building process) and runtime environments (container execution).

Interestingly enough, while testing teams are constantly being challenged to accelerate testing cycles and deliver more value with limited resources, the majority of testing teams are still playing catchup in the adoption of containers. As the saying goes, “A chain is only as strong as the weakest link”; testing teams should look to modernize the testing practices using container technology to keep pace with development teams. Containers bring significant value to the world of testing. The key benefits organizations can recognize by adopting containers in their enterprise testing strategy are:

  • Reducing the time and cost of building your testing environment
  • Reducing the Infra footprint and maintaining costs
  • Accelerating test execution times and reducing overall test cycle time
  • Improving resiliency

Containers enable adoption of lean continuous testing practices

Reducing the time and cost of building your automation tool environment

Containers make it easy to deploy new versions of software into production quickly and to quickly roll back to a previous version on need basis. They also make it easier to implement strategies like blue/green deployments. Unfortunately, there is typically a manual process for setting up test automation tools, which slows the process and makes establishing test environments more error prone. Test automation tools and their dependency libraries & frameworks should be packaged into containers in order to remove the bottleneck and risk. Because the process of building containers can also be automated, it solves the challenge around manual and error prone testing tool deployments. Containers can also facilitate upgrading versions of the testing tools very easily by switching to newer version of the containerized testing tools.

Reducing the Infra footprint and maintaining costs

Instances of containerized apps use far less memory than virtual machines and can be packed more densely on their host hardware. All of this amounts to less spending on IT infra. In the testing context, one has to maintain the testing tool host machines even when the tests are not run. With containers, you don’t have to maintain the containers after the test execution is over which provides high savings in infra costs.  Containers are also good with resource utilization since they consume and share the underlying resources of the host machine providing cost savings to testing organization. One example here would be that of performance testing requiring large resources for short durations. Using containers to spinup ondemand load generators can bring cost savings to organizations. Another example is to use of virtualization of application services which again donot need to be available all the time. Containers can be dynamically spun up on demand with necessary virtual services and brought down after their usage can be another scenario of reducing infra maintenance cost.

Accelerating test execution times and reducing overall test cycle time

Containers are very easy to port and scale across multiple environments. If you had shorter testing timelines (which is almost always the case J) and wanted to run multiple tests at the same time, you will need multiple hosts with test automation tools installed and properly configured. In this traditional approach, scaling is a challenge as you cannot instantiate multiple instances of the host on the fly. With containers, organization can spin up multiple containers almost instantaneously and enable parallel execution of tests reducing test cycle time and overall delivery.

Improving Resiliency

Applications in containers will run the same, regardless of where they are deployed (multiple different operating systems and hardware platforms). If the host machine containing the test automation tool crashes for whatever reason, you have to either redo the manual steps to install the software again or restore backup causing delays to testing cycles and delivery. Test cycles can last for hours a crash that disrupts an nightly build test cycle can set the team back.  Using containers, after a fail is detected, a new environment can be constructed automatically and not cause a bottleneck. Creating and managing containers is super-fast and easy (starting and shutting down). It is also repetitive and if there are situations where the host crashes or unavailable, you can spin up new containers easily and pick up from where you left off without much delays in deploying a new host.

Clearly in a continuous testing scenario, you can see there are significant benefits to deploying the test automation tools in containers just like the containerized applications as highlighted above.

Micro Focus enables DevOps and Continuous testing using containers

Commercial Automation tools have started to offer official container images for their respective automation tools in the registries. Clearly the organizations that adopt containers will have technology edge and will provide more value and bang for the buck. Enterprises should start to relook at their landscape to see how their test cycles are operating today and make containers part of the testing strategy. Docker is one of the popular container technology out there among the lot. Over the years, other container technologies (rkt , RedHat OpenShift, mesosphere ) are also maturing but docker is by far the largest in terms of container adoption.

Micro Focus is a leader in lifecycle, functional and performance test automaton for 2 decades with its marquee tools like Octane, ALM, UFT Family and LoadRunner. Let’s see what Micro Focus has been offering from its stable of products from containers perspective.

  1. UFT One is an end to end (GUI, API testing), intelligent (Artificial Intelligence) test automation solution that covers applications in mainframes, web, desktop, mobile & packaged apps.
    • UFT One is available as docker container in Windows. It is also available as a hypervisor image. Having a docker image speeds up UFT One maintenance and test runs
    • What can you test in UFT One docker images:
      • UFT One’s Docker image enables you to run mobile tests in a Windows Docker environment, using UFT Mobile and UFT One automation scripts.
      • The UFT One 15.0.1 docker image also supports running API tests in a Windows Docker environment. Test applications in docker using docker activities under API testing of UFT One. Download docker image of your application and then start container on the fly to start testing and then shut it down at the end of the test. Reference: Run Docker Commands from UFT One
    • You could also use Jenkins to trigger the tests in UFT One docker containers
  2. UFT Developer embeds testing capabilities within IntelliJ, Eclipse and Visual Studio, allowing developers to shift testing left by creating tests at the same time they develop software applications. It supports common technologies, languages, IDEs, operating systems, source code management tools and continuous integration tools.
    • UFT Developer provides Docker images enabling you to run your tests in Docker containers.
    • UFT Developer docker container currently supports running all Web and mobile applications
    • There are 2 modes of executing scripts using UFT Developer: Standalone and Execution. In standalone mode your tests are run remotely in docker containers while in execution mode your test reside in a location accessible from within container.
  3. UFT Mobile extends UFT One and UFT Developer automated functional testing to mobile devices. It offers remote access to mobile devices through a centralized mobile device lab, with controlled access across the entire organization.
    • UFT Mobile is available as a docker image in docker hub. The PostgreSQL database used by UFT Mobile is not included in the UFT Mobile server image. The PostgreSQL database can also be pulled from the docker hub
  4. ALM Octane is modern hybrid lifecycle management solution purpose built for DevOps and agile teams to accelerate and manage their application delivery.
    • ALM Octane has linux based docker image available to download from docker hub (currently in tech preview)
    • There are 2 stable versions of images – One image has on-prem bits. Another image has bits we used to deploy to the Octane on Micro Focus SaaS. There is another beta version and alpha version
  5. Service Virtualization eliminates testing “wait time” by creating realistic simulations of APIs and application services.
    • There is both a linux and windows docker support for Service Virtualization. All three components of SV Server, SV Management and Lab server are dockerized
  6. Autopass License Server (APLS) is a central solution for managing Micro Focus Software product licenses. It helps you organize and manage your product licenses, server users, and client users.
  7. LoadRunner family is gold standard for performance testing applications. LoadRunner family enables you to test the performance of diverse application types, and to identify and resolve issues before applications go live.
    • You can run load generator hosts inside Docker containers, using Linux or Windows dockerized load generator images.
    • You can scale up and down elastic load generators using K8S and Swarm for orchestration and managing docker containers.

There are other products like ALM/QC for which there is no official image in docker on date of publishing this article but one can easily custom build one. There is KB article available that customer can refer and it is available in the Micro Focus Support site. Reference: https://softwaresupport.softwaregrp.com/doc/KM03692383

S#Micro Focus ProductDocker Hub reference links
1UFT Onehttps://hub.docker.com/r/functionaltesting/uft https://hub.docker.com/r/functionaltesting/uft_lite (Windows Only)
2UFT Developerhttps://hub.docker.com/r/functionaltesting/leanft https://hub.docker.com/r/functionaltesting/leanft-firefox https://hub.docker.com/r/functionaltesting/leanft-chrome
3UFT Mobilehttps://hub.docker.com/r/mobilelifecycle/uft-mobile
4ALM Octanehttps://hub.docker.com/r/lifecyclemanagement/octane/
6Service Virtualizationhttps://hub.docker.com/u/virtualization
7LoadRunnerOfficial docker image for load generators for LoadRunner Professional and LoadRunner Enterprise: https://hub.docker.com/r/performancetesting/microfocus_onelg_linux_ubuntu
8Autopasshttps://hub.docker.com/r/mfsharedtech/apls/tags?page=1&ordering=last_updated

I hope you find this article useful. Do share your comments and feedback on what you think.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s