|
![](/i/fill.gif) |
Darren New <dne### [at] san rr com> wrote:
> http://research.microsoft.com/en-us/news/features/nagappan-100609.aspx
I myself am quite fond of putting assert()s everywhere where it makes
sense. That has helped me catch tons of bugs which would have otherwise
been quite laborious to find later.
Another thing which I cannot stress enough is the importance of developing,
if possible (ie. if the program/library type is suitable for it), an
automatic regression testing program.
This would simply be a program which automatically tests the validity of
the program or library being developed. In other words, it runs it against
a set of test data and checks that the results are correct (or within
acceptable margin if the result is expected to be fuzzy). What makes it
regression testing is that every time a new feature is added to the
program/library, a test or tests are added to the testing program and,
most importantly, every time a bug is found in the program/library, a
test which triggers the bug is added to the testing program.
Thus every time a change is made to the program/library, the automatic
testing program can be run against it, and a huge amount of tests will
be performed automatically and easily, catching most bugs right there.
One project where I have done this is with my function parser library.
I have been developing it for something like 10 years, and during those
years I have also developed an automatic regression testing program
alongside it. It has grown to be quite large and extensive during the
years, and it works phenomenally. I'd say at least 90% of all bugs are
caught immediately by just running the testing program. That's a HUGE
timesaver.
--
- Warp
Post a reply to this message
|
![](/i/fill.gif) |