Wie funktioniert Cobertura mit JUnit?

Ich kann nicht verstehen, wie Cobertura mit JUnit zusammenarbeitet. Wie ich verstanden habe, ändert Cobertura kompilierten Byte-Code und fügt in diesen Byte-Code seine eigenen Befehle ein. In Ordnung. Danach führen wir das Junit-Framework aus und geben es unseren Tests zum Ausführen. Kann jemand erklären, an welchen Stellen Cobertura die Informationen erhält, welche seiner Befehle ausgeführt wurden?