2013-10-07 19 views
5

Sonar gibt einen Wert der Gesamtabdeckung, der eine Kombination aus Zeilen- und Zweigabdeckung ist. Ich bin mir nicht sicher, wie wichtig diese Metrik ist. Was bedeutet der Wert der Gesamtabdeckung? Wie ist es besser als Zeilen- und Filialabdeckung? Irgendwelche Vorschläge wären hilfreich.Sonar-Gesamtüberdeckung

Antwort

3

Hier ist, wie die Gesamtabdeckung berechnet: http://docs.codehaus.org/display/SONAR/Metric+definitions#Metricdefinitions-Tests

Wenn Zweigüberdeckung von weniger als Leitungsabdeckung (und damit niedriger als Gesamtabdeckung), bedeutet dies, dass die Komponententests die wichtigsten Testfälle aber nicht wirklich die Eckfällen .

+0

Dank David! Wenn die Gesamtabdeckung eine Kombination aus Zeilen- und Zweigabdeckung ist, wie werden diese Brüche hinzugefügt? Ich bin immer noch nicht sicher über den Unterschied zwischen Linie und Gesamtabdeckung, da beide die Menge des abgedeckten Codes messen. – Pavneet

+1

Diese Antwort ist unvollständig. Es gibt eine Coverage-Metrik, bei der es sich, wie beschrieben, tatsächlich um eine Kombination aus Zeilen- und Zweigabdeckung handelt. Die metric_coverage-Metrik ist jedoch eine Kombination aus Integrationstestabdeckung (it_coverage) und Komponententestabdeckung (coverage). Wenn einer der Tests eine Linie oder einen Zustand abdeckt, wird er als abgedeckt gezählt. – David

3

Von Sonar in der Dokumentation:

Es ist eine Mischung aus Zeilenüberwachung und Condition Abdeckung. Sein Ziel ist bieten eine noch genauere Antwort auf die folgende Frage: Wie viel der Quellcode wurde durch die Unit-Tests abgedeckt?

Coverage = (CT + CF + LC)/(2*B + EL) 

where 

CT = conditions that have been evaluated to 'true' at least once 
CF = conditions that have been evaluated to 'false' at least once 
LC = covered lines = lines_to_cover - uncovered_lines 

B = total number of conditions 
EL = total number of executable lines (lines_to_cover) 

Quelle: http://docs.sonarqube.org/display/SONAR/Metric+definitions (gefangen 23/02/2015)