Ich bevorzuge BDD, das eine Kombination aus automatisierten Akzeptanztests, möglicherweise anderen Integrationstests und Unit-Tests verwendet. Die Frage, die sich mir stellt, ist, wie hoch die angestrebte Abdeckung der automatisierten Testsuite als Ganzes sein sollte.
Abgesehen davon hängt die Antwort von Ihrer Methodik, Sprache und Ihren Test- und Abdeckungswerkzeugen ab. Bei TDD in Ruby oder Python ist es nicht schwer, eine 100%ige Abdeckung zu erreichen, und es lohnt sich, dies zu tun. Es ist viel einfacher, eine 100-prozentige Abdeckung zu erreichen als eine 90-prozentige. Das heißt, es ist viel einfacher zu füllen Abdeckung Lücken, wie sie erscheinen (und wenn TDD gut Abdeckung Lücken sind selten und in der Regel Ihre Zeit wert), als es ist, eine Liste der Abdeckung Lücken, die Sie nicht bekommen haben, um und verpassen Abdeckung Regressionen aufgrund Ihrer ständigen Hintergrund der unbedeckten Code zu verwalten.
Die Antwort hängt auch von der Vorgeschichte Ihres Projekts ab. Ich habe nur bei Projekten, die von Anfang an auf diese Weise verwaltet wurden, festgestellt, dass die oben genannten Maßnahmen sinnvoll sind. Ich habe die Abdeckung von großen Legacy-Projekten erheblich verbessert, und es hat sich gelohnt, aber ich habe es nie als praktisch empfunden, zurückzugehen und jede Abdeckungslücke zu schließen, weil alter, ungetesteter Code nicht gut genug verstanden wird, um dies korrekt und schnell zu tun.
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.)