The past decade or so has been an exciting time for software developers. Project methodologies have moved away from rigid, staged structures. They are embracing more fluid, fast-paced agile models.
We now live in a hyperconnected world. The internet is penetrating emerging markets. Social media is exploding. IoT technology is getting increasingly sophisticated. This translates to an exponential rise in demand for software products and services. Which in turn means software needs to be delivered at breakneck speeds.
Software developers have benefited from this demand. They have adopted modern technologies powered by cloud computing and artificial intelligence to advance exponentially in recent years. Yet QA, particularly test automation, has advanced only linearly.
Let’s look at some of the advances in software development that have deeply impacted the way companies keep up with the demands for new software.
The agile approach to software development was first introduced in 2001. It was an alternative to the traditional waterfall methodology.
Waterfall had its benefits. The need to document and sign off every step before moving to the next meant error-free code and pristine quality. But around the turn of the millennium, the need for larger scale and faster releases far outweighed the need for perfect code. Moreover, waterfall often led to software that was already outdated as soon as it was released. Thus, the emphasis shifted from quality to speed, and hence agility.
“Iterative” and “prototyping” models, focused on incremental builds, evolved into the Agile approach. Agile embodied flexibility, responsiveness and teamwork. The Agile manifesto values the following:
Agile has become the de facto norm for software development projects. 20 years may sound like a long time. But it’s impressive that an entire global industry has switched course in such a significant manner. Agile adoption within software development teams has increased from 37% in 2020 to 86% in 2021. The agile approach has inspired models such as Scrum, continuous integration and continuous delivery (CI/CD), and DevOps. These models are now the mainstream of the development world. And agile models are even being adopted in non-IT functions, such as marketing, finance, HR and general management.
The concept of no-code and low-code systems is not new. Even in the 90s, businesses sought a middle ground between expensive custom builds of information systems and cheaper ready-made solutions that did not meet all their needs. Soon we had platforms such as WordPress, Wix and Squarespace offering the masses a way to build entire websites without developers. Just a few years prior, this was being done by seasoned software engineers at the biggest companies.
Cloud computing has made it easier to break up the coding divide. We now have a burgeoning automation industry. Robotic process automation (RPA) is helping offload mundane administrative processes. SMEs are using RPA to focus on core activities. Intelligent process automation (IPA) combines AI and RPA to help enterprises learn from their processes. They can scale or optimize their operations more easily. Drag-and-drop and plug-and-play have opened up software configuration, management and optimization to a previously untapped population of “citizen developers”. Business-centered, non-technical resources can help digitize and scale operations faster than ever before. The possibilities are, at least theoretically, limitless.
Software developers can offload some of their increasing workload to automation. This means they can use their sophisticated technical skills for more advanced programming. And this helps cut the time to market for new products and services.
In 2004, Selenium was seen as the next step in software testing. As an open-source testing solution, it certainly was an inflection point for quality assurance. It opened up the self-contained testing phase of software development to a global community of coders and testers. It stimulated innovation in QA. It helped create the shift from manual to automated testing. This shift was roughly aligned with the shift in development models to agile approaches. Software was being developed faster, tested faster and delivered faster.
Selenium became the go-to test automation framework for QA. It has remained so to this day. Yet, when we break down the evolution of Selenium over the last two decades, the pace of innovation does not quite measure up.
Let’s look at how Selenium has advanced over the years:
Notice the linear progression of Selenium. You’ll see that the creators keep adding on features piece by piece, incrementally, within the ecosystem. But they have not yet opened the platform up to a scope beyond Selenium practitioners.
To fully use Selenium, you need to deploy skilled test engineers. These engineers need to learn the framework, navigate its editions and write test scripts.
The latest version of the platform may allow us to record actions from the UI, but those actions still need to be processed through the backend. The latest approach of wrappers may reduce complexity by abstracting it, but you still need to write code to create the wrappers!
Using Selenium – the current standard for QA – needs programmers and test engineers. This means spending the scarcest of resources today: time.
Test maintenance takes time – ask any quality engineer. If you need to write scripts to harness the best features of testing automation, your team can fall into the trap of the test automation paradox. They spend time automating tests, then spend more time maintaining them or fixing them. This results in less time for automating more tests. Test maintenance makes testing always lag behind the exponentially faster development life cycle.
Innovation in software development has taken it outward, connecting to non-technical business users, across operating systems, browsers, servers and networks. Even across geographies, skill sets, business functions and industries. It is breaking silos, resulting in exponential progress.
But innovation in QA has stayed contained in one ecosystem. It has built on the same bedrock of a very specific skill set, looking only inward. It is circling around the periphery of a two-decade old technology when the rest of the industry (and SDLC) has branched out. In short, it has stagnated.
But it needn’t be like this. Test automation can take the exponential leap it needs simply by adopting AI. Functionize already delivers on this proposition.
Functionize uses machine learning and Deep AI to avoid Selenium’s limitations. Self-healing features help tests evolve in parallel with your application, eliminating test maintenance. The Functionize Test Cloud helps deliver nonstop testing at an unprecedented scale. Architect, our smart test recorder, helps create a rich ML model of your application. It simplifies test creation even for power users. And our visual-testing approach helps bridge gaps between developers and business users.
The AI era ensures that we no longer have to be satisfied with a linear progression in innovation. QA has been lagging behind the curve, but it doesn’t need to. Book a demo with us to find out how Functionize can help your QA team take an exponential leap in productivity.