2010-08-10 10 views
6

Was ist der am häufigsten verwendete Ansatz zum Testen in Java-Projekten (iterative Entwicklung)?Testmethoden

+0

Sollte Community-Wiki sein. – Borealid

Antwort

9

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.php

  • Functional 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
+1

Vielen Dank für eine ausführliche Antwort Jonas. Dies wird als eine gute Referenz dienen. –

+0

Keine Sorgen, nur froh zu helfen. Testen kann so viel Spaß machen, wenn Sie es zulassen. –

4

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)

2

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.

7

Persönliche Erfahrung würde vorschlagen, der beliebteste Ansatz ist gar keiner.

+2

Das ist, leider und vielleicht überraschend, sehr wahr ... – Cambium

+0

... oder zumindest so wenig, wie Sie damit durchkommen können ;-) –

+0

Was sind die hauptsächlichen Fehler beim Testen? –

2

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.

2

In der Reihenfolge der am häufigsten verwendete Ansatz:

  1. keine Tests auf allen
  2. manuellen Tests: die App, Klick- oder Bereitstellen Eingabe ausgeführt wird, überprüfen Ergebnisse
  3. versuchen, einige JUnits zu schreiben vergessen, über sie, Folie 2 und 1
  4. 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).

0

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.

Verwandte Themen