About

Welcome to Panela, Matt Harrison's take on mostly Open Source, Linux, Python, innovation in those areas, other buzzwords and Dick Proenneke. It comes complete with the illustrations as needed. Note the opinions expressed here are merely my opinions and not the opinions of my employer.

about Matt

Calendar

««Nov 2009»»
SMTWTFS
1234567
8910
11
12
1314
151617
18
192021
22232425262728
2930

Mailing List

My RSS Feeds








Testing - an afterthought for opensource?

posted 2005.07.20 Wed
From my experience commercial testing of software consists of manual qa (grunt labor). Little is automated. I personally feel that even with a slight investment by developers to create unit tests, that effort would pay off later (especially in the crunch time before a big release where fixing a bug may cause others). I guess it is hard to justify ROI on testing, thus there is little emphasis on it. Now let's leave the cathedral and head to the bazaar.... Which leads me to another chart.
I recently patched and help port two open source projects, and when I asked the main developers if they had unit tests, they indicated they only did manual testing. This is pretty widespread among smaller projects and I would venture to say many desktop apps. Yet as projects grow bigger they tend to have some sort of unit or regression tests, and testing improves.... or does it? Within the past two days I read two articles that highlight the continuum of different levels of testing done to open source software. One was a slashdot article asking if there were any opensource tools available for load testing and qa? It wasn't even given space on the frontpage of slashdot (shows how important testing is to the editors of slashdot...), and recieved very few responses. It seems like most people buy an expensive solution or roll their own. (Much $ spent or much re-creation of the wheel). The second discussed Coverity's static analysis of FreeBSD declaring that they found a potential of 306 bugs. We've all heard the argument that "many eyes make bugs shallow". There is some truth to that, and you see it in the bigger more widespread projects. As people use the project in their own way, they find bugs, and (hopefully) either report them or send patches. But usually this is an uncoordinated effort. There is little aggregation of tests (other than unit tests). Also, eyes aren't as able to catch things that tend to get exposed during a good load test. (I'll call the green line the sum of all the testing that goes into a project). When performance, stress, or load tests are done, are they being returned to the project and aggregated there? How much of this is repeated by end users who perform these types of tests? How much is implemented in house (not by the project)? How much time and energy could be saved (or put into new testing) if this information was aggregated and shared (see red line in chart)? Maybe testing just doesn't itch very much, or we don't like to scratch it.... Any examples of projects that are particularly good at testing?

tags:          

links: digg this    del.icio.us    reddit




1. a random John left...
2005.07.22 Fri 9:56 am

When I was working at Thiokol I found an article online about the development process for the software that runs on the shuttle. As you can imagine they have a very careful development process. I'll see if I can find it.


2. Grig Gheorghiu left...
2005.07.27 Wed 12:06 pm :: http://agiletesting.blogspot.com

I found your blog entry by following a link from my referrer log. I think there's plenty of open-source tools for testing, but testing itself is seen as a second-hand activity by most non-agile shops. Testing does get first class citizenship in agile (i.e. XP, Scrum, etc.) environments, although there's a big emphasis on unit tests there and less on system/integration/load/performance/stress tests.

As for your question about performance/stress/load tests being repeated by end users, I very much doubt this is the case. On most projects, you need people with a deep understanding of system architecture/network infrastructure/database optimizations to perform these types of testing. So I'm afraid they're simply not done.


3. Matt left...
2005.07.27 Wed 10:40 pm

Grig- Thanks for the comments. I guess I should have clarified what I was saying by "end users". My bad. I meant your ISV/fortune 1000 type companies using open source, who often times will have a "performance engineer" in house.

I am pretty sure your average 16 year old linux 3l33t user could care less about testing.


4. Paul Dietz left...
2005.08.01 Mon 2:35 pm

A few years ago I decided I wanted to contribute to development of free Common Lisp implementations (there are a half dozen or so of these.) Looking at what they needed, I decided testing was the biggest lack.

I ended up putting together a set of black box tests driven by the ANSI CL specification. The suite now has over 20,000 tests in it. I also wrote a random program generator to find compiler bugs. This tester has generated hundreds of millions of random (but legal) programs and has found bugs in every implementation on which it's been tried, free or commercial. This test suite is in the GCL CVS tree.

I think the presence of a high power test suite has noticably changed the dynamics of development of the free lisps. Standards compliance is up and the developers are more willing to make daring, dangerous changes knowing that testing is more likely to catch regressions.

I encourage anyone wanting to get involved with a free software project to consider testing. High quality testing is a very creative activity, and can be just as personally fulfilling as development of the software product itself.


5. Alan Little left...
2005.08.11 Thu 2:37 am :: http://www.alanlittle.org/weblog/

> developers are more willing to make daring, dangerous changes knowing that testing is more likely to catch regressions.

I abolutely agree. A good suite of unit tests really feels like a great safety net if you want to do big refactorings.


6. mooo man left...
2005.11.21 Mon 9:12 am :: http://mooo.be

I abolutely agree.


7. Stevan left...
2007.03.02 Fri 2:04 pm

The Perl community, and the CPAN in particular, has a very strong culture of testing. Older CPAN modules sometimes tend to have less tests, but the newer modules (and some heavily used modules like DBI, etc) tend to have very good tests suites. There is even a CPAN Testers group which will run these automated test suites on multiple platforms and report back to the module authors on their results. I would suspect that a lot of this comes down to the fact that Perl has an excellent assortment of testing tools/modules available and the community itself places a high value on using these tools.