Skip to content

Instantly share code, notes, and snippets.

@w1150n
Last active August 29, 2015 14:05
Show Gist options
  • Save w1150n/4c6efd41f020e4a8bff3 to your computer and use it in GitHub Desktop.
Save w1150n/4c6efd41f020e4a8bff3 to your computer and use it in GitHub Desktop.
Guidelines for managing acceptance test data for a shared QA system.
  1. Use unit tests to test as many variations as possible for the app, saving ATDD for system level and breadthy tests.
  2. Assume that other tests or humans are using the system at the same time and that you can't mutate data that another test is using. You will need to uphold this concept to enable you to parallelizing your tests.
  3. Keep a base set of immutable data that is scripted/reseedable so that you can reset the DB to a a given base/seeded state.
  4. For scenarios that need to mutate data, create a new entity for that scenario. Use the app's API if needed. If it doesn't have an API for that, then make one. :)
  5. You will need to define where the lines are for im/mutable data. i.e. Is adding another item to a collection considered "mutating" the data? If not then your test can add a new thingie and just use that.
  6. Use the app's Api's for assisting in assertions. e.g. To validate the data set or counts of things, you can call the backend to make sure the UI is correct.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment