The benefits of a cloud-based testing regime [Q&A]
DevOps teams are under constant pressure to release faster, improve quality and keep costs under control. This means testing increasingly becomes a priority to ensure accelerated releases and many companies are turning to cloud-based testing tools.
However, as with any move to the cloud, there are some challenges that need to be overcome. We spoke to Uzi Eilon, chief technology officer at cloud-based testing platform Perfecto to find out more.
BN: It seems like everyone is moving everything to the cloud. What are the benefits of cloud-based testing and what has caused the shift to cloud-native solutions?
UE: It seems like everyone is moving to the cloud because everyone is. Talking with customers and prospects, more than 90 percent of them have started to move their IT operations to the cloud within the last year or two.
For those beginning, or those looking to advance their cloud journey, testing is a perfect fit for the cloud. Because testing has become such an automated process that needs to be executed every single day multiple times, a cloud environment provides the flexibility, performance and availability needed to ensure quality throughout the software delivery lifecycle (SDLC). For app developers especially, the cloud gives them access to all the devices and carriers (across mobile and web) they need to be testing on.
BN: What limitations are associated with on-premise solutions for testing?
UE: Because there are so many businesses moving to the cloud, the speed at which it is evolving to meet their collective and individual needs is fascinating. Looking back to a few years ago, most people were scared to move to the cloud. However, no one is really 'scared' of it anymore; instead they're choosing the cloud over on-prem solutions in many situations today because of the benefits it brings.
For one, on-prem solutions cannot accommodate the astronomical number of devices that developers must be testing on. Typically, they can only test one device at a time -- and the minute you upgrade that device to the latest and operating system or browser, it's nearly impossible to downgrade again. What's more, when leveraging an on-prem solution, the most recent version of the iPhone isn’t available for testing until someone actually goes out and purchases the new device. With the cloud, access to new devices and operating systems is almost instantaneous. Considering the rapid pace at which devices are being released today, there could be anywhere up to 20-32 different devices and operating systems testers may be using at any given time. To ensure applications are working on all of them at all times, a range of them must be available to dev teams; the cloud is the only economical and reasonable solution.
When working with on-prem solutions, there are also major Wi-Fi restrictions when it comes to the testing environment. While the sheer number of devices in play at any given time is overwhelming in itself, you must remember that these devices also run across different providers (e.g. ATT, Verizon, Xfinity, etc.), which can also impact an app's performance. With on-prem solutions, dev teams are limited to only the locally available providers and the corresponding network and signal strengths. The cloud mitigates the problem by ensuring optimal (and adjustable) signal strength across providers.
BN: How do cloud solutions help extend Agile strategies and DevOps?
UE: As more organizations adopt DevOps, they're finding there is much more fluidity to how they work -- as well as where they work. While teams are becoming more distributed across offices and locations, there’s a growing need for them to be able to simultaneously work on the same code at the same time, managing it all across development, testing, deployment and so on. The cloud allows those teams to work together in real-time -- regardless of their location -- to make the appropriate updates and changes. Additionally, DevOps processes rely on automation flows and resource availability. Cloud solutions improve both, helping to run unattended, always-on automation scripts across devices. This ensures accelerated time-to-markets and high performance/quality.
And, of course, there’s always the money; there's also an economical advantage to utilizing the cloud. When working on-prem, teams are required to reproduce their lab in every location, which can be pricey. The cloud, however, offers a more cost-efficient and practical approach to conducting frequent tests that span a number of devices and digital environments.
BN: There's been a lot of talk about how cloud migrations can be tricky. The main challenges seem to revolve around reusing existing assets and ensuring the cloud is secure, how do DevOps teams overcome these?
UE: Today, automation technologies are based on a few common standards such as WebDriver, Espresso and XCUItest and the cloud can execute the same scripts that have been developed for them. On top of that, mature clouds-based test environments also let users add advanced options to get more value from their scripts, in addition to helping incise the automation coverage.
In regard to security, we're finding that, today, big enterprises prefer the cloud because of how secure it is. Unlike a server room only protected by a physical layer of security with locks and cages, the cloud can provide private, segregated networks running on an individual VPN.
BN: What are your recommendations for enterprises looking to get into cloud-based testing? Where should they start?
UE: The first thing any organization should do is make sure they truly understand the cloud and the benefits it will bring to their development lifecycle. Does the cloud you plan on using support the right resources? Whether you need to support, web, mobile or both, it’s important to confirm your cloud environments are built for all the right platforms.
And don't forget the importance of pairing the right analytics tools with your cloud set-up. When conducting thousands of test executions in the cloud every day, you can't understand the data without strong analytics. While the cloud is great for high-performance and cost-effectiveness, unless you conduct the analysis you won’t be able to get any real value out of it. However, by leveraging the cloud and pairing it with top notch analytics, DevOps teams can extend their Agile strategies and benefit from the flexibility, performance and availability needed to ensure quality throughout not only the testing process, but the entire SDLC.