Content Copyright © 2023 Bloor. All Rights Reserved.
Also posted on: Bloor blogs
Keysight Eggplant is a test design automation platform that leverages AI and other technologies to test “through the eyes of the user”. It has many significant qualities (some of which I have discussed in previous articles) but in this blog I’m going to talk about the ways in which it can enable continuous testing and feed into your CI/CD pipelines (Continuous Integration/Continuous Delivery) pipelines.
For starters, I should establish what continuous testing is. In brief, continuous testing is the ability to incorporate testing as part of your automated software delivery pipeline. Ideally, it involves running automated tests at every stage of your system or application under test’s lifecycle, ensuring that your system a) works and b) feels good to use after every release. This will usually include testing during your system’s development, build, deployment, and post-deployment phases. Doing so effectively will often require you to “shift left” and “shift right” with your testing efforts, moving them earlier and later, respectively, from where they have traditionally lived in the aforementioned lifecycle.
There are significant advantages to this. For shifting left, you get to test earlier and thus find problems sooner, particularly the kind of thorny design problems that can be easy to find and correct early on but almost impossible to rectify later, once so much of your system has been built on top of them. Shifting right, on the other hand, allows you to monitor your system even after deployment and proactively detect and correct any lingering bugs or performance issues that crop up. In both cases, you learn about (and can thus act on) any issues as soon as possible. What’s more, continuous testing is the only meaningful way to incorporate testing as part of CI/CD, and indeed, to create a reliable CI/CD pipeline at all – it is, after all, rather unwise to launch new releases without testing them first.
The end result is that testing stops being an afterthought that is added on to the end of the development process, but is instead positioned as an integral part of that process and every step within it. Moreover, this can be accomplished and enforced using the actual, underlying mechanics of your CI/CD pipelines, requiring you to perform frequent tests in order to make new releases. While this may sound inflexible (and to a certain degree it is), this inflexibility is extremely valuable if what you’re after is consistency and strong governance.
It should be obvious that automated tests are a strict necessity for continuous testing. Manual tests lack the speed, and indeed the automation, that is required. A robust degree of integration is also important, in order to slot your testing solution seamlessly into your CI/CD framework. Having the capability to test effectively at all of those different development stages is important, too – an effective testing platform during development will not necessarily be equipped to monitor performance after deployment, for example.
Eggplant checks all of these boxes and then some. It offers highly automated testing driven by AI, and the fact that it automates test design as well as execution means that your tests can be automatically updated and regenerated as part of your CI/CD pipelines, ensuring that your tests are not only executed before each release but that they are up-to-date as well. It provides exceptionally wide integration via its universal fusion engine and visual, non-invasive testing paradigm (both of which combine to allow it to test on practically anything), as well as various adapters designed for CI/CD. It offers functional and nonfunctional testing (including, say, performance and load testing) and can automate the latter as well as the former. Fleshed-out monitoring capabilities are available, too. In short, Eggplant is a very competent platform for driving your continuous testing (and indeed your CI/CD) efforts. If that’s what you’re after, you should give it some serious consideration.