Shared Records Test Plan
Startup conditions
There a number of possible startup conditions for the application. For a full test, the app needs to be tested under each of the following initial conditions.
- Installed onto the hard drive, all tests run in series.
- Installed onto the hard drive, closed, and re-started, all tests run after a restart of the application.
- Installed onto the hard drive, uninstalled but with datastore left intact, then run off the CD against the old local datastore.
- Loaded from CD, never installed
- Loaded from CD, closed, and restarted
- Installed onto the hard drive, closed, and then loaded from the CD.
Config options
Each of these conditions needs to be tested with each of the following config options.
- Local Data Store
- Remote Data Store
- Remote Data Store with Local Mirror
Basic function tests
Since part of the test plan is checking that the preferences dialog works correctly, these preferences should be set in the .properties file before the application is launched.
Tests of basic functionality (for each task, the task should be completed twice: once using the GUI buttons and other widgets, once using the Enter key and any other keyboard shortcuts that may be applicable)
- Create a new user.
- Passes if no error dialogs are displayed and if manual inspection of the Data Store confirms that a folder was created for this user.
- Create records.
- Create an anonymous record.
- Passes if no error dialogs are displayed, if manual inspection of the Data Store confirms that a record was created.
- Create an owned record with a user account.
- Passes if no error dialogs are displayed, if manual inspection of the Data Store confirms that a record was created.
- Create a record with "print" checked.
- Passes if the record is created and the user is able to print the QR code.
- Create a record with "save image" checked.
- Passes if the record is created and the user is able to save the QR code to an image file.
- Create a record by dropping a file into the auto record directory.
- Passes if manual inspection of the Data Store confirms that a record was created.
- When testing under Remote Data Store with Caching, this needs to be tested under three configuration constellations. This also doubles as a test of the synchronization protocol.
- While disconnected from the network
- After connecting to the network and synching files (check that the file synch has worked by inspecting the Local and Remote Data Stores and diffing the contents of each. With clean starting state on both server and client, there should be no differences)
- After files have been synched, from a fresh installation of the app that does not have the old Local Data Store
- Create an anonymous record.
- View a record
- View a record by scanning the QR code for an ownerless record
- Passes if no error dialogs appear and if the record displays.
- View a record by scanning opening a QR image file for an ownerless record
- Passes if no error dialogs appear and if the record displays.
- View a record by manually typing in the Record UID and using the user’s password to retrieve the private key for the owner
- Passes if no error dialogs appear and if the record displays.
- View a record by scanning the QR code for an ownerless record
- Add Metadata to an existing record
- Passes if no error dialogs are displayed and if manual inspection of the Data Store confirms that the metadata file for this record increased in size.
- View Metadata to a record.
- Passes if no error dialogs appear and if the metadata displays
- Share an owned record
- Passes if the recipient account can view the record.
- Attempt to create a duplicate User ID
- Passes if the action fails prior to asking for a user password.
- Attempt to share an ownerless record
- Passes if the action results in a failure dialog that ownerless records cannot be shared.
- Attempt to share an owned record that the target account does not own.
- Passes if the action results in a failure dialog
- Attempt to read the QR code of a non-existent record ID.
- This test requires that you either have QR code that you know does not exist in the mode of the datastore you are testing. The easiest way to create such a record is to create it in local data store mode on a separate machine from your test machine. This test passes if an error message appears saying there was an attempt to retrieve a non existent record.
- Attempt to read a QR code that is malformed. The image may be found here: (to fill in)
- Passes if an error message dialog appears that the QR code is not in the proper format.
- Attempt to launch the application with no root private/public keys.
- The application should display an error message when the user tries to perform any function that requires application keys (create a record, create metadata)
- Attempt to launch application and entered bad application password.
- The application does not require a password at startup anymore, but requires a password the first time the user tries to do something that requires access to individual users keys (create account, retrieve record using a private key, share record using a private key). If a bad app password is entered, the application displays an error message and the user is given a second chance. If a bad password is entered again, the action gets cancelled.
- Attempt to launch application with same alias and newly generated private/public keys.
- This should fail with an appropriate error message when the user tries to perform any function that requires application keys (create a record, create metadata)
- Attempt to launch application with keys on both root and cd-rom.
- The application will launch using the alias and keys in the first drive where keys are found (typically the C: drive)
- (Local with Caching mode only) Synchronize data with remote server and work remotely.
- Ensure that the locally created records are stored on the remote server and normal operations can continue in remote mode.
Remote and Local Switching Tests
The following tests should be run once for each install mode.
- Test write of records with local mirror.
- Create a record in Remote mode with local mirror. Then switch to Local only mode and try to retreive it. Then switch to Remote mode with no mirror and try to retreive it.
- Passes if the record can successfully be retreived in all three modes.
- Create a record in Remote mode with local mirror. Then switch to Local only mode and try to retreive it. Then switch to Remote mode with no mirror and try to retreive it.
- Test read of records with local mirror.
- Create a record in remote-only mode. Then switch to remote with local mirror and try to retreive it.
- Passes if the record can successfully be retreived.
- Repeat this test, but this time create it in local-only mode.
- Create a record in remote-only mode. Then switch to remote with local mirror and try to retreive it.
- Test write of records on retreival in mirror mode.
- Create a record in remote-only mode. Switch to remote with local mirror mode and retreive it. Then switch to local-only mode and try to retreive it.
- Passes is the record can be retreived in local only mode (it should be stored locally after it is read in mirror mode).
- Repeat this test, but create it it local-only mode.
- Create a record in remote-only mode. Switch to remote with local mirror mode and retreive it. Then switch to local-only mode and try to retreive it.
- Test metadata aggregation and synchronization.
- Create a record in remote mode with local mirror. Switch to local-only mode and add metadata. Then switch to remote-only mode and add different metadata.
- Ensure that in local-only mode you only see the locally added metadata, and the same for remote-only mode.
- With the previous record, now switch to remote with local mirror mode and retreive all metadata.
- Ensure that now all remote and locally added metadata is visible. Also there should be no duplicate metadata entries (e.g. fileExtension).
- Continuing with this record - switch back to local-only and remote-only mode and get the metadata again.
- Now remote only and local only modes should have a copy of all the added metadata.
- Create a record in remote mode with local mirror. Switch to local-only mode and add metadata. Then switch to remote-only mode and add different metadata.
