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.

Beating the Average Software QA Tester : Strategies for Improving your Software Testing Skills

A good professional Software Tester is someone who never stops learning; they always have an insatiable thirst for knowledge.

Software technology changes quickly. As a result, we need to continuously keep learning new technologies, frameworks, and techniques. This remains one of the most rewarding aspects of the profession. Software testers able to keep up with these changes are worth their weight in gold to most IT companies.

Betica is a technology solutions provider specializing in Software Quality Assurance. We strive to provide superior customer service through our fast, detailed, and accurate software testing. We are proud of our procedures, which allowed us to establish a strong QA team made up of skilled professionals surpassing the industry average.

What follows are some traits necessary for becoming an excellent QA professional:

Always ask WHAT IF

What would happen if I do it this way?
What if the User is not familiar with the system and tried a different approach?

It is important to always ask this question: “What if?” Sure, following test cases is a vital part of the QA process. However, a good tester would not limit themselves to executing only what is written in the test cases.

Ensuring Quality and Quantity

These are the 1000 issues to be verified today”.

A good QA tester must know if the given tasks are achievable within the deadline. If not, they should be assertive to ask for an acceptable timeline to finish the task without sacrificing the quality of the result.

In Betica, we prioritize the quality and quantity of our work output. We are fully committed to provide high-quality services that will meet or exceed the requirements of our clients.

Think like a Customer

As Betica’s Core Value, we place ourselves in the customer’s shoes. Customers have a problem that needs a solution, we explore options on how to solve it, respect their choice and then help them achieve it. 

Effective Communication

Effective communication is a fundamental aspect of the software QA process. In Betica, we have competent QA testers with strong communication skills in order to work according to the client’s requirement and to be able to interact with other team members and clients.

Clear communication will enhance productivity by minimizing errors and reducing the time spent from retesting.

Practice Good Documentation

Documentation is an essential part of the software QA process. Testers are responsible for writing test documents, reporting bugs, and notifying the team about any issues through email. This will make the testing process easy and organized.

Good documentation should contain correct, complete, current, and consistent information so that the whole team can effectively execute their tasks.

Make the Right Decisions

A story was once told about a successful Bank President being interviewed by a reporter:

“Sir, what is the secret of your success?” a reporter asked a bank president.
“Two words.”
“And, sir, what are they?”
“Good decisions.”
“And how do you make good decisions?”
“One word.”
“And sir, what is that?”
“Experience.”
“And how do you get Experience?”
“Two words.”
“And, sir, what are they?”
“Bad decisions.”

The moral of this story is that there is nothing wrong with making mistakes as long as you learn from them, and use that newfound wisdom to make the right decision in the future.

These are the traits for providing the best QA service for our clients. In order to beat the average software QA tester, you must apply any or all of the traits in your day-to-day QA tasks. This will increase your chances to have a successful career as software QA tester.

The Changing QA Process in a DevOps World

There’s no denying that the advent of the Agile and DevOps methodologies have changed the way software gets written. DevOps, with its emphasis on collaboration and communication, especially fits in today’s fast-paced business world. Many enterprises now aspire to a continuous deployment model so new features or bug fixes don’t have to wait a few weeks before making it into production.

So how does a faster software development process affect Quality Assurance? Are QA engineers now stuck in meetings most of the day with minimal time to actually test software? What follows is a look at the changing process of QA in this era of DevOps.

Software Development: One Process and One Team

At many enterprises, the executive team perceives the task of software development as being performed by one group, even if legacy methodologies like the Waterfall are still in use. The distinction between separate software engineering, QA, and network administration teams doesn’t matter to them. With DevOps, this perception finally becomes a bit closer to reality with everyone working closely together towards the common goal of rapid software delivery.

For the QA role to succeed in the world of DevOps, automation and a robust set of tools to support the testing process are vital. This allows the QA engineer to accomplish more within an 8-hour day that now includes additional interaction with developers, network engineers, and business analysts.

Their ultimate goal is to find defects as quickly and as early in SDLC as possible. Continuous and automated software deployment in today’s business world makes the concept of a software release schedule almost seem quaint by comparison.

Automation is a Key for QA in the DevOps Era

Being able to automate the software testing process helps QA operate at the faster speed necessary in the DevOps era. Leveraging automation also speeds up the software build process — at the developer, QA, and production release levels.

Additionally, if the development staff follows TDD (test-driven development) principles, their unit tests will catch many programming defects, allowing QA personnel to direct a portion of their efforts towards other aspects of software or system quality. This is one example of how DevOps forces team members to share responsibility for the overall product, instead focusing on what used to be their own specific area.

In DevOps, QA can now serve a role as a final arbiter for overall system and process quality, a point emphasized by Carl Schmidt, CTO for Unibounce. “I’m of the mindset that any change at all (software or systems configuration) can flow through one unified pipeline that ends with QA verification. In a more traditional organization, QA is often seen as being gatekeepers between environments. However, in a DevOps-infused culture, QA can now verify the environments themselves, because now infrastructure is code,” said Schmidt.

So migrating to a DevOps methodology doesn’t make QA go away. In fact, with additional responsibilities on their plate, QA engineers depend on state of the art tools to accomplish more tasks at a faster rate. Ensuring quality throughout the process — including software delivery — is the ultimate goal.

In the upcoming weeks, we’ll look more closely at some of the tools used by QA personnel to help them do their jobs — whether on an Agile or DevOps project as well as any other software development methodology.