Docker — Another QA Tool of the Trade

We recently discussed the advantages of using the KVM open source server virtualization tool to facilitate the creation of QA environments during a software development project. Virtualization also brings a myriad of conveniences to other areas of modern IT. Docker, an even newer virtualization technology, leverages a container framework to provide other significant advantages compared to KVM and older virtualization tools.

In addition to an improved virtualization model, what does Docker bring to the table for the QA professional? Is it something your team needs to consider implementing on a trial basis? Let’s take a closer look at the details.

Docker encapsulates Applications within Software Containers

In its simplest definition, Docker allows you run applications within their own software-based container. It is a relatively new open source project that saw an initial release in March 2013. Over the past three years the tool has rapidly grown in popularity among IT professionals of all stripes.

A major difference of Docker’s container model compared to a typical VM is applications are able to share binaries and libraries as well as the underlying server operating system. This lets you encapsulate an application’s entire infrastructure in one package, making deployments of all types — including QA — an easier process. This is one of the reasons for Docker’s wide popularity in the Agile era of enterprise development; IT departments are able to accomplish more with less.

In fact, the financial industry was an early adopter of the nascent container technology, with three large banks using version 1.0 of Docker, according to company vice-president, James Turnbull, in a discussion with ZDNet. The conservative financial IT world still has COBOL apps in production, and to see it embrace Docker so quickly truly speaks to the efficacy of the technology.

A More Efficient Form of Virtualization

Docker’s container technology uses less server horsepower than standard VM virtualization. This allows companies to run four to six times as many applications on one server instance inside a container compared to using virtual machines. All container apps need to use the same operating system, though, unlike VMs which can each run its own guest OS.

The potential for significant cost savings in server hardware is immense.

Docker’s Advantages for the QA Process

The container model leveraged by Docker makes an application highly portable.  Deploying software on different servers now becomes easier, which is a boon for QA professionals needing to run an app through performance and acceptance testing. This standardization of containers also enhances interaction between the different roles of a software development team, as the Docker model is supported by many other collaboration tools like Chef or Vagrant.

QA engineers are also able to run Docker on their own local machine, which provides another mechanism for accomplishing more without having to depend on network engineers to manage their own test environments. Ultimately, Docker is a tool that fits perfectly with the new methodologies ushered in by the DevOps era. Expect its popularity in the technology world to continue to grow.

Watch for future posts on the Betica blog as we take a closer look at the ever-changing world of the QA professional.

News from the World of QA — March 2016

This week’s Betica Blog post focuses on some of March’s more interesting news stories from the QA world. If you want to check out the QA news from last month, take a look at this blog post. The topics contained within hopefully trigger some inspiration on your own software testing efforts.

Software QA Engineer makes the Top 10 Happiest Jobs List for 2016

Those of you working in software quality assurance tend to be happier compared to most other professions, a fact revealed by Software QA Engineer making the CareerBliss list of the Top 10 Happiest Jobs in 2016. This news appeared in Forbes. While software testing can be stressful at times, its advantages definitely outweigh any negatives, especially considering the opportunity to work on innovative technologies.

The tech world in general is well represented on the top ten list, with Full Stack Developer, Android Developer, Senior Java Developer, Chief Technology Officer, Lead Developer, and Lead Engineer all present. Software QA Engineer placed at number 9.

For comparison’s sake, the two highest-ranking jobs on the CareerBliss Top 10 Unhappiest Jobs of 2016 list are Sales Account Manager and Security Officer. Revenge of the Nerds finally comes true!

Performance Testing Still Important in the Agile Era

Even in the current fast-paced Agile era of software development, different aspects of software testing remain relevant, especially performance testing. News about slow web applications goes viral on social media within a few hours. This week, the developer website DZone reported on some performance testing fallacies your QA team needs to consider.

Simply throwing hardware at a performance issue isn’t the best solution. Maybe a memory leak is the source of the problem? Ensure the right amount of performance testing is done before an app reaches production; especially if the development team is possibly overconfident in its own abilities.

DZone also noted the difference between speed and perceived performance in the Agile era. Even with fast load times, customers may feel an application is slow if it takes too long to access their desired information. In this scenario, maybe the user interface design is too complex?

Additionally, the testing team shouldn’t let an absence of errors during validation lull them into a false sense of security about an application’s performance once it hits production. The bottom line is simple. Performance testing remains vital in software development.

Apple’s iOS 9.3 Activation Bug reveals poor QA

Sometimes even the technology giants get QA wrong. Apple’s recent iOS 9.3 update for the iPhone and iPad contained a bug in the activation process that essentially bricked older devices — most notably the iPad 2. This news was reported on in Computerworld among many other sources.

When installing this update, a user is prompted for their Apple ID and password. If they didn’t remember their credentials, or simply mistyped the password, the device stayed hung in an activation cycle, unable to be used. Cupertino quickly released an update without the password requirement for activating the new OS version.

The moral of the story: test updated software on ALL supported devices. Stay tuned to the Betica blog for future stories of interest for QA professionals all over the world.

KVM Virtualization and QA

As we’ve previously noted, the advent of Agile and DevOps methodologies puts the onus on QA professionals to wear many hats, which also includes completing any software testing at a much faster rate. In the current fast-paced business environment, QA teams increasingly depend on a variety of tools and technologies to make their work more efficient. One of these technologies is virtualization; a tool offering benefits to other aspects of Information Technology, including software engineering and network administration.

KVM virtualization, the “KVM” stands for kernel-based virtual machine, is a Linux technology facilitating the creation and management of virtual computing environments used for development and testing, among other purposes. This article provides an overview of this technology and its use for software QA.

A Closer Look at the Kernel-based Virtual Machine

Even though KVM is a Linux technology, it is able to host virtual environments running most major operating systems, including Windows, OS X, and, of course, Linux itself. As noted above, the use-cases for virtualization are numerous, and the technology’s status as arguably the most popular open source virtualization framework for the x86 processor family is a major reason for its popularity in many IT and software development shops.

KVM continues to see wide adoption among Cloud-based service providers, covering a myriad of applications. Enterprises leverage the technology to provide virtual environments for production software, as well as for development and QA. In short, virtualization offers a cost-effective and “green” solution, allowing businesses to concentrate their resource spending in other areas or simply improve their profit margin.

With KVM being a standard part of the Linux operating system, a wide array of support is available from the open source community.

Virtualization facilitates QA “Farm” Development

The Open Source Automation Development Lab (OSADL) is an organization championing the use of open source software in industrial and business applications. The group’s QA farm illustrates the advantages of using virtualization for quality assurance. Virtual environments leveraging KVM are used for both software testing as well as for computer hardware — PCs and embedded circuit boards.

Their work provides a great example of the wide range of applications made easier, cheaper, and more efficient by using KVM virtualization.

Managing Testing Environments using KVM

When considering the QA process, the easy management of test environments is the most obvious use-case illustrating how KVM virtualization benefits software testing. The advantages are numerous, with benefits ranging from saving money on hardware expenditures to the time saving gained from using virtual test servers and their easier management.

Since companies are able to create virtual testing environments quickly and easily, this is advantageous whether a software development shop is following modern methodologies like Agile or DevOps or even a traditional QA model. QA engineers can focus on ensuring the quality of the software without needing getting involved in network administrator tasks better left to the experts. In short, software shops of all sizes need to consider using KVM virtualization to make their work easier.

Stay tuned to upcoming entries on the Betica blog, as we look at other topics of interest to QA professionals all over the world.