Hmm,
ich finde den Ansatz mit den Assoziationen nicht so überzeugend. Allerdings komme ich vermutlich aus einem völlig anderen Umfeld der Programmierung.
Normalerweise gibt es ja eine Testphase in denen Anwender deine Software bedienen und Fehler reporten. Mann könnte also annehmen, dass dabei gerade auch die Klassen mit vielen Assoziationen schon gut durchgenommen wurden.
Ich würde zunächst den Focus auf die semantisch wichtigen Sachen legen. Wenn es z.B. eine Software ist, die mit Geld rechnen muss, dann sind disbezügliche Methoden von hoher Wichtigkeit.
Dann sollte man Dinge testen, die durch das einfache durchklicken nur schwer gefunden werden können (z.B. parallele Aufgaben, die im Hintergrund laufen). Wenn du dort ansetzt ergänzt du recht gut den "Durchklick"-Test der Anwender.
Gennerell kann ich dir eine Erfahrung ans Herz legen:
Wenn du einfach nur Tests schreibst, dann ist das zwar schön und gut, aber auf Dauer kümmert sich kein Schwein darum ob sie noch durchlaufen oder nicht. Abhilfe schafft da nur die automatische Ausführing der Unit-Tests.
Für Java gibt es zum Beispiel das Jenkins-Projekt:
http://jenkins-ci.org/
Das ist ein Server, der bei Änderungen im SVN (Git, CVS) automatisch auscheckt, kompiliert, die Unit-Tests ausführt und das Ergebnis per E-Mail an den Nutzer schickt, der eingecheckt hat. Sowas solltest du dir organisieren.