[Qgis-developer] Rethinking the testing and release procedure of QGIS

Marco Hugentobler marco.hugentobler at sourcepole.ch
Thu Jul 7 17:37:01 EDT 2011


> What has to be maintained about testcases ?
> The only reason to change a testcase would be a change in the underlying
> classes interfaces, which is one of the causes for instability, so having
> testcases that break might be an aim to keep APIs stable.

I can think of several reason why the testcase need changes and the 
maintainance is not 0 (usually there are even more cases in practice):

- The dependencies of QGIS do change (both in API and in behaviour). Most 
tests use Qt classes. The Qt API _and_ behaviour can change. Anybody remembers 
the switch from Qt3 to Qt4? It was a huge effort to port all the classes (the 
bigger the testsuite, the more changes).

- The API of QGIS might indeed change. E.g. say Martin implements a new 
redesigned symbology engine -> he needs to adapt all the symbology related 
test (the more the better?)

- The 'no change without unit test' policy means also test for internal 
classes (not in the public API)


Marco







Am Donnerstag, 7. Juli 2011, 17.53:53 schrieb Sandro Santilli:
> On Thu, Jul 07, 2011 at 05:23:28PM +0200, Marco Hugentobler wrote:
> > Being in favor of unit tests, we cannot hope to solve with them all the
> > stability problems, as some mails here suggest. It is just one small
> > piece.
> 
> I wouldn't call it small. But it surely won't easily test each and every
> possible combination of interactions. Not deterministically at least
> (there are some testsuites aimed at throwing random inputs to tools, to
> catch a wider set of bugs w/out tight control over the premises, postgis
> garden test is one, we've used zzuf for gnash).
> 
> > In fact, thinking about bugfixes in the past, e.g. for the 1.7 release,
> > most of them occured as a complex combination of several factors and user
> > interaction, very hard to detect with unit tests.
> 
> This may be a limit on the currently available tools for testing GUIs,
> but anyway nobody said it'd be an easy task.
> 
> > Another point that needs to be considered is that the unit testing code
> > needs to be maintained. Adding a test for every little change, even
> > bugfix, would create a huge amount of testing code and sample datasets.
> 
> The bigger the testsuite, the safer the codebase !
> 
> What has to be maintained about testcases ?
> The only reason to change a testcase would be a change in the underlying
> classes interfaces, which is one of the causes for instability, so having
> testcases that break might be an aim to keep APIs stable.
> 
> > What about alternatively creating a unit test base that is limited in
> > size but well maintained, e.g. a good coverage of the core classes?
> 
> I don't see any testing effort being exclusive. The more testing
> means, the better.
> 
> --strk;
> 
>   ()   Free GIS & Flash consultant/developer
>   /\   http://strk.keybit.net/services.html


-- 
Dr. Marco Hugentobler
Sourcepole - Linux & Open Source Solutions
Churerstr. 22, CH-8808 Pfäffikon SZ, Switzerland
marco.hugentobler at sourcepole.ch http://www.sourcepole.ch
Technical Advisor QGIS Project Steering Committee


More information about the Qgis-developer mailing list