A non-invasive object-oriented tool for software testing