2008-12-30 5 views
10

Ich möchte Tests für meine App schreiben, obwohl ich jedes Mal, wenn ich mir rspec.info ansehe, wirklich keinen klaren Weg sehe, "Dinge richtig zu machen" und zuerst zu testen. Ich habe die peepcode Videos auf rspec mehr als einmal gesehen, aber es dauert nicht. Ich möchte stolzer auf meine Arbeit sein, und ich denke, dass das Testen helfen wird. Wie kann ich diese Blockade durchbrechen?Wie bekomme ich eine positive Einstellung zum Testen?

+0

Community-Wiki? scheint unbeantwortbar. –

Antwort

4

Ich hasste es, bis ich anfing ein paar Testmakros zu erstellen. Wie beim Einloggen oder um zur Startseite zu gelangen. Ich fand es lustig, damit anzufangen, was mein Test-Framework wirklich tun könnte. Es hat auch geholfen, dass jemand anderes mich mit ein paar angefangen hat. Sofort habe ich offensichtliche Verbesserungen gefunden, die mich dazu brachten, mich zu verbessern und Dinge zu verbessern.

1

Sie müssen den Wert sehen, den der Test beim Refactoring und der Erweiterung Ihres Codes bringt. Sobald Sie über eine Reihe von Tests verfügen, die das Verhalten Ihrer Klassen definieren, können Sie Änderungen vornehmen, um den Code zu verbessern. Ihre Tests geben Ihnen die Sicherheit, dass das, was Sie tun, das System nicht zerstört. Wenn Sie Ihrem Code neue Funktionen hinzufügen, können Sie durch Ausführen der vorhandenen Tests darauf vertrauen, dass der neue Code, den Sie hinzugefügt haben, nichts anderes ändert.

Der Schlüssel ist, diese langfristige Sicht zu nehmen. Testen ist eine Investition. Es braucht ein bisschen weg von dem Code, den Sie schreiben könnten, aber irgendwann wird es anfangen, mit Interesse abzuzahlen. Das von Ihnen gespeicherte Kapital macht es wesentlich einfacher, schneller vorzugehen, wenn neue Funktionen hinzugefügt werden.

1

Angenommen, Sie haben bereits eine Liste von Fehlern zu beheben, ich gehe immer wieder zurück und wo immer möglich, erstellen Sie einen automatisierten Test, der den Fehler zeigt. Dann beheben Sie den Fehler und sehen Sie sich den Testlauf an. Da Sie den Fehler dennoch testen müssen und der Fehler Ihnen bereits genügend Informationen zum erneuten Erstellen des Fehlers liefern sollte, können Sie eine sofortige Rückkehr zu Ihren Tests feststellen.

Schließlich werden Sie ein Gefühl dafür bekommen, wie Sie die Tests zusammensetzen und wie Sie sie schreiben, und Sie werden nicht den "Blueprint" eines bestehenden Fehlers brauchen.

8

Finden Sie Werkzeuge, die Sie für das Testen belohnen. Zum Beispiel ist es machen sehr einfach, alle Tests und erhalten eine Meldung wie

73 tests passed. 

Versuchen random testing zu laufen, weil Sie gegen viele Werte schnell und einfach testen können.

Sehen Sie, ob Ihre Sprache eine Test-Coverage-Analyse-Tool zur Verfügung stellt, die Ihnen Prozentsatz der Aussage Abdeckung oder Prozentsatz der Blockabdeckung. Es ist sehr lohnend, Code-Abdeckung von 60% bis zu 90% zu fahren --- und wenn Sie Glück haben, finden Sie Fehler.

Mein wichtigster Rat ist quantifizieren Sie Ihre Fortschritte in Tests, so dass Sie die Zahlen sehen können, die steigen. Das wird es viel motivierender machen. (Gee, ich frage mich, welche anderen Zahlen, die gehen, können auf dieser Seite gefunden werden ...)

2

Denken Sie es so: Wenn Sie nicht testen, ist Ihr Code kaputt.

3

