High: Tests directory
High: more api functions for tests to use
High: remove hard-coded test cases
High: introducing ability to execute randomized test iterations
Low: cleanup failcount after failure recovery test