2009-07-21 16 views
11

Ich habe 3 Fragen:Was ist Code Coverage?

  • Was ist Testabdeckung?
  • Wofür ist es gut?
  • Welche Tools werden für Analyse Code Coverage verwendet?

Antwort

13

Sie können eine Messung von SO Web-Site sehr gute Informationen bekommen

Free code coverage tools

What is Code Coverage and how do YOU measure it?

Code Coverage wie ist Viele Zeilen/Blöcke/Bögen Ihres Codes werden während der Automatisierung ausgeführt D-Tests werden ausgeführt.CC wird mithilfe eines speziellen Tools gesammelt, um die Binärdateien zu instrumentieren, um Traceaufrufe hinzuzufügen und einen vollständigen Satz von automatisierten Tests für das instrumentierte Produkt auszuführen. Ein gutes CC-Tool gibt Ihnen nicht nur den Prozentsatz des ausgeführten Codes, sondern erlaubt Ihnen auch, in die Daten hineinzubohren und genau zu sehen, welche Codezeilen während eines bestimmten Tests ausgeführt wurden.

Code-Coverage-Algorithmen wurden zuerst entwickelt, um das Problem der Bewertung eines Quellcodes durch direkten Blick auf den Quellcode zu lösen. Code-Coverage gehört aufgrund der Aussagen zu den internen Programmteilen und nicht zu den Systemausgaben zur Kategorie der strukturellen Tests. Daher zielt die Code-Abdeckung darauf ab, Teile des Codes zu finden, die sich nicht testen lassen.

http://www.stickyminds.com/sitewide.asp?Function=edetail&ObjectType=ART&ObjectId=7580 alt text http://www.codecoveragetools.com/images/stories/software_lifecycle.jpg

Das ist gut für

  1. funktionale Abdeckung des Ziel zu finden, wie viele Funktionen oder Prozeduren ausgeführt wurden.

  2. Anweisung oder Zeilenabdeckung, die die Anzahl der Zeilen im Quellcode angibt, wurde ausgeführt.

  3. Bedingungsabdeckung oder Entscheidungsabdeckung beantwortet die Frage nach der Anzahl der Schleifenbedingungen, die im Programm ausgeführt wurden.

  4. Die Pfadabdeckung, die darauf abzielt, alle möglichen Pfade von einem gegebenen Anfangspunkt im Code zu finden, wurde ausgeführt.

  5. Ein-und Ausfahrt Abdeckung, die findet, wie viele Funktionen (C/C++, Java) oder Prozeduren (Pascal) wurden von Anfang bis Ende ausgeführt.

TOOLS

http://www.codecoveragetools.com/

http://java-source.net/open-source/code-coverage

http://www.codecoveragetools.com/index.php/coverage-process/code-coverage-tools-java.html

http://open-tube.com/10-code-coverage-tools-c-c/

http://csharp-source.net/open-source/code-coverage

http://www.kdedevelopers.org/node/3190

+1

Woooww .excellent Beschreibung. Ich hab es geschafft . VIELEN DANK ! – n00ki3

4

Von wikipedia article

Codeabdeckung ist ein Maß in Software-Tests verwendet. Es beschreibt den Grad, zu dem der Quellcode eines Programms getestet wurde. Es ist ein Formular der Prüfung, die den Code direkt überprüft und ist daher eine Form von White-Box-Test 1. Derzeit ist die Verwendung der Code-Abdeckung auf Bereich der digitalen Hardware erweitert, die zeitgenössische Design-Methodik von , die auf Hardwarebeschreibung Sprachen (HDLs) beruht.

Advocating the use of code coverage

Ein Code-Coverage-Tool einfach hält verfolgen, welche Teile des Codes ausgeführt erhalten und welche Teile nicht.

In der Regel sind die Ergebnisse granular auf das Niveau jeder Zeile des Codes. So in einer typischen Situation starten Sie Ihre Anwendung mit einem Code-Coverage-Tool konfiguriert, um es zu überwachen. Wenn Sie die Anwendung beenden, wird das Tool einen Code-Coverage-Bericht erstellen, der zeigt, welche Codezeilen ausgeführt wurden und welche nicht. Wenn Sie die Gesamtzahl der Zeilen zählen, die ausgeführt wurden, und durch die Gesamtanzahl der Zeilen teilen, die hätten ausgeführt werden können, erhalten Sie einen Prozentsatz. Wenn Sie an Code Coverage glauben, die höher den Prozentsatz, desto besser. In Praxis, erreichen 100% ist extrem selten.

Die Verwendung eines Code-Coverage-Tool ist in der Regel mit der Verwendung von einigen Art von automatisierten Test-Suite kombiniert. Ohne automatisierte Tests, ein Code Coverage Tool sagt Ihnen nur, welche Funktionen ein menschlicher Benutzer zu verwenden erinnerte. Solch ein Werkzeug ist viel nützlicher, wenn es Messen ist, wie vollständig Ihre Testsuite in Bezug auf den Code ist, den Sie geschrieben haben.

In Verbindung stehende Artikel

The Future of Code-Coverage Tools

