Testing OpenSync?

Here are some information that may guide people that want to help testing OpenSync, and don't know where to start from.

Setting up OpenSync?

See SetupGuide for information on how to build/setup OpenSync.

What to test

Most of OpenSync code is covered by the so-called "unit tests", that test parts of the code automatically. But they can't replace real user tests completely.

There are some things that needs to be tested more than others, specially the parts that can't be test automatically because they require user interaction. Some examples are: plugin behaviour (mostly KDE and Evolution plugins), and things that affect/are affected by user interaction (e.g. user interface tools usage).

Variables

Some things that may be tested:

  • All object types: addressbook, calendar, to-do, notes
  • All operations: adding, removing, changing data
  • Mapping between the various fields (check if the data

entered on an application is on the correct places on the other application)

  • Conflict handling: combinations of different operations on the same

object on both sides (e.g. a contact changed on evolution, and deleted on KDE)

Checking most combinations you can of the above variables is a good thing. Example: check if adding, removing, and changing is working for all object types.

Test uncommon test cases

It is a good idea to test uncommon and/or unpredicted cases, to see if they can cause some problems on the application.

Uncommon cases that can be tested:

  • Behaviour when the PIM application is not configured yet

(i.e. home directory just created or .{evolution*,kde} directories deleted)

  • Behaviour when the configuration is changed by the user

(e.g. the user runs synchronization, then change the evolution plugin configuration to another calendar, and try to synchronize again)

  • Related to the item above: test behaviour when the user changes filter settings, check if changes made while some filter was set, are being reported and propagated to the other members, after disabling the filter
  • Other ideas you may have. We should really stress the application,

and any ideas when creating uncommon test cases are welcome. Use your creativity :)

Filters

Filters could be tested, too.

Making good tests

If you want to be a good tester, the tests you make should be:

  • Reproducible: if possible, document all necessary steps to reach any problems
  • Documented: take note of all testes that were done, even the successful ones
  • Reported: use the ticket system to report all issues