15 Stimmen

Codeabdeckungsanalyse für Funktionale Tests

In dem Projekt, an dem ich arbeite, haben wir funktionale Tests über Selenium geschrieben. Die Anwendung unterliegt funktionalen Änderungen bei jedem Feature-Release.

Gibt es ein Tool / Mechanismus, mit dem wir die Lücken in den automatisierten funktionalen Tests verfolgen können, damit zumindest die manuellen Tester ein Auge auf diese Bereiche haben?

Hinweis: Wir machen kein FTDD, daher kann die funktionale Testabdeckung ziemlich schlecht sein, obwohl wir eine hohe Unit-Testabdeckung sicherstellen. Wir verwenden NCover, um die Unit-Testabdeckung zu überprüfen.

0 Stimmen

Kannst du die Abdeckung deiner Funktionstests nicht auch einfach mit NCover messen?

3 Stimmen

@Bas - Funktionale Tests interagieren nicht direkt mit dem Code. Dies führt dazu, dass die funktionalen Tests sich der Code-Änderungen nicht bewusst sind. Ich persönlich glaube nicht, dass es einen Weg gibt, funktionale Tests mit dem Code in Beziehung zu setzen, da ich sehe, dass die FTs eng mit den Geschäftsabläufen der Anwendung verbunden sind und UTs mit Klassen und Code verbunden sind. Allerdings versuche ich herauszufinden, ob jemand versucht hat, eine Abdeckungsanalyse für FTs durchzuführen. Es könnte gut sein, dass es sich um eine funktionale Abdeckung und nicht um eine Code-Abdeckung handelt.

0 Stimmen

Welchen Webserver verwenden Sie? Ich weiß, dass NCover dies mit IIS kann.

4voto

Ivo Grootjes Punkte 612

Es gibt mindestens zwei (kommerzielle, aber preiswerte) Tools, von denen ich weiß, dass sie es ermöglichen, sich an den IIS-Prozess anzuhängen, um Coverage-Daten für IIS-Anwendungen zu erfassen.

NCover:

NCover enthält den Befehlszeilenschalter //iis. Dieser Schalter richtet die Coverage-Umgebung innerhalb von IIS ein und startet den Webserver neu. Sie führen NCover folgendermaßen aus, um die Abdeckung Ihrer Webanwendungen zu analysieren:

NCover.Console.exe nunit-console.exe TestAssembly.dll //iis Wenn Sie NCover auf diese Weise ausführen, wird IIS neu gestartet, um NCover zu ermöglichen, Ihre Abdeckung zu überwachen, und Ihre Tests werden durchgeführt. Sobald der Vorgang abgeschlossen ist, wird NCover IIS stoppen und sich selbst lösen.

Siehe: http://docs.ncover.com/how-to/code-coverage-of-asp-net-applications-on-iis/

DotCover von Jetbrains:

DotCover bietet eine Visual Studio-Integration, die es Ihnen ermöglicht, sich genauso an einer IIS-Anwendung anzuhängen, wie Sie es tun würden, wenn Sie Ihre IIS-Anwendung nachverfolgen würden. Dies kann wahrscheinlich auch mit dem Kommandozeilen-Tool von dotCover gestartet werden, obwohl ich dies tatsächlich noch nie ausprobiert habe.

Siehe http://www.jetbrains.com/dotcover/

Ich glaube, Rational und Microsoft Teamsystem haben auch Lösungen, aber sie sind etwas teurer.

3voto

orangepips Punkte 9721

Wir verwenden ein System zum Testen, bei dem eine Person eine textuelle Erzählung - ein Testskript - für manuelles Testen der Funktionalität erstellt. Dies wird in irgendeiner Form aufgelistet (z. B. [Funktionalität]-001). Dann werden unsere Selenium-Tests als Abdeckung einer oder mehrerer dieser Auflistungen vermerkt.

Wenn neue Funktionalitäten erstellt werden, werden neue Testskripte geschrieben und aufgelistet. Dann können wir mit dem Selenium-Testen seine Liste dessen, was automatisiert ist, im Vergleich zu den aufgelisteten Testskripten vergleichen - der Unterschied ist das, was manuell getestet werden muss.

2voto

Ira Baxter Punkte 91118

Einige unserer Testabdeckungstools (derzeit für Java, C# und COBOL) sind so konzipiert, um mit dieser Art von Dingen umzugehen.

Wenn Sie Ihre Anwendung ausführen und eine bestimmte Funktion ausführen, können Sie diese Testabdeckungstools verwenden, um Codeabdeckungsdaten für diese bestimmte Funktionalität zu sammeln. Im Wesentlichen handelt es sich dabei um eine Aufzeichnung aller Codes, den die Funktionalität ausführt. Mit einigen geringfügigen Skriptanpassungen können Sie dafür sorgen, dass jeder Funktionalitätstest durchgeführt wird und Codeabdeckungsdaten für diesen Test erhalten.

Die gesammelten Testabdeckungsvektoren können vom Tool zu einem Zusammenfassungsvektor kombiniert werden, der Ihnen den Codeabdeckungswert für Ihren Code basierend auf dem gesamten Satz von Funktionalitätstests liefert.

Ändern Sie den Code, teilt Ihnen das Testabdeckungstool mit, welche Codeblöcke sich geändert haben (es vergleicht auf Methodenebene nach Unterschieden). Dies kann wiederum auf die bereits gesammelten Testabdeckungsvektoren für einzelne Funktionalitäten angewendet werden; wenn es eine Überschneidung gibt, müssen Sie den Funktionalitätstest erneut ausführen, da sich der Code, von dem er abhängt, geändert hat.

Auf diese Weise können Sie entscheiden, welche Funktionalitäten nach einer Änderung erneut getestet werden müssen.

0voto

Addys Punkte 2411

NDepend hat die Fähigkeit, Code Coverage-Deltas zwischen verschiedenen Versionen anzuzeigen.

von der NDepend-Website (http://www.ndepend.com/Features.aspx#Coverage):

Das Schreiben automatischer Tests ist eine zentrale Praxis, um die Code-Korrektheit zu erhöhen. Zu wissen, welcher Teil des Codes von automatischen Tests abgedeckt wird, hilft dabei, Tests zu verbessern und folglich die Code-Korrektheit zu erhöhen.

NDepend sammelt Code-Coverage-Daten von NCover™ und Visual Studio Team System™. Aus diesen Daten leitet NDepend einige Metriken zu Methoden, Typen, Namensräumen und Assemblys ab: PercentageCoverage, NbLinesOfCodeCovered, NbLinesOfCodeNotCovered und BranchCoverage (nur von NCover).

Diese Metriken können gemeinsam mit anderen NDepend-Funktionen verwendet werden. Zum Beispiel können Sie feststellen, welcher Code seit der letzten Veröffentlichung hinzugefügt oder umstrukturiert wurde und nicht vollständig von Tests abgedeckt ist. Sie können eine CQL-Beschränkung schreiben, um kontinuierlich zu überprüfen, ob eine Reihe von Klassen zu 100 % abgedeckt ist. Sie können auflisten, welche komplexen Methoden mehr Tests benötigen.

Ein Video-Demo finden Sie hier: http://s3.amazonaws.com/NDependOnlineDemos/Coverage_viewlet_swf.html

0voto

Sathishwaran Punkte 1

Schlagen Sie ein funktionalitätsabdeckungstool für .NET Core vor

Ncover: Hat keine Unterstützung für .NET Core

dotcover: Es gibt einen Fehler im offenen Zustand

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X