Test, Test and Test Again
snikkersnak writes "Richard Collins has written a piece about developers and testers; the article is arguing that in closed development these two roles have to be chained together one-on-one in order to reproduce the 'release early and often' effect of open source development."
I am in 100^ agrement hear. Far to often developer dont test and check they're code before they release it This resultsi n a poor edn-user experience. Tey wrok two fast always trying to git on to to the next thing.
Test test tst!!$
one tester for each developer?? bah, I have around 300 users^Wtesters.....
The best test environment is production. - Me
chrome://browser/content/browser.xul
The article is very good, but I disagree with the part of "one tester per developer". I don't believe there is a formula to use, since each system is/can be a different case. I don't have a good theoretical background about the subject, but for me it always seemed a good idea to divide the system in specific parts like 'login routine', 'add foo routine', 'database connection' (...), and then test them.
Too amateur?
Er Galvão Abbott - IT Consultant and Developer
welcome to the brave new world of 'anything will do' user driven content
There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
I think the trick here is for the developers to write lots of automated unit tests. This catches the vast majority of obvious bugs, and lets testers become more like "power users" or something. That is to say, rather than the testers writing bugs like "I did xyz and it crashed" they can write bugs like "it'd be great if this screen had a 'quick user lookup' field". The testers then begin to think of ways to improve and streamline the application, the end users get a better experience, and the developers have more fun because they're actually adding features rather than constantly fixing easy bugs.
Andy Glover has a good blog on testing and QA in general. He uses FitNesse and TestNG and various other Java testing tools so he's pretty up on all the latest junx.
The Army reading list
From my experience, open source software may be released early and often, but it sure isn't tested thoroughly. Sometimes it seems to me that it's not tested at all, when extremely blatant bugs appear in releases. (One of the recent ones I found is a Import dialog in Inkscape that doesn't alphabetize correctly. This isn't 1985, open source developers, alphabetization of a list of files is a solved problem!)
Of course, I also don't think "release early and often" is a good philosophy. If you release early, by definition you're releasing something that isn't yet ready for the public, and when the public uses it they're going to be disappointed and a lot less likely to try your next version.
Comment of the year
Just re-read his opening comment. I was imagining a class of physics students licking butter off of bread, and it may have led me astray.
As for the CS/Physics thing, I find physics grads (me, BTW) have a big weakness when it comes to 'correctness', and being able to simplify algorithms. If they can fix those weaknesses, they become better than ordinary CS grads. The same for CS grads not being able to break out of problems, if they can broaden their narrow focus on 'code elegance', they to can do great things.
See the original Netscape browser for an example of the awfulness of Physicist code, and regexp for an example of CS theory beating usability.
Of course, neither class of programmer have anything on an MBA implementing the company payroll as an Excel macro.
**TODO** Steal someone elses sig.
- The active development 'this may compile, and if it does, then it may work, but don't expect it to be stable' branch.
- The 'this stuff seems to work, but may still break' branch.
- The 'we think this stuff is stable now' branch.
On FreeBSD, for example, these three branches are called -CURRENT, -STABLE, and -RELEASE. Typically, only active developers run the -CURRENT branch, but a lot of people run -STABLE. People running either can file bugs, which make -RELEASE more stable, and people running important services run -RELEASE (and possibly keep a -STABLE box around for testing).Contrast this with closed development. In this case, the first branch will be internal-only, and snapshots of the second my be released as betas. This reduces the number of people testing both of these branches, which then has an impact on the stability of the third.
I am TheRaven on Soylent News
Don't forget The Career Programmer which discusses testers at length.
Have you read my journal today?
I've been a professional software developer for over ten years. Based on my experience, I can say with certainty that there are three main sources of bugs.
In order, they are:
1. Lack of sensible high-level design and architecture. This causes the bugs that require massive amounts of churn or ugly hacks on top of hacks to fix.
2. Source code that was written without regard for human maintainability/understandability/readability. This causes the bugs that take the longest time to investigate and which are the trickiest to fix without breaking something else without realizing it.
3. Lazy developers who neglect to thoroughly self-test their own work before calling it finished. This causes the most bugs in gener, but fortunately most of them are easy and quick to fix as they are mere oversights.
Moderator hint: a comment is neither "Flamebait" nor "Troll" if it is true.