BSDCan2011 - Final (with audio).5

BSDCan 2011
The Technical BSD Conference

Julio Manuel Merino Vidal
Day Talks - 1 - 2011-05-13
Room Tutorial
Start time 10:00
Duration 01:00
ID 223
Event type Lecture
Language used for presentation English

Automated testing in NetBSD

Past, present and future

As you may already know, NetBSD is a BSD-like, free, secure and portable operating system. But, among all of these features, there is an extra feature that is now emerging: NetBSD is the operating system where automated testing happens.

During the last few years, NetBSD has seen the development of multiple technologies that permit testing of the system, which in turn increases the overall quality of the operating system. Among these technologies, we find atf, puffs, rump and anita.

In this presentation, you will learn what the technologies mentioned above are and how they help developers to write more robust code. You will also learn how these technologies help an end user (e.g. a system administrator) in ensuring that their system behaves correctly. Lastly, you will discover what the future development of Kyua will bring to NetBSD and, hopefully, to other BSD systems.

During the Google Summer of Code of 2007, I developed the Automated Testing Framework (ATF) for NetBSD. ATF provides a collection of libraries to simplify the implementation of tests in a variety of languages (C, C++ and shell) and a set of utilities to permit the execution of such tests in an automated manner. ATF was imported into the NetBSD source tree and, as part of the Summer of Code program of 2008, many existing legacy tests were converted to the new framework.

Around the same time, Antti Kantee worked on the development of puffs and rump, two technologies that allow running unmodified kernel code in user space. These technologies greatly simplify the creation of tests for critical component parts such as file systems and drivers with the confidence that such unprivileged tests will not crash a running machine. This, in turn, lets developers and users gain more confidence in their systems and shortens the development cycle of kernel-level code.

Lately, there has been ongoing work in NetBSD to put all these pieces together and to push towards a more testable code base. This has been achieved by defining testing policies and by setting up continuous build and test machines.

In this presentation, I will explain why automated testing of the NetBSD operating system is valuable, describe the current status of automated testing in the context of NetBSD, how other BSD projects could benefit from the work being done in NetBSD and what the future awaits. In this last area, I will explain all the ongoing work on Kyua, the successor of ATF, a new code base that will provide a more modular system, more robust code and new features like archival of historical test data.