wiki:PluginRequirements

Each plugin which is intended to be included in the CrypTool2 release setup, MUST fulfill the following requirements:

  • The plugin is running stable (no uncaught exceptions, no known defects, no ongoing development which changes the publicly visible behaviour)
  • A project template (.cwm) is delivered and runs without errors
  • An XML documentation is provided
  • All text strings shown to the user are internationalized, a German and an English localization is provided
  • The plugin has been tested succesfully

Template

The template must be playable without entering any information. This means, the settings and input fields are predefined with some reasonable example values. A description must be either provided as embedded text or as XML help and must contain the following information:

  • Short Introduction
    • In this part you should describe in general what can be seen in the sample, i.e. what it does.
  • Inputs
    • What are the inputs to this sample (e.g. plaintext, key etc.), which part should the user change to see a difference
    • Are there some restrictions on the input, e.g. only letters allowed or exactly 16 characters/bytes needed.
  • Execution
    • Explain in a step-by-step manner what actions are being executed in the sample
    • Which plugins are being used and if not intutively clear, why
    • Later when it will be possible to mark different areas with colors, also describe what in those areas is happening
  • Output/Result
    • What is the result of this sample
    • What should be noted/learned by this sample?

Testing

Each plugin should provide one unit test. The minimum requirement for this test case is the following: for a given input/output pair the plugin algorithm shall be fed with the input values and the output values shall be checked whether they have been calculated correctly. The source of the input/output values shall be provided as text comment.

More sophisticated tests (multiple test cases, exhaustive data input, high coverage tests, gui tests) are nice-to-have, but not mandatory.

The test case shall use the same mechanism as the other existing test cases (see project DevTestMethods).

Last modified 10 years ago Last modified on Jul 14, 2011, 11:34:46 PM