Vagrant makes the QA Professional’s Life Easier

Previously on the Betica blog, we talked about Docker, a software container application used to package programs with their dependencies. In short, it makes the QA process go more smoothly, especially when migrating applications between servers dedicated to development, testing, and production. It is a fine example of the maturing concept of virtualization throughout the IT industry.

As shops try to fit more virtual environments and software containers onto a server, managing them can become a headache. Enter Vagrant. This open source management software helps you to run and configure virtual machines of all kinds, ultimately making the software development task an easier one.

Vagrant supports the Entire Software Development Process

Vagrant serves as essentially a lightweight software container — similar to Docker. Instead of encapsulating a software application, however, Vagrant packages an entire development environment. It provides a simple to use workflow easily supporting the way software gets written today.

Working with most major virtualization frameworks — KVM, VMware, AWS, and more — Vagrant belongs in the toolbox of any software development shop looking to facilitate the management and portability of development environments. Considering its status as an open source project, expect continued updates as the overall development world evolves. The application is compatible with today’s most popular operating systems — Linux, Mac OS X, and Windows.

Setting up a Vagrant virtual machine is a breeze. Simply tell the application the desired machine type, any software to be installed, and the means for accessing the VM. After a single command line entry, the new machine is installed and configured, and most importantly, the process is easily replicated on the desktop computer of every team member — software engineer or QA.

Even though Vagrant is written in Ruby, the tool is compatible with projects leveraging many other popular programming languages, including C#, Java, Python, PHP, and JavaScript. The application also provides an architecture that supports plug-ins, which means enterprising developers can add their own functionality to the software. Over Vagrant’s six-year history, many enhancements have been developed as plug-ins, which is another testament to the usefulness of the open source community.

Vagrant as a Compliment to Docker

While some feel Vagrant and Docker are competitors, essentially performing similar virtual functions, many shops leverage the two tools in a complimentary fashion. The infographic on this website clearly illustrates how to use both applications together to streamline the configuration and management of virtual machines as well as the virtual environments containing the application (in addition to its libraries and dependent components) to be coded and tested. Depending on the specific scenario, choosing one tool over the other is also warranted.

As the software development process continues to operate at an increasingly faster pace in this era of Agile and DevOps, smart shops need the tools that allow them to make enhancements and bug fixes at the speed of business. Vagrant is another application worthy of further exploration for those involved with software development and the QA process.

Keep tuned to the Betica blog for additional insights into the wide world of QA and software development.