Monday, September 29, 2008

Test Driven Test Development?

Example JTiger test caseImage via WikipediaWhile the equivalent of Test Driven Development (TDD) is a realistic possibility for automated test development, this is not what I'm considering here. Test Driven Test Development (TDTD) is the unrealistic proposition of trying to get the advantages of TDD for manual test cases.

TDD relies on the development of unit tests prior to the development of the code. Developing unit tests generates additional artifacts - setup, teardown, unit and integration tests. Mocking is also a serious possibility for extending the test capability.

The relationship to automated tests should thus be apparent since any decent automated test is scripted or coded. Unit testing the automated test is therefore possible - and would be more so if the tools and languages they were based on had intrinsic unit test capabilities.

But this is not about existential capabilities but rather extensionalism in the arena of the weird and useless :) How to map the artifacts:

  • Setup - preconditions
  • Teardown - post-conditions
  • Unit test - this would seem to be the issue
So what would a unit test be of a test case? There are some things that could be considered:
  • Completeness tests
  • Coverage metrics
  • Usefulness guesses
  • Estimates of it successfully finding issues
  • QA measurements
  • Ease of repeatability
So maybe TDTD is not quite so weird a concept as there are tests that can be performed against the test cases. Sort of makes one wonder why it seemed to be such a strange concept initially?
Enhanced by Zemanta