Exploring openSUSE's automated testing tool for ISO images
Bakers and burners
Quality Assurance is "like a baker testing his recipe for a cake by trying it once it is out of the oven," says Bernhard Wiedemann, inventor of openQA. OpenSUSE's openQA project is a powerful tool for testing Linux distributions – and even Android images.
Life's too short for manual testing, says the website for openQA [1] (Figure 1), and most software developers will agree. Many developers feel like Charlie Chaplin in Modern Times, working in a factory, repeating the very same steps over and over again.
Most available server software, especially when it is offering APIs, can be tested by specially written clients that perform the very same tasks over and over again, counting success or failure. But what about desktop software, and what about distributions?
Some years ago, the openSUSE project suffered from a severe lack of testing and human testers. Nobody wanted to do the tedious clicking-watching-comparing job. But somebody had to do it, and they did it fairly well, it seems, at least if you look at the success that SUSE and openSUSE have had in recent years. However, the developers saw much room and need for improvement, and, as QA experts often warn, "human QA does not scale."
Even worse, "Distributions got complicated," says Bernhard Wiedemann of SUSE, who invented openQA in 2010. In his talks at conferences, Wiedemann loves to show an urban power pole covered with a huge mess of cables. "Finding the root cause of an error," he explains, "is like trying to find the right cable to your house." So, he started the openQA project.
According to the openSUSE project, "openQA works by booting up an ISO image (which is automatically generated daily from the Open Build Service) in a virtual machine. It installs the image, boots, starts some applications and does a few simple actions. It takes screen shots during that process and then compares the screenshots it just took in the VM with what was expected."
Automate it!
Wiedemann's major aim was to implement "frequent in-depth testing of operating systems and functions, (…) by a tool that works entirely hands-off." He wanted to "enable developers to catch and fix issues faster, roll back to yesterday's versions, and find out who changed what. And, he wanted the whole suite to be integrated into (open)SUSE's toolchain, which is why openQA had some of its roots in SUSE's old-time deployment tool AutoYast.
The shortest way to explain what openQA does is the quote from SUSE people themselves: "openQA is an automated testing system that runs daily tests on the openSUSE Development tree named Factory." Recently, the rolling release Tumbleweed took over Factory, so openQA has focused on testing the Tumbleweed release (Figure 1).
What For?
Today, openQA is helping the openSUSE community for a variety of purposes. Developers used openQA to determine if a special openSUSE Factory/Tumbleweed build works, to give Factory users an idea about the current quality, to find serious bugs as early as possible, and to track the source of bugs.
The software does fully automated installation and upgrade testing, daily regression testing, application and network testing, and benchmarking for new ISO images, providing a strikingly clear overview of the test results, along with screenshots and videos.
These image collections are used by other teams as well: The documentation team and speakers use these up-to-date images, and sometimes the marketing team uses videos to help promote new releases. If you ever need a screenshot of a Linux system booting, just go to the openQA website [1] and pick one.
How Does It Work?
Digging into the details, you'll find several Unix/Linux dogmas applied at their best, like KISS (Keep it simple…): If a new ISO image pops up in a directory, openQA will simply fire up a KVM/Qemu virtual machine with this ISO as boot media (and some specific environment variables).
Buy this article as PDF
(incl. VAT)
Buy Linux Magazine
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters
Support Our Work
Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.
News
-
Juno Tab 3 Launches with Ubuntu 24.04
Anyone looking for a full-blown Linux tablet need look no further. Juno has released the Tab 3.
-
New KDE Slimbook Plasma Available for Preorder
Powered by an AMD Ryzen CPU, the latest KDE Slimbook laptop is powerful enough for local AI tasks.
-
Rhino Linux Announces Latest "Quick Update"
If you prefer your Linux distribution to be of the rolling type, Rhino Linux delivers a beautiful and reliable experience.
-
Plasma Desktop Will Soon Ask for Donations
The next iteration of Plasma has reached the soft feature freeze for the 6.2 version and includes a feature that could be divisive.
-
Linux Market Share Hits New High
For the first time, the Linux market share has reached a new high for desktops, and the trend looks like it will continue.
-
LibreOffice 24.8 Delivers New Features
LibreOffice is often considered the de facto standard office suite for the Linux operating system.
-
Deepin 23 Offers Wayland Support and New AI Tool
Deepin has been considered one of the most beautiful desktop operating systems for a long time and the arrival of version 23 has bolstered that reputation.
-
CachyOS Adds Support for System76's COSMIC Desktop
The August 2024 release of CachyOS includes support for the COSMIC desktop as well as some important bits for video.
-
Linux Foundation Adopts OMI to Foster Ethical LLMs
The Open Model Initiative hopes to create community LLMs that rival proprietary models but avoid restrictive licensing that limits usage.
-
Ubuntu 24.10 to Include the Latest Linux Kernel
Ubuntu users have grown accustomed to their favorite distribution shipping with a kernel that's not quite as up-to-date as other distros but that changes with 24.10.