Was ist der am häufigsten verwendete Ansatz zum Testen in Java-Projekten (iterative Entwicklung)?Testmethoden
Antwort
Mein Vorschlag ist, dass Sie eine gesunde Mischung aus automatisierten und manuellen Tests haben sollten.
Automatisiertes Testen
Unit Testing
Verwendung NUnit Ihre Klassen, Funktionen und die Interaktion zwischen ihnen zu testen.
http://www.nunit.org/index.phpFunctional Automatisiertes Testen
Wenn es möglich ist, sollten Sie eine Menge der Funktionsprüfung automatisieren. Bei einigen Rahmenwerken sind Funktionstests eingebaut. Ansonsten müssen Sie ein Tool dafür verwenden. Wenn Sie Websites/Anwendungen entwickeln, sollten Sie sich Selenium ansehen.
http://www.peterkrantz.com/2005/selenium-for-aspnet/Continuous Integration
Verwenden CI um sicherzustellen, dass alle Ihre automatisierten Tests jedes Mal, wenn jemand in Ihrem Team führen ein in das Projekt verpflichten macht.
http://martinfowler.com/articles/continuousIntegration.html
manuelle Tests
So viel wie ich liebe automatisierte Tests ist es, IMHO, kein Ersatz für die manuelle Prüfung. Der Hauptgrund dafür ist, dass ein Automatisierter nur das tun kann, was ihm gesagt wurde, und nur verifizieren, was er informiert hat, um als bestanden/nicht bestanden zu gelten. Ein Mensch kann seine Intelligenz nutzen, um Fehler zu finden und Fragen aufzuwerfen, die beim Testen von etwas anderem auftauchen.
- Exploratory Testing
ET ist eine sehr kostengünstige und effektive Möglichkeit, Defekte in einem Projekt zu finden. Es nutzt die Intelligenz eines Menschen und lehrt die Tester/Entwickler mehr über das Projekt als jede andere Testtechnik, die ich kenne. Eine ET-Sitzung, die auf alle in der Testumgebung bereitgestellten Funktionen abzielt, ist nicht nur ein effektiver Weg, um Probleme schnell zu finden, sondern auch eine gute Art zu lernen und Spaß zu haben!
http://www.satisfice.com/articles/et-article.pdf
Vielen Dank für eine ausführliche Antwort Jonas. Dies wird als eine gute Referenz dienen. –
Keine Sorgen, nur froh zu helfen. Testen kann so viel Spaß machen, wenn Sie es zulassen. –
Ich habe vorher mit TDD (Test Driven Development) gearbeitet, und meine Gefühle dazu sind gemischt. Im Wesentlichen schreiben Sie Ihre Tests, bevor Sie Ihren Code schreiben, und schreiben Sie Ihren Code, um die Anforderungen des Tests zu erfüllen. TDD zwingt Sie, vor dem Start eine sehr klare Vorstellung von Ihren Anforderungen zu haben. Ein zusätzlicher Vorteil besteht darin, dass Sie, sobald Sie mit der Entwicklung fertig sind, unter der Annahme, dass Sie sich eng an TDD-Verfahren gehalten haben, einen vollständigen Satz von Testsuiten für den Code zur Verfügung haben. Der Nachteil ist, dass es extrem lange dauert, und manchmal möchten Sie nur ein paar Schritte überspringen (z. B. vielleicht Code vor Tests schreiben, wie es ein vernünftiger Mensch tun würde).
Mehr kann here (wiki link)
Unit-Tests gelesen werden?
Vertragsbasierte Programmierung, a la Eiffel?
Wasserfallmodell?
Verschiedene Geschäfte machen verschiedene Dinge. Wenn es eine Methode gäbe, um alle zu beherrschen, würden Sie diese Frage nicht stellen.
Persönliche Erfahrung würde vorschlagen, der beliebteste Ansatz ist gar keiner.
Das ist, leider und vielleicht überraschend, sehr wahr ... – Cambium
... oder zumindest so wenig, wie Sie damit durchkommen können ;-) –
Was sind die hauptsächlichen Fehler beim Testen? –
Unter der Voraussetzung, überhaupt Tests durchzuführen, würde ich sagen, dass das Testen mit JUnit der übliche Ansatz ist, um Tests in Java durchzuführen.
Obwohl die meisten Tests mit JUnit geschrieben werden, sind die meisten Tests eher Integrationstests als Unit Tests. (was bedeutet, nicht eine Sache isoliert zu testen, sondern einige Dinge zusammen)
Zusätzlich werden Tests meistens nicht in einem Testansatz geschrieben, sondern parallel oder nachdem ein bestimmtes Feature implementiert wurde.
Wenn Sie zu einem Team gehen, das die Tests fortgeschrittener nutzt, könnten Sie wahrscheinlich einen CI-Server (Cruise Control, Hudson) finden, der die Tests mindestens einmal pro Tag während eines nächtlichen Builds ausführt.
In der Reihenfolge der am häufigsten verwendete Ansatz:
- keine Tests auf allen
- manuellen Tests: die App, Klick- oder Bereitstellen Eingabe ausgeführt wird, überprüfen Ergebnisse
- versuchen, einige JUnits zu schreiben vergessen, über sie, Folie 2 und 1
- beginnen sie mit TDD, dass es schwer ist schieben bis 3, 2 und 1
auf der theoretischen Seite gibt es viele Möglichkeiten, den Code richtig zu testen. Wenn Sie etwas Praktisches suchen, werfen Sie einen Blick auf Clean Code Talk. Schau dir die ganze Serie an, etwa 5 Vorträge (es können nicht mehr als ein Link gepostet werden).
Mein Vorschlag zum Testen des Java-Projektes ist es einfach zu halten.
Schritte: - Manueller Test: - Ein stabiles Produkt erhalten. Automation Testing: - Pflegen Sie die Qualität des Produkts. Bericht Generation und Berichterstattung: - Lassen Sie die Menschen die Qualität des Produkts wissen. Kontinuierliche Integration: -Erstellen Sie ein vollständig automatisiertes, kontinuierliches Werkzeug.
Wenn der Entwickler die Funktionalität festschreibt, dann starten Sie das Testen des Moduls it Modul. Versuchen Sie, die tatsächliche Ausgabe mit der erwarteten Ausgabe zu vergleichen und dagegen die Probleme zu protokollieren.
Wenn der Entwickler die Probleme behoben hat, beginnen Sie mit dem Integrationstest und starten Sie das Testen der Probleme mit aufgelösten Zuständen und prüfen Sie, ob aufgrund der Problembehebung eine Regression auftritt.
Endlich, wenn das Produkt zum stabilen wird, Dann starten Sie zur Automatisierung der Module. Sie können die Automatisierung auch Schritt für Schritt verfolgen wie: - 1.Automatisierung der Module. 2.Report Generation und senden Mail für Produkt HealthCheck. 3.Kontinuierliche Integration und Automatisierung Tests auf privaten Server auf dem lokalen Rechner.
- 1. Einheit Testmethoden erfordern Benutzereingabe
- 2. Testmethoden, die nichts zurückgeben
- 3. JUnit-Testmethoden dynamisch ausführen
- 4. Testmethoden, die HTTP-Anfragen machen
- 5. Testmethoden in einer ReactJS-Komponente?
- 6. Testmethoden einschließlich des Kontexts und usw.
- 7. Wie Einheit Testmethoden, die System.Web.Security.Membership innerhalb verwenden?
- 8. Sollte ich meine Unit-Testmethoden dokumentieren?
- 9. Verwenden Sie unterschiedliche Federtestkontextkonfiguration für unterschiedliche Testmethoden
- 10. Best Practice zur Sicherstellung der Testmethoden
- 11. Wie können wir die Testmethoden automatisch in .net ausführen?
- 12. Präfix für Testmethoden in Einheit: "test" vs "sollte"
- 13. Wie bestimmt MSTest die Reihenfolge, in der Testmethoden ausgeführt werden?
- 14. Unit-Testmethoden dynamisch zur Laufzeit in MSTest erstellen
- 15. Wie können mehrere Testklassen oder Testmethoden mit Maven ausgeführt werden?
- 16. Warum sollten Testmethoden in Junit als öffentlich definiert werden?
- 17. Statische Analyse CA1811-Fehler bei Testmethoden mit Lambda-Ausdrücken
- 18. Wie Einheit Testmethoden von Event Bus in Android geschrieben?
- 19. Kompatibilitäts-Test und andere Testmethoden zur Verwendung beim Erstellen von Software
- 20. Welche Konsequenzen hat es, PHPUnit Testmethoden nicht mit camel case zu benennen?
- 21. Erweitern Sie xUnit.NET, um benutzerdefinierten Code zu verwenden, wenn Sie eine Klasse bearbeiten und Testmethoden lokalisieren
- 22. Gibt es eine Möglichkeit, den Espresso-Test mit mehreren Testmethoden, aber nur einer Setup-Methode auszuführen?
- 23. Xamarin NUnitLite-Testmethoden: Wie werden geteilte Tests ausgeführt, die auf jeder Plattform ausgeführt werden?
- 24. Wie befüllen Sie die Datenbank nur einmal vor den Testmethoden im Frühlingstest?
- 25. Kann ein Fixture dynamisch zwischen den Testmethoden in CakePHP geändert werden?
- 26. Konfiguration Reflektionen zum Scannen von Testklassen
- 27. Wie verwende ich bdd Benennungsstil mit Resharper 4.5?
- 28. Können Sie die Reihenfolge der Testausführung in VS 2005 Test Engine angeben?
- 29. android uiautomator, wie man Testmethodenauftrag
- 30. Gibt es eine setup_class/teardown_class für Rails-Tests?
Sollte Community-Wiki sein. – Borealid