An empirical analysis of the distribution of unit test smells and their impact on software maintenance
designing reusable classes .