Unit Test has been around almost as long as software development itself. It just makes sense to take each application building block, build it in isolation, and execute it with test data to make sure that it does just what it should do without any confusing input from the remainder of the application. In the past, the sting came from not being able to simply lift a software unit from its development environment, compile and run it let alone supply it with test data.