I'm developing a FOSS library which I am pretty fond of. More specific details probably don't matter.
I've already "finished" a feature set sufficient for an initial release IMHO. However - some of the features I introduced in there were added for completeness of the API; I didn't use them in my own applicative coding (which gave rise to the library), and they've never been tested at all. The ones I have used had only been tested through my use, which has not focused on questionable corner cases.
So here is the vicious cycle:
- To be released, even initially the library code needs to be functionally correct and well-performing - if not perfectly, than at least to good degree.
- To ensure correctness (not to mention performance), testing is necessary; at least, unit test coverage.
- To be involved in writing and running tests for the library, and resolving issues which come up during testing (and they do naturally come up), people have to like it and be interested in it.
- People won't get to know and perhaps become fond of the library before it's released (for some definition of release).
it's 1 -> 2 -> 3 -> 4 -> 1 and thus on and on in a vicious cycle.
So far, I've just spent quite some time just writing unit tests myself, and it seems this way I'll release when I'm retiring and the whole thing is irrelevant.
My question: How do I break this vicious cycle? Or in other words - how can I get some potential users into helping me with the annoying and somewhat boring work of writing and running unit tests (and perhaps resolving the issues that come up)?
Edit: I ended up writing the tests myself. It was "just" 108,849 different assertions... :-(