Tapper is an open source infrastructure originating at AMD for all aspects of testing including Operating Systems and Virtualization. Its goal is to help QA departments to maintain a complete test life cycle from planning to execution and reporting. It provides independent modules to adapt to different levels of QA requirements, from simple tracking and presenting test results to complete automation of machine pools multiplexing complex virtualization use-cases with detailed data evaluation.

Tapper includes:

  • Automation
  • Machine Scheduling
  • Command line utilities
  • Web Frontend application
  • Support for writing tests
  • Powerful result evaluation API
  • Testplan support with TaskJuggler

Downloading Tapper

Get Tapper through the open source product pages:

Features and Benefits

Automation

  • Network boot and machine self-setup
  • Image-based or kickstart/autoyast based installation
  • Support for virtualization setups (Xen and KVM)
  • Inject packages, programs, files into hosts/guests
  • Control execution of test scripts in hosts/guests
  • Complex timeout handling for complete test cycle, inclusive virtualized guests

Scheduling

  • Optimize utilization of pools with “not enough” machines for “too many use-cases”
  • Multiplex queues of freely definable use-cases (e.g., Xen, KVM, baremetal kernels, ad-hoc tests, benchmarks) with different bandwidths
  • Feature driven host matching (by memory, cores, vendor, etc. or complex combinations)
  • Host/queue binding for dedicated scheduling
  • Auto re-queuing for continuous testing
  • Multi-host scenarios

Web Application

  • Providing a “management view” and high-level test result evaluation
  • Overview lists and detailed zoom-in, GREEN/YELLOW/RED coloring
  • Result filters for time, testsuites, machines, success status and RSS feeds
  • Control start of testruns

Result Evaluation

  • Programmable API to complement to the web frontend
  • Allow complex queries on the test result database, combining SQL and XPath like queries in an abstract way
  • Presentation about the query interface at the YAPC::Europe 2009

Correlation to autotest.kernel.org

The main focus of autotest.kernel.org project is on testing the Linux kernel. It provides a broad coverage of kernel functionality testing and wrappers of many existing test suites.Tapper provides many complex scenarios, like virtualization (Xen/KVM), distribution testing (RHEL, SLES, Debian), SimNow testing and benchmarking. Tapper can schedule them all multiplexed with according bandwidths over large or small machine pools. The autotest.kernel.org client can be used in a Tapper infrastructure via a thin wrapper that utilizes the TAP export we provided to the autotest project. Tapper then complements it with Testplan support, a result database and a homogeneous result evaluation API.

Testplan Support

  • Testplans combine many Tapper features into concise points of interest
  • Manage testplan hierarchy of specfiles
  • Interoperation with TaskJuggler on dedicated QA tasks for automatic scheduling and reporting

Support for writing tests

  • Format test results based on standard Test Anything Protocol (TAP)
  • Existing standard TAP toolchains available for about 20 programming languages
  • Dedicated Tapper support for Shell, Perl, Python available

Many possible use-cases

  • Kernel testing (stress, function, reboot)
  • Virtualization testing (Xen, KVM)
  • Test matrix of host/guest combinations
  • Distribution testing (like Operating Systems or compilers)
  • Benchmarking

Technologies

  • Test Anything Protocol (TAP)
  • Core system written in Perl and CPAN
  • DB independent, developed on MySQL and SQLite
  • Language agnostic testing (e.g. Perl/Python/Shell test suites)
  • PXE, GRUB, TFTP, NFS boot automation

Support

This is an open source project and support is offered in the project pages.