  It is generally acknowledged that software testing is both challenging and
time-consuming. Understanding the factors that may positively or negatively
affect testing effort will point to possibilities for reducing this effort.
Consequently there is a significant body of research that has investigated
relationships between static code properties and testability. The work reported
in this paper complements this body of research by providing an empirical
evaluation of the degree of association between runtime properties and
class-level testability in object-oriented (OO) systems. The motivation for the
use of dynamic code properties comes from the success of such metrics in
providing a more complete insight into the multiple dimensions of software
quality. In particular, we investigate the potential relationships between the
runtime characteristics of production code, represented by Dynamic Coupling and
Key Classes, and internal class-level testability. Testability of a class is
considered here at the level of unit tests and two different measures are used
to characterise those unit tests. The selected measures relate to test scope
and structure: one is intended to measure the unit test size, represented by
test lines of code, and the other is designed to reflect the intended design,
represented by the number of test cases. In this research we found that Dynamic
Coupling and Key Classes have significant correlations with class-level
testability measures. We therefore suggest that these properties could be used
as indicators of class-level testability. These results enhance our current
knowledge and should help researchers in the area to build on previous results
regarding factors believed to be related to testability and testing. Our
results should also benefit practitioners in future class testability planning
and maintenance activities.
