Submitting Bug Reports
- Posted by jeremy (admin) Mar 13, 2009
- 1184 views
It's very important during the alpha and especially the beta stages of Euphoria for users to report any problem that is found. Many times that is done here on the forums. For the developers, this is very hard to manage. It's easy to loose bug reports in the shuffle as many are not posted with clear titles or posted amongst many messages dealing with comments of 4.0, etc...
It's OK to discuss bugs and ask questions to see if you have found a bug, but it's always best if the actual bug is reported (or a follow up report) on our http://sourceforge.net/tracker/?group_id=182827&atid=902782. There is also a http://sourceforge.net/tracker/?group_id=182827&atid=902785 for feature requests.
Basically, this gives us a place to put bugs where we can collaborate on them, assign them to developers who will be fixing the bugs, set priorities and most importantly, where they will not get lost. Further, the SF.net tracker has notifications that are sent out to developers when a new bug is submitted and anyone interested in a bug can "Monitor" the bug to watch it go through the stages of the report to the completion.
Now, submitting a bug report is a good start, however, for the devs to be able to fix it quickly and not spin their wheels, it has to be a good bug report. Let's take a fictional bug you may have found... ? 1 + 1 -- 2, works, ? 1 + 2 -- 4 ... Oh my! 1 + 2 is not 4, it's 3, I found a bug.
Here is an example bad bug report:
Subject
Addition doesn't work
Message
I tried to add two numbers and it didn't work
Ok, so now we come along and type ? 1 + 1
Here is a good bug report:
Subject
Addition of some numbers yields an incorrect result
Message
I have tried 1 + 1, 2 + 2, 3 + 3 and a whole host of other numbers and they all worked. However, 1 + 2 returns the answer as 4. This was the only addition problem that I found to be incorrect.
I have created a test case that can be executed with eutest:
test_equal("1 + 2 is 3 not 4", 3, 1 + 1)
The above bug report is much better and will result in less work on the developer to find and fix the bug. Euphoria 4.0 has a new program that is distributed with it called eutest. This is a unit testing system that is generic and can be used to test any library. You can read all about how to use eutest in the manual, Unit Testing Framework. Euphoria 4.0 has over 2,000 tests included with it. You can look in your EUDIR/tests directory to find them, look at examples, and even run them (simply type eutest while in that directory, it'll run every single file). You can also run just one test by typing eutest t_sequence.e, for example.
These unit tests not only help us find the problem but keeps the problem from coming back. When you submit the test_equal case above, we will add it to Euphoria's test cases, then run the test and watch it fail. Once we have a failing test, we will then fix Euphoria so the test no longer fails and, in addition, doesn't cause any other test to start failing. This is very important and test cases are highly desired. If, however, you cannot come up with at unit test, still submit the bug as we want to know about it, but if you can, please include a unit test.
In time, I will move this to the wiki as well, but it's here first for comment.
Thank you,
Jeremy