Testing Object Oriented Systems