William Stein wrote:
>> The fact is that bugs are found via
>> experimentation, not by reading source code.
> 
> This is not a fact!    I have a lot of experience finding and seeing
> bugs found, and I can tell you in no uncertain terms that a huge
> number of the bugs found in Sage are in fact found by reading source
> code.   Very often when reading the source code for part of a program
> (such as Sage), one very naturally thinks up corner cases that will
> break the code, which would be highly unlikely for one to think of
> without reading the code (but of course will get hit in practice,
> maybe unbeknownst to the user).   So the above assertion really
> doesn't agree with my personal experience.


+1.  Spoken like a true mathematician, who, while reading statements 
(code), is always thinking of the assumptions behind the statement and 
what would happen if those assumptions are not true.

I've found lots of bugs by reading source code, and I know others in the 
Sage project (cwitty, for example) that also browse source code and find 
bugs.  Often, I find those bugs when reading the source code so that I 
can write doctests.

And even when I've found a bug by experimentation, really nailing it 
down has been a product of being able to read the source.  Often, the 
bug is in a subroutine, not the function pinpointed by the experiment. 
Other times, it is a design decision that wasn't documented.  Other 
times, it was a plain bug (unintended).  In each case, reading the 
source code helped me find where the real trouble was, understand 
assumptions of the function better, or just plain fix the bug and get on 
to the real reason I was using the system.


Jason

-- 
Jason Grout


--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to