Software Testing Blog

Samba: Adventures In Extreme Unit Testing

We’re expanding beyond our annual Coverity Scan Report to create a series of open source project spotlights. Our first spotlight features Samba, a long time participant in the Coverity Scan service and practitioner of extreme unit testing–which they fondly refer to as “torture testing.”

Samba is the standard Windows interoperability suite of programs for Linux and Unix. Since 1992, it has provided secure, stable and fast file and print services for all clients using the SMB/CIFS protocol, such as all versions of DOS and Windows, OS/2, Linux and many others. The goal behind the project is to remove barriers to interoperability. Samba is a software package that gives network administrators flexibility and freedom in terms of setup, configuration and choice of systems and equipment. Because of all that it offers, Samba has grown in popularity, and continues to do so, every year since its release. It has more than 70 developers with 20 highly active developers around the world, with concentration in Germany, Australia and the United States.

Samba has a long tradition of delivering high-quality software. When the project first joined the service, the developers fixed all 216 of the defects found through the Scan analysis in less than two weeks; they have fixed close to 2,000 defects through the service since 2006. Today, they boast a defect density rate of .59 which is lower than the average defect density rate in like size commercial and open source projects.

One of the most unique testing techniques that the Samba team uses is torture testing. According to Volker Lendecke, one of the lead developers on the program, the Samba team’s torture testing makes the software do things nobody else would do by asking nasty questions and identifying all of the corner cases to minimize any surprises.

 

Read more about Samba’s torture testing in the Coverity Scan: Samba Project Spotlight.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Current day month ye@r *