Testing Object-Oriented Software: Life Cycle Solutions