Testing of Fault Tolerance Techniques: An Object Oriented Software Perspective