Skip to end of metadata
Go to start of metadata

The setup we're are trying to achieve is the following:

  • Write all the automated acceptance tests to run using dojo's robot (or more exact: dijit.robotx)
  • Use testswarm to run the (dojo robot) acceptance tests
  • Use Bamboo Continuous Integration Server to trigger the addition of acceptance testing jobs to the TestSwarm
  • Have set of clients running in virtual machines that are at all times connected to the swarm to run tests.

Dojo Robot:

Test Swarm:

Acceptance Testing:

General remember to test stuff:
  • keyboard/tab ordering, including enter saves
  • summary fields contains the right stuff
  • Do wrong stuff and check for correct error messages
  • When searching for a field, consider performance. Ie. refer to ID if possible, use element type, narrow search by parent element.
Considerations:
  • Do thorough field-level tests for all fields, or only a few?
  • Use cspace-config.xml to base tests on? or keep it black box?
  • What parts should be priority for writing tests?
  • How do we write the tests (or template them) in a way that it is as easy as possible to write them?
  • Is there a reason that UI doesn't use ID? - performance-wise it's better, and it's less error prone
  • Would it make sense to use jquery along with the dojo framework to improve command availability - as well as standardizing acc. tests with cspace jscript code
  • follow up with justin about their jquery (or qUnit) wrapper for dojo robot
  • Could it be worth the effort to write a new robot for jquery using/stealing/rewriting dojo's code.. Speeding things up, making cspace stuff more streamlined, tweak to our needs?

Acceptance tests to be done:

Regular text field:
  • Fill in some standard text -> check if properly saved
  • Fill in text of length X -> same
  • Fill in text overflowing -> check for proper error message
  • Fill in non latin1 chars -> check if properly saved
Text areas
  • Fill in standard text -> check if properly saved
  • Fill in newlines -> same
  • Fill in text of length Y -> same
  • Fill in non-latin1 chars -> same
Drop downs
  • Select value -> check if properly saved
Date fields
  • Write date in DD-MM-YYYY format -> check if properly saved
  • Write date in various formats -> check if interpreted properly + no error message
  • Write invalid date formats -> check for error message
  • Clear text from field -> no error message
  • Datepicker: select by date
  • Datepicker: select month only
  • Datepicker: next/previous year
  • Datepicker: next/previous month
  • Datepicker: Use datapickers "none" -> check if clears field
Vocabulary fields
  • write non-existing, not partial matching -> add -> check if saved
  • write non-existing, partial matching -> add -> check if saved
  • in multi-vocabulary field -> write partial matching, non-existing -> add to one type -> check if saved/added
  • in multi-vocabulary field -> write partial matching, non-existing -> add to second type -> check if saved/added
  • write non-existing, partial matching -> select existing -> check if saved
  • write exact match -> add should not be available
  • clear saved authority with keyboard -> check if properly cleared
  • clear saved authority with clear symbol -> check if cleared properly
  • write anything -> clear -> field should be cleared
  • write exact match -> select matching vocab
Repeatable fields
  • Do test plans tests:
    • add multiple non filled
    • add multiple some filled
    • delete some
  • Do primary ones
Repeatable groups
  • Same as repeatable fields
Per record/authority:
  • Fill in all fields -> check if saved
  • clear all fields (except id) -> same
  • check that drop downs contain the proper values
  • Check focus order by tab
  • check all that should be repeatable are (fields/groups)
  • check ID number incrementing
  • check save without ID
  • check heading is correct
right frame - authorities
right frame - related procedures
right frame - related objects
login page
my collectionspace page
user management page
user creating/login
permissions page
permission enforcements
  • No labels