Hi,

In the past two weeks we've made some "interesting" discoveries regarding our 
test coverage, specifically regarding qtbase, but the same applies also to 
qt5.git:

  * Our networking stack is only tested on OS X 10.10. Due to what seems like 
a bug in the test planner, the tests are not fully included on the Windows 
configurations. Regarding linux, see the second bullet below.

 * We do not run _any_ tests on Linux for the dev branch of qtbase and 
qt5.git. We actually run the tests, but the results are ignored - therefore 
test failures on Linux do not block bad changes from integrating. Any change 
in qtbase that accidentally breaks for example qtscript on Linux will go into 
qt5.git undetected.

As to how it happened that we do not do testing on Linux anymore: We've had 
enforcing test coverage with our Ubuntu 12.04 configurations. Then we added 
Ubuntu 14.04 but with ignore-failures mode (called "insignificant" in the 
system). Then in the beginning of February this year we removed the 12.04 
configurations from the CI. When that happened nobody had checked if the 
Ubuntu 14.04 configurations were a proper replacement, i.e. if they would 
enforce test failures.

In addition we've had OpenSuSE and RHEL 6.6 configurations added to the CI as 
well, but those were also in ignore-failures mode, despite RHEL 6.6 being the 
configuration we're using for our binary packages. Tests were failing, but 
nobody looked at the concrete results and fixed the tests.

In the 5.4/5.5/5.5.0 branches the situation is actually similar, but meanwhile 
some fixes helped to regain some coverage.

In the future we must avoid these situations through much more thorough review 
of changes to the CI system configuration. At the same time we are not having 
this ignore-failures mode in the new CI system anymore. If some configuration 
gets added, the tests have to pass. Otherwise we cannot add it and we cannot 
claim support for a certain OS/compiler configuration.

Additionally we're taking this also as a sign to re-prioritize CI system 
related work to bring qtbase and the rest of the dev branches of qt5 modules 
over to the new CI system much sooner. I've been doing repeated builds of 
qtbase dev in the new CI and with a larger set of blacklisted tests - I'll 
send a separate email about this - and I would like to switch the module over 
this week. We will run tests on all non-cross compiling Linux configurations 
(Ubuntu 14.04, OpenSUSE 13.01 and RHEL 6.6) and if a test fails, the change 
doesn't go in. Generally we have the same matrix of os/compiler combinations 
as for the dev branch in the current CI system.

Re-prioritization means for us that we'll do this switch sooner in order to 
maintain a certain level of quality, at the expense of not having a public web 
frontend and other features in the CI system available before the switch but 
some later point in time.


There are a few more lessons to learn from this, but one step at a time :). 


Simon
_______________________________________________
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development

Reply via email to