TDD und Code Coverage

8

Ich bin dabei, mich mit Hilfe der Code-Coverage mit der Entwicklung zu befassen, und ich frage mich, wie es typischerweise in die testgetriebene Entwicklung passt.

Ist Code Coverage ein nachträglicher Einfall? Geht Ihr Prozess so etwas wie

?
  1. Schreiben Sie einen Test für die zu implementierende Funktionalität
  2. Führen Sie den Test aus, stellen Sie sicher, dass sie fehlschlagen
  3. Funktionalität implementieren
  4. Test ausführen, stellen Sie sicher, dass sie
  5. bestehen
  6. Schreiben Sie weitere Tests für die Funktionalität, bis die Codeabdeckung 100% (oder fast) erreicht ist

Oder führen Sie Code-Coverage am Ende durch, nachdem zahlreiche funktionale Teile implementiert wurden und gehen Sie dann zurück und arbeiten Sie auf 100% Deckung?

Die dritte Option, die ich mir vorstellen kann, ist eine 100% ige Abdeckung, bevor die Funktionalität implementiert wird.

Welche davon ist am gebräuchlichsten und was sind die Vorteile?

    
Jamie Wong 27.06.2010, 20:12
quelle

3 Antworten

12

Sie schreiben keine Tests, bis die Codeabdeckung 100% erreicht hat. Wenn Sie TDD verfolgt haben, gibt es no Code, der jemals geschrieben wurde, ohne von einem Test benötigt zu werden. Sie sollten also immer in der Nähe von 100% Abdeckung sein.

Stattdessen schreiben Sie Tests, bis alle Tests bestanden haben und bis alle erforderlichen Tests geschrieben wurden. Dies bedeutet, dass der gesamte erforderliche Code geschrieben wurde, da Sie nur Code geschrieben haben, wenn dies für einen Test erforderlich war.

    
John Saunders 27.06.2010, 20:15
quelle
1

Bei TDD sollten Sie bei der Entwicklung von neuem Code fast immer 100% abdecken, da Sie keinen Code entwickeln, den Sie nicht testen müssen. Nur wenn Sie denken, dass der Code so einfach ist, dass Sie keinen Test benötigen (etwa wie eine automatische Eigenschaft in C #), sollten Sie Code haben, der nicht speziell behandelt wird. Sie können durch Refactoring manchmal nicht benötigte Blöcke einfügen oder den Code auf unerwartete Weise ändern, sodass Sie die Abdeckung zu diesem Zeitpunkt verwenden möchten, um sicherzustellen, dass Sie nicht versehentlich nicht getesteten Code eingeführt haben. Abgesehen davon würde ich sagen, dass ich es mehr als eine Gesundheitsüberprüfung benutze und regelmäßig Coverage-Analysen aus den gleichen Gründen mache. Es kann auch sehr nützlich sein, wenn deine Disziplin zusammenbricht und du versäumst, auf TDD-Art zu arbeiten.

    
tvanfosson 27.06.2010 20:19
quelle
0

Denken Sie daran, dass Sie einen Test verwenden können, der tatsächlich Code verwendet, der durch Zufall abgedeckt wird. Sie müssen vorsichtig sein, besonders beim Starten von TDD. Oh, ich bin in dieser Funktion und ich weiß, ich muss diese kleine winzige dünne Abendessen Minze hinzufügen, während ich daran bin, warum nicht eine andere Minze. Bevor Sie es wissen, haben Sie eine Menge ungeprüften Code.

Schreibtest: Fehler Code schreiben: Übergeben Refactor: Bestanden

Nach oben

    
Gutzofter 01.07.2010 04:48
quelle

Tags und Links