Automatisiert Tests zu erkennen, die nicht scheitern können, überprüft in von Mindestcodeabdeckung zu bekommen?

StackOverflow https://stackoverflow.com/questions/105330

  •  01-07-2019
  •  | 
  •  

Frage

Ich habe einen Entwickler, die durch Schreiben von Tests rund um unsere Code-Coverage zu erhalten, die nie versagen.

Der Code ist nur scheußlich, aber die Tests es nie fangen, weil sie behaupten (true).

I Code-Review, aber ich kann nicht für sie tun jedermanns Arbeit, die ganze Zeit. Wie bekommt man Liebhaber motiviert gute Software zu machen?

Gibt es eine Build-Plugin für Tests erfassen, die nicht fehlschlagen können?

C #, MbUnit Tests.

War es hilfreich?

Lösung

Echtmotivationsschub kommt von innen. Einige Leute werden Spiel das System bei jeder Gelegenheit sie manchmal aus keinem anderen Grund bekommen, als sie können. Andere tun es einfach, weil sie Hacks sind.

Das heißt, Ihr den Manager davon aus, haben eine „kommen zu Jesus“ Treffen mit dem Entwickler. Wenn das immer noch nicht funktioniert, gibt es immer die Tür.

Wenn Sie nicht der Manager sind, dann nehmen Sie die richtigen Kanäle.

Andere Tipps

Ich glaube, du hast fast die Frage für sich selbst dort beantwortet. Wenn Sie jemanden für Sie arbeiten oder mit Ihnen (Sie sind nicht klar nicht, ob Sie diesem Entwickler Manager sind) dann, wenn sie nicht den Job tun, richtig dann sicherlich gibt es Verfahren, die es klar, diese Person zur Verfügung stellen sollen, dass sie nicht Arbeit auf einen akzeptablen Standard zu erzeugen.

Ist der Entwickler neu TDD? Vielleicht brauchen sie gute Tests zu schreiben usw. etwas Nachhilfe Sonst brauchen sie einen Tritt in den Hintern und haben es ihnen betonte, dass die Tests als wenn nicht wichtiger als der Code, den er / sie produziert.

Ach ja, und auf das Plugin Sache, vergessen, dass nur der gleiche Code bewerten Sie tun sollte gut genug sein.

Sie sollten wirklich die Sprache / Rahmen geben Sie verwenden.

Im einfachsten Fall, nehme ich es einfach sein sollte assert(true) Strings mit einfachen grep-ping zu erkennen.

Sie können immer einen Testlauf mit Müll für die Anwendungskonfigurationswerte versuchen.

Jede Tests, die verdächtig sind passieren?

Statt Zeit auf der Suche nach Tests zu verbringen, die nicht versagen können, wie etwa die Tests ein bisschen erstreckt - den Code macht in vielerlei Hinsicht scheitern. Das wäre

  • Zeigen Sie ihm, wie eine bessere Tests schreiben
  • Zwingen Sie ihn seinen Code zu beheben, und schlechten Code zu verhindern, in geprüft wird

Ein Stück fehlerhaften Code muss man gut als Ausgangspunkt wäre verwenden - Sie müssen sicher sein, es funktioniert ...

Nehmen Sie die Schnittstelle er testet und reduzieren sie auf der einfachsten Form. Mit anderen Worten, nehmen Sie die Klasse / Methodensignaturen und nur den Code hinzufügen, benötigt darüber hinaus zu kompilieren. Führen Sie seine Tests dagegen. Fragen Sie ihn, warum seine Prüfungen vorbei sind, wenn das Programm tut nichts.

Code Review, die von zwei oder mehr Entwicklern, die bereits infiziert sind, testen, ist wahrscheinlich der beste Weg, um die Entwickler in Frage zu kommen, dass die automatisierten Unit-Tests, um zu sehen ist wirklich nicht so schwierig, noch ungewöhnlich. zwei Test infizierten Entwickler auf jeder Überprüfung hat, wird die Bedeutung der Qualität von Unit-Tests mit ihm verstärken. Auch ihm Bewertungen anderer Entwickler Code zuweisen, die gut getestet wird ihm helfen, lernen, wie man Unit-Test.

Sie sollten einen Blick haben einige Mutation Test , schwache Tests nachzuweisen. Nester , (der NET-Äquivalent von Jester ) ist ein Werkzeug, das Sie nützlich sein können.

Bitte lassen Sie uns wissen, wie Sie gehen!

Update: Ich kam über: „Warum, immer noch die meisten Entwickler nicht Unit-Tests schreiben?“ und dachte, es hier gute Lektüre als auch sein würde.

Ich glaube, Sie versuchen müssen, um ihn zuerst einen versagende Test zu schreiben. Versuchen Sie, ihn in diese Gewohnheit zu bekommen. Oft ppl neue Unit-Tests haben eine harte Zeit, sie zu schreiben.

Auch gibt es einige Tools, die Ihnen helfen können, „alle möglichen Codepfade zu erkunden“. Ich schlage vor, Sie nehmen einen Blick auf, PEX , die automatisierten Tests generieren, und es wird höchstwahrscheinlich seinen Code brechen ... Während dies keine optimale soultion sein könnte, versuchen zu fördern das Konzept eines gemeinsamen Code-Basis.

Erhalten Sie Ihr Devs Programm zu koppeln, ist es viel schwieriger zu „faul“, wenn Sie mit jemand anderem auf der gleichen Funktion arbeiten, und es wird den Code Eigentum um zu verbreiten. Sie scheinen sein dies nicht tun, da man darüber reden „ sein “ Code. Es kann supprising, wie viel Sie erledigen, wenn es zwei Personen auf dem gleichen Job arbeiten, es wird die Qualität durch eine Menge erhöhen.

Auch Einheit-Tests sind nicht der heilige Gral, alle Probleme zu beseitigen ... Sie eines der Werkzeuge sollten Sie zur Verfügung haben.

Was ist Ihr Code Deckungserfordernis?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top