The effectiveness of code coverage tools in software testing

Werkzeuge

Open Source Code Coverage Tools in Java

2

Codeabdeckung ist ein Maß in Software-Tests verwendet. Es beschreibt den Grad, bis zu dem der Quellcode eines Programms getestet wurde.

http://en.wikipedia.org/wiki/Code_coverage

Der Wikipedia-Definition ist ziemlich gut, aber in meinen eigenen Worten abdeckenden Code zeigt Ihnen, wie viel das automatisierte Testen Sie haben ausmachten. 100% würde bedeuten, dass eine einzelne Codezeile in Ihrer Anwendung durch einen Komponententest abgedeckt wird.

NCover ist eine Anwendung für .NET

3

Codeabdeckung ist eine Metrik, die zeigt, wie „gut“ der Quellcode getestet wird. Es gibt verschiedene Arten von Code-Coverages: Line-Coverage, Funktions-Coverage, Branch-Coverage.

Um die Abdeckung zu messen, führen Sie die Anwendung entweder manuell oder durch einen automatisierten Test aus.

Werkzeuge können in zwei Kategorien unterteilt werden: - diejenigen, die den kompilierten Code in einer modifizierten Umgebung (wie der Debugger) ausführen, zählen die erforderlichen Punkte (Funktionen, Linien, etc.); - diejenigen, die spezielle Kompilierung erfordern - in diesem Fall enthält die resultierende Binärdatei bereits den Code, der tatsächlich die Zählung durchführt.

Es gibt mehrere Tools zum Messen und Visualisieren des Ergebnisses, die von der Plattform abhängen, aus der Sprache des Quellcodes.

Bitte lesen Sie Artikel über Wikipedia

Sie Werkzeuge liefern, definieren Sie für die OS und Sprache verwenden Sie.

+0

Code Coverage bedeutet nicht direkt, dass Sie Ihren Code gut getestet haben. Wenn Sie sehr gute Tests durchführen und diese einen hohen Testwert haben, dann haben Sie eine gute Codeabdeckung. – AutomatedTester

+0

Stimmen Sie zu, aber um einen hohen Abdeckungswert zu erhalten, müssen Sie Tests für die vielen Fehlerfälle erstellen, die der Code normalerweise enthält. Dies wird "gute" Tests beinhalten – CsTamas

0

Die anderen Antworten decken bereits, was Code Coverage ist. Der Gedanke, den ich betonen möchte, ist, dass Sie vorsichtig sein müssen, um eine hohe Abdeckung nicht als implizit zu behandeln, was bedeutet, dass Sie alle Szenarien getestet haben. Es sagt nicht unbedingt, wie gut Sie den Code oder die Qualität Ihrer Tests getestet haben, nur dass Sie einen bestimmten Prozentsatz des Codes als Teil der Tests ausgeführt haben.

Hohe Code Coverage bedeutet nicht unbedingt hohe Testqualität, aber hohe Testqualität bedeutet hohe Code Coverage

In der Praxis habe ich in der Regel 90-95% Code-Coverage-Ziel, die oft erreichbar ist. Die letzten paar% sind oft zu teuer, um einen Versuch wert zu sein.

0

Es gibt viele Möglichkeiten, Anwendungen zu entwickeln. Einer davon ist "Extreme Programming" oder "Test Driven Design (TDD)". Es besagt, dass der gesamte Code getestet werden sollte. Code Coverage ist ein Mittel, um zu messen, wie viel getestet wird.

Ich möchte eine kleine Bemerkung dazu machen: Ich denke nicht, dass der gesamte Code getestet werden sollte, noch dass man einen bestimmten Prozentsatz der Codeabdeckung einstellen sollte. Ich glaube auch nicht, dass Code nicht mit Unit Tests (Code Testing Code) getestet werden sollte. Ich denke, man sollte entscheiden, was sinnvoll ist zu testen. Aus diesem Grund verwende ich im Allgemeinen keine Code-Abdeckung.

Eine Sache, die einige Werkzeuge bieten, ist, markieren Sie die Teile, die getestet werden. Auf diese Weise könnten Sie auf Code stoßen, der nicht getestet wurde, aber eigentlich sein sollte, und das ist das einzige, für das ich ihn verwende.

0

Gute Antworten.

Meine zwei Cent ist, dass es keine Testmethode gibt, die alle Fehler abfängt, aber weniger Test wird nie mehr Fehler fangen, so dass alle Tests gut sind. Meiner Meinung nach, Abdeckung Test ist nicht zu zeigen, welche Code hat ausgeübt worden, aber um zu zeigen, welche Code hat nicht ausgeübt worden, weil das ist, wo Bugs lieben zu lauern.

Wenn Sie es mit Single-Stepping kombinieren, ist es eine sehr gute Möglichkeit, Code zu überprüfen und Fehler zu finden. Here's an example.

0

Ein weiteres nützliches Tool zur Sicherstellung der Codequalität (die die Codeabdeckung umfasst), die ich kürzlich verwendet habe, ist Sonar. Hier ist der Link http://www.sonarqube.org/