Purpose

The module Tester contains many tools to check modules for a number of typical programming errors, lazy programming, old style concepts, memory leaks, memory block exceeds and many more.

The Tester also runs module checks so that a large number of module parameters and situations are covered which typically cannot be tested by hand.

Usage

  1. Create a Tester module.
  2. Specify the modules your want to test. You can do that by creating a field connection from Connect Modules from Here to any field of the modules to be tested and then by pressing Get Connected Modules to create the list of modules to be tested. Alternatively you can use the button Get Runtime Modules to get all module types registered in the runtime type system or Get Instantiated Modules to get the current module instances.
  3. Select the tests to be applied in Tests to Run the Preferences Panel of the Tester module.
  4. Use Test Presets to set some limit for testing times and for image sizes to be used.
  5. Exclude those modules in Do Not Test which shall not be tested.
  6. Use Start Testing / Stop Testing and/or Reset Tests to apply the tests to the selected modules.
  7. Have a look to the Report and the Messages fields for test results.

Windows

Default Panel

../../../Modules/ML/MLDiagnosis/mhelp/Images/Screenshots/Tester._default.png

Parameter Fields

Visible Fields

Status

name: status, type: String, persistent: no

Shows the status of the module.

Connect Modules from Here

name: moduleConnection, type: Trigger

Connect any field of a module to be tested from this field.

The connection will make the connected module known to the Tester module. Press Get Connected Modules after having established connections.

Get Connected Modules

name: getConnectedModules, type: Trigger

If pressed, the list of modules to be tested is being filled with connected modules.

See Connect Modules from Here.

Get Runtime Modules

name: getRuntimeModules, type: Trigger

If pressed, all modules registered to the runtime type system are being added to the list of modules to be tested.

Get Instantiated Modules

name: getInstantiatedModules, type: Trigger

If pressed, all instantiated modules are being added to the list of modules to be tested.

Max Voxels for Test Images

name: imgSizeLimit, type: Integer, default: 32768

Sets the maximum number of voxels for test images to limit the complexity of the test.

Max Seconds for all Modules

name: secsTotal, type: Integer, default: 900

Sets a limit of time for the testing of all modules.

Max Milliseconds Per Module

name: mSecsPerModule, type: Integer, default: 10000

Sets a limit of time for a single module test.

Max Milliseconds Per Single Test

name: mSecsPerTest, type: Integer, default: 2500

Sets a limit of time for a single test.

Try Memory Leak Detection

name: tryMemoryLeakDetection, type: Bool, default: TRUE

If checked, the Tester tries to detect memory leaks.

Start Testing

name: startTesting, type: Trigger

If pressed, the selected and configured tests are being started.

Stop Testing

name: stopTesting, type: Trigger

If pressed, the testing is being stopped.

Do Not Test

name: doNotTest, type: String, default: ErrorTest, Tester, Test, Control, Checksum

Sets a list of modules that are excluded from being tested.

Reset Tests

name: resetTests, type: Trigger

If pressed, all tests are being reset.

Test

name: moduleView, type: String, persistent: no

Shows a list of modules that are to be tested.

Test Messages (infoView)

name: infoView, type: String, persistent: no

Shows the messages that are generated by the tests.

Test Messages (reportView)

name: reportView, type: String, persistent: no

Shows detailed messages generated by the tests.

# Fatal Errors

name: fatalInfos, type: Integer, persistent: no

Shows the number of fatal errors reported by the ML.

# Infos

name: informationInfos, type: Integer, persistent: no

Shows the number of information messages reported by the ML.

# Warnings

name: warningInfos, type: Integer, persistent: no

Shows the number of warning messages reported by the ML.

# Hints

name: hintInfos, type: Integer, persistent: no

Shows the number of hint messages generated by the Tester.

# Notices

name: noticeInfos, type: Integer, persistent: no

Shows the number of notice messages generated by the Tester.

# Test Errors

name: testErrorInfos, type: Integer, persistent: no

Shows the number of test errors reported by the Tester.

# Test Warnings

name: testWarningInfos, type: Integer, persistent: no

Shows the number of test warnings reported by the Tester.

# Test Timeouts:

name: timeoutInfos, type: Integer, persistent: no

Shows the number of test timeouts reported by the Tester.

Enable All Tests

name: enableAllTests, type: Trigger

If pressed, all tests are being enabled.

Disable All Tests

name: disableAllTests, type: Trigger

If pressed, all tests are being disabled.

Enable Stability Tests

name: enableStabilityTests, type: Trigger

If pressed, the runtime stability tests are being enabled.

Enable Standard Compliance Tests

name: enableStandardComplianceTests, type: Trigger

If pressed, all standard compliance tests are being enabled.

Test Field Types

name: testFieldTypes, type: Bool, default: TRUE

If checked, the correct initialization of field types is being checked.

Test Field References

name: testFieldReferences, type: Bool, default: TRUE

If checked, it is tested whether fields use deprecated value references.

Test Field Styles

name: testFieldStyles, type: Bool, default: TRUE

If checked, the field styles are tested whether they comply to the standard.

Test Field Names

name: testFieldNames, type: Bool, default: TRUE

If checked, the field names are tested whether they comply to the standard.

Test Page Extents

name: testPageExtents, type: Bool, default: TRUE

If checked, it is tested if the page extents are set to reasonable values.

Test New Delete

name: testNewDelete, type: Bool, default: TRUE

If checked, each module is added to and then deleted from the network to check for memory leaks.

Test Instantiation

name: testInstantiation, type: Bool, default: TRUE

If checked, eacj module is instantiated on a network.

Test Field Touches

name: testFieldTouches, type: Bool, default: TRUE

If checked, all fields of the modules are being touched.

Test Multiple Input Images

name: testMultipleInputImages, type: Bool, default: TRUE

If checked, the module tests are performed with multiple, varying input images.

Touch Fields

name: runMultipleInputImagesFieldTouches, type: Bool, default: TRUE

If checked, the test enabled with the option Test Multiple Input Images performs a touch() on all fields of a module after connecting an input image.

Request Data

name: runMultipleInputImagesDataRequests, type: Bool, default: TRUE

If checked, output images (if available) are requested from a module after attaching each input image while performing the test enable with the option Test Multiple Input Images.

Test Base Inputs WOTouch

name: testBaseInputsWOTouch, type: Bool, default: TRUE

If checked, different inputs derived from Base and a NULL object are connected to a Base input. No field is being touched but the memory is checked for leaks.

Test Base Inputs WTouch

name: testBaseInputsWTouch, type: Bool, default: TRUE

If checked, different inputs derived from Base and a NULL object are connected to a Base input. Alls field are being touched and the memory is checked for leaks.

Test Arbitrary Field Values

name: testArbitraryFieldValues, type: Bool, default: TRUE

If checked, a variety of field values are being set to all fields of the module to be tested.

Hidden Fields

testedPercentage

name: testedPercentage, type: Float, persistent: no