A test is a tiny analysis app

A test takes constructs the fixture, exercise the action to be tested, and at the end it checks the result through an assertion. This is very much an analysis:

  • the setting up and the triggering of the action is a data collection step, and
  • the assertion is the actual analysis that distills the tone of exercised data into one of three possible piles: pass, fail or error.

The only particularity of this type of analysis is that it concerns the functionality of a system. The implementation of a test on top of a testing framework (or engine) is an analysis tool. However, given that the implementation of a test usually is very cheap, you might not perceive it as a tool. But, you could consider it to be a tiny app that is dedicated to the particular use case at hand.

Testing a software system basically boils down to building and using regularly and automatically a tone of tiny dedicated apps. But, testing is nothing but a special kind of analysis dedicated to functionality. Given that this strategy works well, it might be a good idea to approach other areas that need to be analyzed, such as the architecture, in a similar manner.

Posted by Tudor Girba at 30 August 2011, 11:24 pm link
|