[GSOC] Data model unit testing

John Ralls jralls at ceridwen.us
Wed Mar 23 09:54:19 EDT 2011


On Mar 23, 2011, at 5:50 AM, Muslim Chochlov wrote:

> Hello,
> 
> I consider applying this year for the GnuCash with the project mentioned
> above. Software engineering and as a part of it unit testing is in the field
> of my professional interest and I feel I could do my best in this.
> 
> So far I divided the project into four major steps:
> 1. Identify the packages which require documentation/unit testing.
> 2. Choose UT framework/approach/dir layout etc.
> 3. Implement tests.
> 4. Make sure tests run as they should.
> 
> Steps 1 and 4 are quite clear, for the step 2 however I have a few
> questions. The project is coded in C and Python, do we need framework to
> unit test the code for both or data model is coded only in C? Now in the SVN
> under trunk/test-templates there are few examples from GLib UT framework.
> Does it mean that GLib framework should be used or it's still up to
> participant to choose? Also what should be the code coverage in %?
> 
> For the step 3, is there any documentation for the code or I should you the
> code itself as a guide.
> 
> About my background: I'm currently doing my master in Software engineering,
> in GSoC 2008 i successfully accomplished my project with MySQL.
> 

Muslim,

Thanks for your interest. We actually have some priorities for what needs to have good test coverage first, driven by our need to refactor parts of Gnucash to better work with the SQL backends: In order, LibQof, Engine, ImportExport/AQBanking, and Business. We're looking for complete coverage in those modules, though that might be too much for a single GSoC project.

Those parts of Gnucash are written purely in C using glib/gobject (use of gobject is actually mixed; there's a lot of gobject-like code that doesn't actually use the gobject library or macros, and also a lot of normal non-object C code), so we'll continue to use glib's testing framework. I've already set this up for LibQof and written one test for a function I added in January. There's a fair amount of interdependence between modules, so in addition to actual tests we'll need quite a bit of fixtures and mocks to isolate the tests.

Current Doxygen documentation of Gnucash can be found at http://svn.gnucash.org/docs/HEAD/.  If you're not familiar with gobject, the docs are at http://library.gnome.org/devel/gobject/stable/index.html. 

Regards,
John Ralls




More information about the gnucash-devel mailing list