VTK/SoftwareQuality/GerritTestFailures: Difference between revisions

From KitwarePublic
< VTK
Jump to navigationJump to search
No edit summary
No edit summary
 
(14 intermediate revisions by the same user not shown)
Line 1: Line 1:
Gerrit provides a powerful code review tool to the VTK and ITK open source communities. For each submitted topic, gerrit builds and tests the topic on three typical conigurations: Ubuntu, Mac and Windows. Th goal of these builds is to catch compile errors and test failures introduced by the topic, before the topic is merged into VTT of ITK.
[http://review.source.kitware.com/#/q/status:open,n,z Gerrit] provides a powerful code review tool to the VTK and ITK open source communities. For each submitted topic, Gerrit builds and tests the topic on three typical configurations: Ubuntu, Mac and Windows. The goal of these builds is to catch compile errors and test failures introduced by the topic, before the topic is merged into VTK or ITK.


Recurring test failures on the Gerrit builds can easily mask new defects introduced by the topic. Recently, the number of recurring failures was:
[http://open.cdash.org/index.php?project=VTK&filtercount=1&showfilters=1&field1=groupname/string&compare1=61&value1=Gerrit Recurring test failures on the Gerrit builds] can easily mask new defects introduced by a topic. Recently, the number of recurring failures for VTK was:
* Ubuntu - 28
* Ubuntu - 28
* Mac - 4
* Mac - 4
Line 18: Line 18:


==Define==
==Define==
Keep the number of VTK Gerrit recurring test failures(defects) to 0. When the defects stay above 0, developers find it difficult to see if their changes have increased the number of defects.
Keep the number of VTK Gerrit recurring test failures(defects) to 0. When the defects are above 0, developers find it difficult to see if their changes have increased the number of defects.


==Measure==
==Measure==
As of January 26, 2013, there were 34 defects.
As of January 26, 2013, there were 34 defects on the three VTK Gerrit builds:
* Ubuntu - 26
* Ubuntu - 26
* Mac - 4
* Mac - 4
Line 29: Line 29:
Initial analysis revealed:
Initial analysis revealed:
* Python tests accounted for 15 of the defects. Note that only the Ubuntu system has python enabled.
* Python tests accounted for 15 of the defects. Note that only the Ubuntu system has python enabled.
* One of the tests, TestSplitViewportStereoHorizontal, was failing on all three systems. It also was failing on many other nightly builds.
* One of the tests, ''TestSplitViewportStereoHorizontal'', was failing on all three systems. It also was failing on many other nightly builds.
* One of the python tests, was failing on every VTK build that had python enabled.
* One of the python tests, ''TestTemplates'', was failing on every VTK build that had python enabled, including the Gerrit Ubuntu build.
* Seven tests were timing out on the Ubuntu system.
* Seven tests were timing out on the Ubuntu system.
* The remaining tests required futher analysis.
* The remaining tests required further analysis and individual attention.


==Improve==
==Improve==
* Increase error threshold - 1 test
* Tests time out on Ubuntu - 7 tests
** http://review.source.kitware.com/#/c/9545/ Adjust error threshold for TestDensifyPolyData]
** [http://review.source.kitware.com/#/c/9713/ Increased timeouts for all failing tests to max observed on all VTK dashboard machines]
* Python tests misconfigured- 3 tests
* Python syntax errors - 5 tests
** [http://review.source.kitware.com/#/c/9573/ Fix the tcl-to-python conversion for a few tests]
* Python tests misconfiguration- 3 tests
** [http://review.source.kitware.com/#/c/9559/ Python tests missing -D argument]
** [http://review.source.kitware.com/#/c/9559/ Python tests missing -D argument]
* NumPy issues - 2 tests
* Suppress recurring Mac failures - 3 tests
** [http://review.source.kitware.com/#/c/9580/ These tests were failing on virtually ever MAC]
* Failed to locate materials for shaders - 3 tests
** [http://review.source.kitware.com/#/c/9586/ Some tests require VTK_USE_CG_SHADERS On. Block them if off]
* NumPy tests failing - 2 tests
** [http://review.source.kitware.com/#/c/9560/ Tests that require numpy should warn if numpy is missing]
** [http://review.source.kitware.com/#/c/9560/ Tests that require numpy should warn if numpy is missing]
* Failed image regression test - 1 test
** http://review.source.kitware.com/#/c/9545/ Adjust error threshold for TestDensifyPolyData]
* Bad clipping planes - 1 test
* Bad clipping planes - 1 test
** [http://review.source.kitware.com/#/c/9561/ ResetCameraClippingPlanes after manual camera setup]
** [http://review.source.kitware.com/#/c/9561/ ResetCameraClippingPlanes after manual camera setup]
* TestRenderView fails on some X platforms - 1 test
* TestRenderView fails on some X platforms - 1 test
** [http://review.source.kitware.com/#/c/9567/ Convert to new testing framework]
** [http://review.source.kitware.com/#/c/9567/ Convert to new testing framework]
* Suppress recurring Mac failures - 3 tests
* CamBlur failing with X Error of failed request: BadMatch XGetImage - 1 test
** [http://review.source.kitware.com/#/c/9580/ These tests were failing on virtually ever MAC]
** [http://review.source.kitware.com/#/c/9586/ Convert to new testing framework]
* Python syntax errors
* Volume mapper failed - 1 test
[http://review.source.kitware.com/#/c/9573/ Fix the tcl-to-python conversion for a few tests]
* Tests timing out on Ubuntu - 7 tests
** [http://review.source.kitware.com/#/c/9585/ Increased timeouts for all tests to 61 second and 120 seconds for two tests]
* Failed to locate materials for shaders - 2 tests
** [http://review.source.kitware.com/#/c/9586/ Some tests require VTK_USE_CG_SHADERS On. Block them if off]
* CamBlur failing with X Error of failed request: BadMatch XGetImage
** [http://review.source.kitware.com/#/c/9586/ COnvert to new testing framework]
* Volume mapper failed
** [http://review.source.kitware.com/#/c/9590/ Check for missing required extensions]
** [http://review.source.kitware.com/#/c/9590/ Check for missing required extensions]
:The test failed to check if the volume mapper supported the required extensions.
* TestTemplates failed - 1 test
** [http://review.source.kitware.com/#/c/9639/ Add export/import to allow vtkTuple subclasses in other modules]
:The python-wrapped vtkVector type wasn't able to link to its python-wrapped vtkTuple superclass because vtkTuple was in a different module. This patch adds import/export declarations to allow module boundaries to be crossed.
:The trick of automatically discovering what template instantiations are used does not work across module boundaries, however, so the needed instantiations of the vtkTuple template have been hard-coded for now.
* TestTilingCxx and TestInteractorStyleTreeMapHover fail only on one Windows platform - 2 tests
** Suppressed the test on the offending gerrit cdash@home system
set(CTEST_TEST_ARGS EXCLUDE TestTilingCxx|TestInteractorStyleTreeMapHover)
* TestSplitViewportStereoHorizontal fails on all three gerrit builds - 1 test
** [http://review.source.kitware.com/#/c/9747/ Turn off multisamples so antialiasing doesn't cause test failures]
<pre>
Some linux platforms failed because their graphics cards don't do
antialiasing. This commit turns of antialiasing on ALL platforms
provides a new non-antialiased baseline, and increases the error
threshold.
All windows machines failed because SetStereoRender was called
before the StereoType was set. This commit should fix that, because
it calls SetStereoType before SetStereoRender.
All OS X machines still fail because the ViewAngle is, for some
unknown reason, not interpreted properly for this test on that
platform.
</pre>


==Control==
As of February 3, the 6 defects remain:
* Ubuntu - 2 defects
** TestTemplates
** TestSplitViewportStereoHorizontal
* Mac - 1 defect
** TestSplitViewportStereoHorizontal
* Windows - 3 defects
** TestSplitViewportStereoHorizontal
** TestTilingCxx
** TestInteractorStyleTreeMapHover


As of February 8, the 3 defects remain:
* Ubuntu - 1 defect
** TestSplitViewportStereoHorizontal
* Mac - 1 defect
** TestSplitViewportStereoHorizontal
* Windows - 1 defect
** TestInteractorStyleTreeMapHover


As of February 10, the 3 defects remain:
* Ubuntu - 0 defects
* Mac - 1 defect
** TestSplitViewportStereoHorizontal
* Windows - 0 defects


==Control==
Once reduced to 0, developer diligence is needed to keep the defects to 0. The burden is on the Gerrit reviewers.
Once reduced to 0, developer diligence is needed to keep the defects to 0. The burden is on the gerrit reviewers.

Latest revision as of 20:23, 15 February 2013

Gerrit provides a powerful code review tool to the VTK and ITK open source communities. For each submitted topic, Gerrit builds and tests the topic on three typical configurations: Ubuntu, Mac and Windows. The goal of these builds is to catch compile errors and test failures introduced by the topic, before the topic is merged into VTK or ITK.

Recurring test failures on the Gerrit builds can easily mask new defects introduced by a topic. Recently, the number of recurring failures for VTK was:

  • Ubuntu - 28
  • Mac - 4
  • Windows - 3

This experiment seeks to reduce VTK Gerrit recurring test failures to 0 and keep them at 0.

This experiment uses the DMAIC methodology of the Six Sigma management process to "Define", "Measure", "Analyze", "Improve" and "Control" to resolve these issues.

The basic methodology (from Wikipedia) consists of the following five steps:

  • Define process goals that are consistent with customer demands and VTK's strategy.
  • Measure key aspects of the current process and collect relevant data.
  • Analyze the data to verify cause-and-effect relationships. Determine what the relationships are, and attempt to ensure that all factors have been considered.
  • Improve or optimize the process.
  • Control to ensure that any deviations from target are corrected before they result in defects. Set up pilot runs to establish software quality, move on to production, set up control mechanisms and continuously monitor the process.

Define

Keep the number of VTK Gerrit recurring test failures(defects) to 0. When the defects are above 0, developers find it difficult to see if their changes have increased the number of defects.

Measure

As of January 26, 2013, there were 34 defects on the three VTK Gerrit builds:

  • Ubuntu - 26
  • Mac - 4
  • Windows - 4

Analyze

Initial analysis revealed:

  • Python tests accounted for 15 of the defects. Note that only the Ubuntu system has python enabled.
  • One of the tests, TestSplitViewportStereoHorizontal, was failing on all three systems. It also was failing on many other nightly builds.
  • One of the python tests, TestTemplates, was failing on every VTK build that had python enabled, including the Gerrit Ubuntu build.
  • Seven tests were timing out on the Ubuntu system.
  • The remaining tests required further analysis and individual attention.

Improve

The test failed to check if the volume mapper supported the required extensions.
The python-wrapped vtkVector type wasn't able to link to its python-wrapped vtkTuple superclass because vtkTuple was in a different module. This patch adds import/export declarations to allow module boundaries to be crossed.
The trick of automatically discovering what template instantiations are used does not work across module boundaries, however, so the needed instantiations of the vtkTuple template have been hard-coded for now.
  • TestTilingCxx and TestInteractorStyleTreeMapHover fail only on one Windows platform - 2 tests
    • Suppressed the test on the offending gerrit cdash@home system
set(CTEST_TEST_ARGS EXCLUDE TestTilingCxx|TestInteractorStyleTreeMapHover)
Some linux platforms failed because their graphics cards don't do
antialiasing. This commit turns of antialiasing on ALL platforms
provides a new non-antialiased baseline, and increases the error
threshold.

All windows machines failed because SetStereoRender was called
before the StereoType was set. This commit should fix that, because
it calls SetStereoType before SetStereoRender.

All OS X machines still fail because the ViewAngle is, for some
unknown reason, not interpreted properly for this test on that
platform.

Control

As of February 3, the 6 defects remain:

  • Ubuntu - 2 defects
    • TestTemplates
    • TestSplitViewportStereoHorizontal
  • Mac - 1 defect
    • TestSplitViewportStereoHorizontal
  • Windows - 3 defects
    • TestSplitViewportStereoHorizontal
    • TestTilingCxx
    • TestInteractorStyleTreeMapHover

As of February 8, the 3 defects remain:

  • Ubuntu - 1 defect
    • TestSplitViewportStereoHorizontal
  • Mac - 1 defect
    • TestSplitViewportStereoHorizontal
  • Windows - 1 defect
    • TestInteractorStyleTreeMapHover

As of February 10, the 3 defects remain:

  • Ubuntu - 0 defects
  • Mac - 1 defect
    • TestSplitViewportStereoHorizontal
  • Windows - 0 defects

Once reduced to 0, developer diligence is needed to keep the defects to 0. The burden is on the Gerrit reviewers.