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.