Difference between revisions of "Slicer-3.6-QA"
Line 38: | Line 38: | ||
|style="background:white"|??||style="width:33%"| Volume Rendering ||complete||yes and yes||no and yes|| 0% || unknown | |style="background:white"|??||style="width:33%"| Volume Rendering ||complete||yes and yes||no and yes|| 0% || unknown | ||
|- | |- | ||
− | |style="background:white"|??||style="width:33%"| DiffusionWeightedTest || || || || | + | |style="background:white"|??||style="width:33%"| DiffusionWeightedTest || || || || 69.8% || unknown |
|- | |- | ||
− | |style="background:white"|??||style="width:33%"| DiffusionTensorEstimation || || || || | + | |style="background:white"|??||style="width:33%"| DiffusionTensorEstimation || || || || 79.7% || unknown |
|- | |- | ||
− | |style="background:white"|??||style="width:33%"| DiffusionTensorMathematics || || || || | + | |style="background:white"|??||style="width:33%"| DiffusionTensorMathematics || || || || 56.2% || unknown |
|- | |- | ||
− | |style="background:white"|??||style="width:33%"| OrientImage || || || || | + | |style="background:white"|??||style="width:33%"| OrientImage || || || || 85.7% || unknown |
|- | |- | ||
− | |style="background:white"|??||style="width:33%"| LinearRegistration || || || || | + | |style="background:white"|??||style="width:33%"| LinearRegistration || || || || 66.7% || unknown |
|- | |- | ||
− | |style="background:white"|??||style="width:33%"| RigidRegistration || || || || 0% || unknown | + | |style="background:white"|??||style="width:33%"| RigidRegistration || || || || 1.0% || unknown |
|- | |- | ||
− | |style="background:white"|??||style="width:33%"| AffineRegistration || || || || | + | |style="background:white"|??||style="width:33%"| AffineRegistration || || || || 1.4% || unknown |
|- | |- | ||
− | |style="background:white"|??||style="width:33%"| BSplineDeformableRegistration || || || || | + | |style="background:white"|??||style="width:33%"| BSplineDeformableRegistration || || || || 82.3% || unknown |
|- | |- | ||
− | |style="background:white"|??||style="width:33%"| TestGridTransformRegistration || || || || | + | |style="background:white"|??||style="width:33%"| TestGridTransformRegistration || || || || 90.7% || unknown |
|- | |- | ||
− | |style="background:white"|??||style="width:33%"| CheckerBoard || || || || | + | |style="background:white"|??||style="width:33%"| CheckerBoard || || || || 67.4% || unknown |
|- | |- | ||
− | |style="background:white"|??||style="width:33%"| ResampleVolume || || || || | + | |style="background:white"|??||style="width:33%"| ResampleVolume || || || || 57.1% || unknown |
|- | |- | ||
− | |style="background:white"|??||style="width:33%"| PolyDataToLabelmap || || || || | + | |style="background:white"|??||style="width:33%"| PolyDataToLabelmap || || || || 87.9% || unknown |
|- | |- | ||
− | |style="background:white"|??||style="width:33%"| GaussianBlurImageFilter || || || || | + | |style="background:white"|??||style="width:33%"| GaussianBlurImageFilter || || || || 55.9% || unknown |
|- | |- | ||
− | |style="background:white"|??||style="width:33%"| ConfidenceConnected || || || || | + | |style="background:white"|??||style="width:33%"| ConfidenceConnected || || || || 87.5% || unknown |
|- | |- | ||
− | |style="background:white"|??||style="width:33%"| ExecutionModelTour || || || || | + | |style="background:white"|??||style="width:33%"| ExecutionModelTour || || || || 87.2% || unknown |
|- | |- | ||
− | |style="background:white"|??||style="width:33%"| ImageReadDicomWrite || || || || | + | |style="background:white"|??||style="width:33%"| ImageReadDicomWrite || || || || 86.1% || unknown |
|- | |- | ||
− | |style="background:white"|??||style="width:33%"| CurvatureAnisotropicDiffusion || || || || | + | |style="background:white"|??||style="width:33%"| CurvatureAnisotropicDiffusion || || || || 64.3% || unknown |
|- | |- | ||
− | |style="background:white"|??||style="width:33%"| GradientAnisotropicDiffusion || || || || | + | |style="background:white"|??||style="width:33%"| GradientAnisotropicDiffusion || || || || 63.4% || unknown |
|- | |- | ||
− | |style="background:white"|??||style="width:33%"| MedianImageFilter || || || || | + | |style="background:white"|??||style="width:33%"| MedianImageFilter || || || || 51.1% || unknown |
|- | |- | ||
|style="background:white"|??||style="width:33%"| DWIDicomLoad || || || || 0% || unknown | |style="background:white"|??||style="width:33%"| DWIDicomLoad || || || || 0% || unknown | ||
|- | |- | ||
− | |style="background:white"|??||style="width:33%"| HistogramMatching || || || || 0% || unknown | + | |style="background:white"|??||style="width:33%"| HistogramMatching || || || || 65.0% || unknown |
|- | |- | ||
− | |style="background:white"|??||style="width:33%"| OtsuThresholdImageFilter || || || || | + | |style="background:white"|??||style="width:33%"| OtsuThresholdImageFilter || || || || 100% || unknown |
|- | |- | ||
− | |style="background:white"|??||style="width:33%"| OtsuThresholdSegmentation || || || || | + | |style="background:white"|??||style="width:33%"| OtsuThresholdSegmentation || || || || 90.9% || unknown |
|- | |- | ||
− | |style="background:white"|??||style="width:33%"| Subtract || || || || | + | |style="background:white"|??||style="width:33%"| Subtract || || || || 71.7% || unknown |
|- | |- | ||
− | |style="background:white"|??||style="width:33%"| Multiply || || || || | + | |style="background:white"|??||style="width:33%"| Multiply || || || || 77.6% || unknown |
|- | |- | ||
− | |style="background:white"|??||style="width:33%"| Add || || || || | + | |style="background:white"|??||style="width:33%"| Add || || || || 71.7% || unknown |
|- | |- | ||
− | |style="background:white"|??||style="width:33%"| Threshold || || || || | + | |style="background:white"|??||style="width:33%"| Threshold || || || || 55.8% || unknown |
|- | |- | ||
− | |style="background:white"|??||style="width:33%"| Mask || || || || 0% || unknown | + | |style="background:white"|??||style="width:33%"| Mask || || || || 80.0% || unknown |
|- | |- | ||
− | |style="background:white"|??||style="width:33%"| Cast || || || || | + | |style="background:white"|??||style="width:33%"| Cast || || || || 14.6% || unknown |
|- | |- | ||
− | |style="background:white"|??||style="width:33%"| VotingBinaryHoleFillingImageFilter || || || || | + | |style="background:white"|??||style="width:33%"| VotingBinaryHoleFillingImageFilter || || || || 100% || unknown |
|- | |- | ||
− | |style="background:white"|??||style="width:33%"| ModelMaker || || || || | + | |style="background:white"|??||style="width:33%"| ModelMaker || || || || 57.4% || unknown |
|- | |- | ||
− | |style="background:white"|??||style="width:33%"| MultipleModelsExample || || || || | + | |style="background:white"|??||style="width:33%"| MultipleModelsExample || || || || 1.9% || unknown |
|- | |- | ||
− | |style="background:white"|??||style="width:33%"| GrayscaleModelMaker || || || || | + | |style="background:white"|??||style="width:33%"| GrayscaleModelMaker || || || || 82.1% || unknown |
|- | |- | ||
− | |style="background:white"|??||style="width:33%"| MergeModels || || || || | + | |style="background:white"|??||style="width:33%"| MergeModels || || || || 62.7% || unknown |
|- | |- | ||
− | |style="background:white"|??||style="width:33%"| GrayscaleFillHoleImageFilter || || || || | + | |style="background:white"|??||style="width:33%"| GrayscaleFillHoleImageFilter || || || || 57.1% || unknown |
|- | |- | ||
− | |style="background:white"|??||style="width:33%"| GrayscaleGrindPeakImageFilter || || || || | + | |style="background:white"|??||style="width:33%"| GrayscaleGrindPeakImageFilter || || || || 64.5% || unknown |
|- | |- | ||
− | |style="background:white"|??||style="width:33%"| LabelMapSmoothing || || || || | + | |style="background:white"|??||style="width:33%"| LabelMapSmoothing || || || || 87.9% || unknown |
|- | |- | ||
− | |style="background:white"|??||style="width:33%"| ImageLabelCombine || || || || | + | |style="background:white"|??||style="width:33%"| ImageLabelCombine || || || || 7.5% || unknown |
|- | |- | ||
− | |style="background:white"|??||style="width:33%"| ResampleVolume2 || || || || | + | |style="background:white"|??||style="width:33%"| ResampleVolume2 || || || || 46.8% || unknown |
|- | |- | ||
− | |style="background:white"|??||style="width:33%"| ZeroCrossingBasedEdgeDetectionImageFilter || || || || | + | |style="background:white"|??||style="width:33%"| ZeroCrossingBasedEdgeDetectionImageFilter || || || || 62.5% || unknown |
|- | |- | ||
− | |style="background:white"|??||style="width:33%"| FreesurferSurfaceSectionExtraction || || || || 0% || unknown | + | |style="background:white"|??||style="width:33%"| FreesurferSurfaceSectionExtraction || || || || 60.0% || unknown |
|- | |- | ||
Revision as of 19:42, 19 April 2010
Home < Slicer-3.6-QAReturn to Slicer 3.6 documentation
- This page contains our assessment of the Slicer 3.6 modules
- See also the module culling event at the end of April 2010
Testing Status
Score | Name | Documentation | Help [1] | Acknowledgment [2] | Test coverage [3] | valgrind errors |
---|---|---|---|---|---|---|
Gold | my module | complete | yes and yes | yes, yes, yes | 80% | 0 |
?? | Camera | complete | yes, no link | no | 0% | unknown |
?? | Volumes | complete | yes and yes | yes and yes | 0% | unknown |
?? | Diffusion Editor | complete | yes and yes | no | 0% | unknown |
?? | Models | complete | yes and yes | yes and yes | 0% | unknown |
?? | Measurements | complete | yes and yes | no and yes | 0% | unknown |
?? | Fiducials | complete | yes and yes | no | 0% | unknown |
?? | Data | complete | yes and yes | yes and yes | 0% | unknown |
?? | Slices | complete | no | no | 0% | unknown |
?? | Colors | complete | yes and no | yes and no | 0% | unknown |
?? | Interactive Editor | complete | 0% | unknown | ||
?? | ROI Module | complete | no and yes | no and yes | 0% | unknown |
?? | Volume Rendering | complete | yes and yes | no and yes | 0% | unknown |
?? | DiffusionWeightedTest | 69.8% | unknown | |||
?? | DiffusionTensorEstimation | 79.7% | unknown | |||
?? | DiffusionTensorMathematics | 56.2% | unknown | |||
?? | OrientImage | 85.7% | unknown | |||
?? | LinearRegistration | 66.7% | unknown | |||
?? | RigidRegistration | 1.0% | unknown | |||
?? | AffineRegistration | 1.4% | unknown | |||
?? | BSplineDeformableRegistration | 82.3% | unknown | |||
?? | TestGridTransformRegistration | 90.7% | unknown | |||
?? | CheckerBoard | 67.4% | unknown | |||
?? | ResampleVolume | 57.1% | unknown | |||
?? | PolyDataToLabelmap | 87.9% | unknown | |||
?? | GaussianBlurImageFilter | 55.9% | unknown | |||
?? | ConfidenceConnected | 87.5% | unknown | |||
?? | ExecutionModelTour | 87.2% | unknown | |||
?? | ImageReadDicomWrite | 86.1% | unknown | |||
?? | CurvatureAnisotropicDiffusion | 64.3% | unknown | |||
?? | GradientAnisotropicDiffusion | 63.4% | unknown | |||
?? | MedianImageFilter | 51.1% | unknown | |||
?? | DWIDicomLoad | 0% | unknown | |||
?? | HistogramMatching | 65.0% | unknown | |||
?? | OtsuThresholdImageFilter | 100% | unknown | |||
?? | OtsuThresholdSegmentation | 90.9% | unknown | |||
?? | Subtract | 71.7% | unknown | |||
?? | Multiply | 77.6% | unknown | |||
?? | Add | 71.7% | unknown | |||
?? | Threshold | 55.8% | unknown | |||
?? | Mask | 80.0% | unknown | |||
?? | Cast | 14.6% | unknown | |||
?? | VotingBinaryHoleFillingImageFilter | 100% | unknown | |||
?? | ModelMaker | 57.4% | unknown | |||
?? | MultipleModelsExample | 1.9% | unknown | |||
?? | GrayscaleModelMaker | 82.1% | unknown | |||
?? | MergeModels | 62.7% | unknown | |||
?? | GrayscaleFillHoleImageFilter | 57.1% | unknown | |||
?? | GrayscaleGrindPeakImageFilter | 64.5% | unknown | |||
?? | LabelMapSmoothing | 87.9% | unknown | |||
?? | ImageLabelCombine | 7.5% | unknown | |||
?? | ResampleVolume2 | 46.8% | unknown | |||
?? | ZeroCrossingBasedEdgeDetectionImageFilter | 62.5% | unknown | |||
?? | FreesurferSurfaceSectionExtraction | 60.0% | unknown |
Testing Partition
Most Slicer modules have a GUI component and a Data Processing component.
Testing GUI components is still a challenge, so we will focus here on testing the Data Processing components. This can be done in most cases by partitioning the module into a GUI section and a Data Processing section, where the second one usually takes the form of a C++ class (although that is not a requirement).
The data processing section can be tested by using standard CTest/CMake mechanisms. Basically by adding ADD_TEST() entries to the CMakeLists.txt file of the module.
Luis Ibanez' scoring system
The following scoring will be applied to the data processing sections of all modules:
Score | Code Coverage | Valgrind Errors | Documentation | Tutorial |
---|---|---|---|---|
Gold | > 80% | 0 | yes | yes |
Silver | > 70% | < 10 | yes | yes |
Bronze | > 60% | < 50 | yes | yes |
Clay | > 50% | < 100 | yes | yes |
Coal | > 50% | > 100 | yes | yes |
Hazard | unknown | unknown | no | no |
The code coverage and Valgrind error must be the ones reported on the Nightly Slicer Dashboard. Anecdotal data is not acceptable.