[Patch] Bug 712640: gnc-engine.c parallel optimization
jralls at ceridwen.us
Tue Nov 19 16:45:42 EST 2013
On Nov 19, 2013, at 11:43 AM, Geert Janssens <janssens-geert at telenet.be> wrote:
> On Tuesday 19 November 2013 16:21:44 Alex Kempster wrote:
>> Hi Geert,
>> Thank you very much for the feedback, i am just cautious about
>> stepping on toes!
>> I have made the wiki changes as you have suggested. I will have a
>> think on the best way to guide a newcomer through and try to draft
>> something up over the next week or so.
>> I will also do some research into unit testing to see if this is
>> something i could tackle, is there any particular unit that you would
>> recommend to start with or should i just pick a small unit and try it
> The engine and qof are the two libraries that need unit testing the most. Both modules have a
> number of unit tests already, but many parts are not covered yet.
> You can check which unit tests are available in
> src/engine/test and src/libqof/qof/test.
> You can pick any part that is not covered yet in these tests and see if you can write unit tests
> for these.
> Good luck !
QOF is actually pretty well covered already, but there’s plenty to work on in src/engine.
Be sure to read http://wiki.gnucash.org/wiki/Testing . There’s a StackOverflow article here
that lists several “beginning unit-testing” books. Mind 1) that some of the Gnucash classes are rather
impervious to testing and 2) that we’ve departed a bit from the “best practice” of writing a
separate function for each assert in the interest of getting more coverage in a hurry. I’ve found
the strategies in http://www.amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052
very helpful in figuring out how to test spaghetti functions, but like all CS books, it’s expensive.
There’s an executive summary at
that you might find useful.
When you’re ready (and have the money), http://www.amazon.com/xUnit-Test-Patterns-Refactoring-Code/dp/0131495054
is the reference to get and keep handy.
More information about the gnucash-devel