[Mono-list] newbie looking for testing work and/or clues

Nick Drochak ndrochak@gol.com
Tue, 2 Jul 2002 17:11:05 +0900


| 1) Has a testing lead been appointed for Mono or any of the
| sub-projects?  If so, I can take my questions off-list to her/him.  I've
| also seen some exchanges on testing and tinderbox setups between Nick
| Drochak & Andrew Birkett - have either of you two guys
| volunteered to lead
| this?  :)

No one's been appointed yet, but I've been working on the class library unit
tests quite a bit.  I asked for help with this work a few days ago on the
list, so thanks for volunteering.

| 2) My thought was that the logical place to start was in writing
| tests for
| the class libraries, rather than the compiler itself - is this correct?

Well, that's what I would like help with and I think it's a much easier part
of the project for newbies and/or people with little time to help with.

| 3) Does there exist any documentation on "how to ensure a class has test
| coverage"?  By this I mean a checklist or similar document that takes an
| example class and breaks out all the test cases that should be

No, there isn't such a system right now.  I'd love a template builder for a
class that would use Reflection (I suppose) to build a unit test template
that has TestXXX() for all public members of said class. You would probably
want to do one or two unit tests by hand first to see what you are getting
into, and so you can fully appreciate how much the tool helps :)

It isn't going to be easy to automate the evaluation of test coverage
between existing unit tests and their respective classes, however.  The
TestXXX() method in an existing unit test is not necessarily the name of the
public member of the class.  In a lot of cases it will be, so such a tool
won't give too many false positives (incorrectly indicating a member is
covered by a test) but will give quite a few false negatives (incorrectly
reporting "not covered").

Even considering all that, I feel the priorities are: first, get the
existing tests to pass on Windows and Linux; then have a running tinderbox
system; then write more tests.  Some of the existing tests might be for
lower priority classes, however, so we might need to just disable them for
now to move faster toward getting the tinderbox set up and getting more
tests written for high priority classes.

Hopefully this answers some of your questions.  Let me know what else you
need.

Regards,
Nick D.