Skip to content

Optimize the value of your tests by choosing how to tradeoff among various valuable properties.

Notifications You must be signed in to change notification settings

hdvianna/TestDesiderata

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 

Repository files navigation

Test Desiderata

Here are some properties making tests valuable (links lead to 5-minute videos describing each property with Kent Beck and Kelly Sutton):

  • Isolated — tests should return the same results regardless of the order in which they are run.
  • Composable — I should be able to test different dimensions of variability separately and combine the results.
  • Fast — tests should run quickly.
  • Inspiring — passing the tests should inspire confidence
  • Writable — tests should be cheap to write relative to the cost of the code being tested.
  • Readable — tests should be comprehensible for reader, invoking the motivation for writing this particular test.
  • Behavioral — tests should be sensitive to changes in the behavior of the code under test. If the behavior changes, the test result should change.
  • Structure-insensitive — tests should not change their result if the structure of the code changes.
  • Automated — tests should run without human intervention.
  • Specific — if a test fails, the cause of the failure should be obvious.
  • Deterministic — if nothing changes, the test result shouldn’t change.
  • Predictive — if the tests all pass, then the code under test should be suitable for production.

Some properties support each other. Automating tests makes them faster to run.

Some properties interfere with each other. Making tests more predictive of production behavior makes them slower.

Sometimes (and this is the magic), properties only seem to interfere. You can use composability to make tests faster and more predictive.

The original Test Desiderata papers are here and here.

About

Optimize the value of your tests by choosing how to tradeoff among various valuable properties.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published