Ein Freund von mir erklärte an seinem Arbeitsplatz, wie sie Ping-Pong-Pairing mit TDD machen und er sagte, dass sie einen "gegnerischen" Ansatz verfolgen. Das heißt, wenn die testende Person die Tastatur an den Implementierer übergibt, versucht der Implementierer, die einfachste (und manchmal falsche) Sache zu machen, um den Test bestehen zu lassen.Adversarial/Naive Pairing mit TDD: Wie effektiv ist es?
Zum Beispiel, wenn sie Testen einer Methode getName() und die Testprüfungen für „Sally“, die Umsetzung der GetName-Methode würde einfach sein:
public string GetName(){
return "Sally";
}
Welche wäre natürlich, Pass der Test (naiv).
Er erklärt, dass dies hilft, naive Tests zu eliminieren, die nach bestimmten Werten suchen, anstatt das tatsächliche Verhalten oder den erwarteten Zustand der Komponenten zu testen. Es trägt auch dazu bei, mehr Tests zu erstellen und letztendlich das Design und die Anzahl der Fehler zu verbessern.
Es hörte sich gut an, aber in einer kurzen Sitzung mit ihm schien es viel länger zu dauern, um eine einzige Runde von Tests zu absolvieren als sonst und ich hatte nicht das Gefühl, dass viel zusätzlicher Wert gewonnen wurde.
Verwenden Sie diesen Ansatz, und wenn ja, haben Sie gesehen, dass es sich auszahlt?
Ich kann sehen, dass die Leute wütend darüber werden, aber zumindest in der Mannschaft dieses Kerls waren sie Freunde und sie erkannten, dass sie keine Klugscheißer waren und nur versuchten, die bestmöglichen Tests durchzuführen könnte, so hat es gut für sie funktioniert – chadmyers