This paper presents a probe-based testing technique that facilitates observing internal details of execution at different
levels of abstraction-unit, integration and system levels, during testing of object-oriented software. Our technique adapts
probe, an observability measure, to suit the testing needs of object-oriented software. It uses source-code instrumentation,
which requires probes to be pre-determined and pre-built in the software during the development phase. Test coverage reports
are generated from the information gathered by the executed probes. It includes coverage of probes at probe, method, class,
inheritance, regression and dynamic binding levels. During regression testing, our technique helps in the selection of test
cases that must be re-executed. Furthermore, the log generated by active probes can be used for post-analysis.