A taxonomy of module interactions for object-oriented testing