I got my first job as a software developer and later pre-sales engineer in the mid-1990s at what was then a small Israeli company called Mercury Interactive. We specialized in automated software testing tools (for those of you that still remember WinRunner and LoadRunner – we made those). Mercury was also my first introduction into the worlds of business and enterprise software and the IT departments that developed and operated them.
The Rise of Controlled Testing
It was a very exciting time, back when software was only just becoming the business itself – conquering industry after industry. The benefit of developing new applications and features was clear to everyone back then. However, you may be surprised to hear that the need to specifically test, let alone automate testing was not obvious. In fact, many organizations Mercury approached did not even have a formal testing department. In most organizations testing was a side thing for developers to do when they “had some time”.
Mercury was a pioneer in test automation before most organizations even realized how critical testing was. In the following years, clear patterns were established as organizations quickly realized that without quality (both functional and performance) of their applications their businesses would not survive. Mercury educated the market on the importance of not only testing itself but also the development of autonomous testing groups. We touted automation as the only viable options to deal with the multitude of testing variations needed to assure high quality. As you might imagine, this brought Mercury great success and the company was eventually acquired by HP in 2006 for $4.5 billion.
Today, everyone agrees that software is the business and nobody questions the need to automate testing, QA and testing have become a critical component of the application lifecycle. This lifecycle that is currently undergoing a major transformation driven by the agility shift introduced by web age companies and consumer electronic giants like Amazon and Apple. As the world of business software and IT undergoes its current shift through the agile revolution I am seeing many parallels to my early days at Mercury in the mid-1990s – specifically the view that automation is imperative to the industry’s need to transform once again to meet the business needs of modern times.
Today “DevOps” is a hot topic and “Agile” has become the main goal for every software development and IT department I visit. No matter the industry or technical stack, everyone wants and needs to innovate faster. That is why continuous integration servers like Jenkins have become commonplace, why Infrastructure as Code tools such as puppet or chef are so widespread and why Application Release Automation solutions are sought after these days. The industry is finding ways to meet the demand of the business.
One very interesting new development I am spotting is one that I am personally attached to: the marriage and seamless integration of the automated testing and deployment worlds. The ability to bring together the entire lifecycle of development/test and operations is a crucial step toward a future state of true, unattended continuous delivery. The latest introduction of Automic’s plugin to HP Quality Center, Unified Functional Testing and LoadRunner (the latest incarnation of the very products I worked on at Mercury) holds sentimental value for me. Now I am seeing our customers truly running automated deployment pipelines that include integrated test plan execution and quality gates for controlling automated package promotion across the application lifecycle – it's come full circle for me.
Perhaps it’s time to rename DevOps to DevTestOps?