Meine Antwort auf dieses Rätsel lautet: 100 % Zeilenabdeckung für den Code, den man testen kann, und 0 % Zeilenabdeckung für den Code, den man nicht testen kann.
Meine derzeitige Praxis in Python ist es, meine .py-Module in zwei Ordner aufzuteilen: app1/ und app2/ und beim Ausführen von Unit-Tests die Abdeckung dieser beiden Ordner zu berechnen und visuell zu überprüfen (I muss dies eines Tages automatisieren), dass app1 eine 100%ige Abdeckung und app2 eine 0%ige Abdeckung hat.
Wenn ich feststelle, dass diese Zahlen von der Norm abweichen, untersuche ich den Code und ändere ihn so, dass er der Norm entspricht.
Das bedeutet, dass ich empfehlen kann, eine 100%ige Zeilenabdeckung des Bibliothekscodes zu erreichen.
Gelegentlich überprüfe ich auch app2/, um zu sehen, ob ich dort irgendeinen Code testen kann, und wenn ich es kann, verschiebe ich ihn in app1/
Ich mache mir keine allzu großen Sorgen über die Gesamtabdeckung, da diese je nach Größe des Projekts stark variieren kann, aber im Allgemeinen habe ich 70 % bis über 90 % gesehen.
Mit Python sollte ich in der Lage sein, einen Smoke-Test zu entwickeln, der meine Anwendung automatisch ausführt, während ich die Abdeckung messe und hoffentlich ein Aggregat von 100 % erhalte, wenn ich den Smoke-Test mit den Unittest-Zahlen kombiniere.
0 Stimmen
Heutzutage verfügen viele IDEs über Abdeckungshervorhebung. Stellen Sie sicher, dass Sie zumindest die wichtigsten Teile des Codes abdecken, als dass Sie daran denken, einen bestimmten Prozentsatz zu erreichen.
0 Stimmen
Unit-Tests können per Definition einzelne Methoden, ganze Klassen oder ganze Module sein. Selbst wenn Sie alle Methoden testen, testen Sie möglicherweise nicht alle Pfade oder alle Kombinationen, auf die ein Benutzer stößt. Mit Anweisungs- und Verzweigungsabdeckung und MCDCs wird die Situation noch komplexer.
0 Stimmen
Warum wird diese Frage nicht gelöscht oder ordnungsgemäß bearbeitet? Sie hat so viel Interesse geweckt, aber sie ist völlig irreführend.
0 Stimmen
Eine 100%ige Deckung ist das Minimum. Ich möchte wissen, ob ein Punk ein unerwartetes process.exit(1) eingeführt oder aus Spaß oder Unwissenheit irgendwo hingeworfen hat. Wenn man nicht jede Codezeile in einem Build ausführt, werde ich es einfach nicht wissen, bis dieser Code vielleicht irgendwann in der Produktion verwendet wird.
0 Stimmen
Ich denke, dass man sich das besser umgekehrt vorstellt. Die Codeabdeckung sagt sehr wenig aus, außer dass der Code ausgeführt wurde. LACK der Codeabdeckung andererseits bedeutet, dass der Code NIE ausgeführt wurde. Anstatt also eine hohe Codeabdeckung anzustreben, sollten wir vielleicht eher versuchen, so wenig ungetesteten Code wie möglich zu haben. (Der Grund für diese Unterscheidung ist, dass ausgeführter Code nicht unbedingt getesteter Code ist, aber nicht ausgeführter Code ist definitiv ungetesteter Code. IE: abgedeckter Code sollte nicht so sehr geschätzt werden, wie unabgedeckter Code vermieden werden sollte.)