"Testen Sie Dinge, die Sie nicht brechen wollen."

Es kann hilfreich sein, zuerst zu priorisieren. Ich weiß, dass das Eintippen der vollständigen drei Schichten von Modell-, Sicht- und Controller-Spezifikationen auf den Gurken-Akzeptanztests eine lästige Pflicht sein kann.Eine Idee besteht also darin, nur die kritischsten Dinge in Ihrer App zu testen und Tests hinzuzufügen, wenn Sie auf Fehler stoßen, die Sie nicht mehr sehen möchten.

"Beginnen Sie immer mit einem fehlgeschlagenen Test."

Gurke Features Klartext "Geschichten", die ziemlich fantastisch für einige wirklich konkrete Tests sind & läuft. Vielleicht wäre das ein Ort, an dem du anfangen könntest. Gurke funktioniert nicht wirklich mit einer AJAX-basierten App, dafür müsste man stattdessen Selenium oder Watir nehmen. Sie können mit einer fehlerhaften Geschichte beginnen, bevor Sie eine einzelne Codezeile schreiben, und von dort aus schnell fortfahren, um diese Geschichte zu bestehen.

"Nicht testen, angeben."

Anstatt an Tests zu denken, versuchen Sie, einen mentalen Wechsel vorzunehmen: Sie testen nicht, sondern geben an, wie sich Ihre Anwendung verhält. Das ist Designarbeit, nicht annähernd so langweilig wie Testen. :)

0

Nun, ich sage dir wie!

zunächst wie folgt 10 mal von Hand auf verschiedene Anwendungen, bevor Sie zu automatisieren TRY

die negativen Szenarien, in denen das Ergebnis herauskommen würde negativ. könnte es falsche Daten eingegeben werden und gibt Ihnen richtige Ausgänge.

zum Beispiel eines Login-Bildschirm: Es könnte viele Fälle geben, in der korrekten Benutzer falsch PW, falsche Benutzer korrekt PW .... das Wichtigste ist Sie nicht auf, bevor BREAK IT .this Ihr Mantra ist.

HMMM SIE SIND JETZT DENKEN WIE EIN TESTER JETZT UR System anschalten, JUS Schreiben Sie die NEGATIVE TESTS UND DEREN ERGEBNISSE UND SIE Testet die positve DESIGN IT. JETZT ENTWICKELN SIE DEN RAHMEN

1

Ich schrieb einen Motivationsbeitrag über gerade diesen Fall vor einigen Tagen. Hier ist die Zusammenfassung:

starten Schreiben von Tests, wenn Sie eine Chance haben, es zu tun (dh, wenn Sie schreiben einige Code.). Wählen Sie ein beliebiges Werkzeug , die Sinn macht für Sie und schreiben Sie einen beliebigen Test, den Sie bei dest einige winzige Verhalten Ihrer Anwendung abdecken fühlen konnte (nicht kümmern uns um die Abdeckung oder andere beängstigend Begriffe aus der Tag eins). Haben Sie keine Angst um primitive Tests und triviale Behauptungen - Sie werden mehr Vertrauen bekommen, wie Ihre Testabdeckung wächst und Sie werden immer glücklicher werden, wie Sie bemerken, dass Sie nicht treffen müssen F5 das oft nicht mehr. Denken Sie über Tests in anderen positiven Begriffen - die besser Sie dabei sind, desto weniger Zeit Sie mit Aktivitäten verbringen müssen Sie nicht mögen (das Spinnen Refresh-Symbol im Browser zu beobachten, Debugging) und mehr mit Dinge, die Sie Liebe.

Und hier ist die whole thing, wenn Sie interessiert sind.

1

Wie bereits erwähnt, ist der einfachste Weg zum Testen mit Regressionstests.

Ich würde auch Controller-Spezifikationen vermeiden - sie sind ein PITA. Do schwer Modellprüfung, denn das ist, wo die Logik in erster Linie sein sollte.

Probieren Sie ein reines Rubin-Projekt aus, bevor Sie in ein Rails-Projekt gehen.

Verwandte Themen