Fragen zu Testabdeckungs-Metriken

Zrebna

Bekanntes Mitglied
Hi!

Mithilfe von Tools wie EclEmma Java Code Coverage ist es möglich die Testabdeckung eines Projektes zu messen.
Jetzt gibt es hier verschiedene Metriken:

Ich kenn den Unterschied zwischen Anweisungs-/Zeilen- und Pfadabdeckung, aber ich bin mir nicht sicher, was mir EclEmma da genau liefert.
Angenommen ich würde da die Metrik 'Instruction' auswählen, als Anweisungsüberdeckung. Sagt mir dann die ausgegebene Metrik

a.) Wieviele Anweisungen in dem gesamten Nicht-Test-Codes meines Java-Projektes überhaupt getestet wurden?
b.) Oder bezieht sich die Metrik drauf, dass sie sich alle Tests ansieht und prüft wieviel % Anweisungsüberdeckung innerhalb den Tests (nur UNit-Tests?) gegeben ist?
?
Also a.) guckt nach, wieviel von meinem Code (src/main/java) getestet worden ist und b) bezieht sich auf die Tests selber, also wieviel % von allen Anweisungen sind durch diesen Test abgedeckt.

Angenommen man möchte als Fragestellung herausfinden, wie hoch die Testabdeckung auf UNit-Ebene in dem Softwareprodukt eines Unternehmens ist. An welcher Metrik wäre man hier typischerweise interessiert?

Lg
Zrebna
 
Wenn ich es richtig im Kopf habe: es dürfte keine Rolle spielen, durch welchen Test eine Anweisung ausgeführt wurde oder ob eine Anweisung mehrmals (auch in verschiedenen Tests) ausgeführt wurde: am Ende wurde die Anweisung entweder ausgeführt oder eben nicht. Lässt Du nur einen Test laufen, der nur eine Methode testet und diese Methode auch keine anderen Methoden verwendet, dann wäre die Testabdeckung der anderen Methoden 0. Würde die getestete Methode dagegen andere Methoden aufrufen, würde dies die Abdeckung dieser Methoden entsprechend erhöhen. Aber das kannst Du ja leicht selbst ausprobieren.
 
Hier noch eine generelle Frage:

Die Testabdeckung bzgl. Unit-Tests misst man ja oft mit entsprechenden Tools, um hierzu Metriken zu erhalten.

Was macht man bzgl. der Abdeckung der Software in Form von Integrationstests?
Sind hier auch irgendwelche quantitativen Metriken interessant und mit Tools messbar? Oder geht man hier bei der Evaluierung nicht-quntitativ vor, weil es ja eher darum geht, wie gut bestimmte unterschiedliche Komponenten, Schnittstellen des Systems, etc. zusammenspielen? Nach ersten Recherchen, scheitn es so sein, dass man hier eher nicht-quantitativ vorgeht und evaluiert, aber ich möchte auch hier nachfragen.

@LimDul
Wie macht ihr das? Ich glaube mich zu erinnern, dass ihr ca. 40 Integrationstests in einem eigenem Sub-Maven-Projekt habt.
Bestimmt ihr da irgendwie welche Bereiche diese Integrationstests abdecken und welche nicht? Und wie macht ihr das? Gibt es hierzu doch irgendwelche quantitativen Test-Coverage-Metriken in Zahlen oder evaluiert ihr diesen Punkt eher "qualitativ"?
 
Wir werten die Testabdeckung gar nicht. Insbesondere bei den Integrationstest interessiert die uns gar nicht - da geht es darum, dass fachliche Prozesse zu testen.
 

Zurück
Oben