Frage

Ok, vielleicht bin ich etwas fehlt, aber ich sehe nicht wirklich den Punkt von Selen. Was ist der Punkt, der den Browser Code zu öffnen, klicken Tasten-Code, und die Überprüfung für Textcode verwenden? Ich lese die Webseite und ich sehe, wie in der Theorie wäre es gut, um automatisch Ihre Web-Anwendungen Gerät zu testen, aber am Ende nicht, es nimmt nur viel mehr Zeit diesen Code all eher zu schreiben, als nur um klicken und visuell überprüfen, die Dinge funktionieren ?

Ich verstehe es nicht ...

War es hilfreich?

Lösung

Es ermöglicht Ihnen, Funktionstests in Ihrem „Einheit“ Test-Framework (das Problem ist die Benennung der später).

schreiben

Wenn Sie testen Ihre Anwendung über den Browser, den Sie in der Regel testen das System voll integriert. Betrachten Sie bereits haben, um Ihre Änderungen zu testen, bevor sie (Rauchtests) zu begehen, Sie wollen nicht, um es testen manuell über und über.

Etwas wirklich schön, ist, dass Sie Ihre Rauchtests automatisieren, und QA können diejenigen erweitern. Sehr effektiv, da sie Doppelarbeit verringert und wird das gesamte Team näher.

Ps wie jede Praxis, die Sie zum ersten Mal verwenden es eine Lernkurve hat, so in der Regel dauert es länger, die ersten mal. Ich schlage vor, auch schauen Sie auf den Seite Objekt Muster, es trägt dazu bei, die Tests zu halten sauber.

Update 1: Beachten Sie, dass die Tests auch Javascript auf den Seiten ausgeführt wird, die Prüfung hochdynamische Seiten hilft. Beachten Sie auch, dass Sie es mit verschiedenen Browsern laufen können, so können Sie Cross-Browser-Probleme (zumindest auf der Funktionsseite, wie Sie noch die visuelle müssen überprüfen) überprüfen.

Beachten Sie auch, dass die Menge der Seiten durch Tests abgedeckt baut, und Sie Tests mit kompletten Zyklen von Interaktionen schnell erstellen können. Mit Hilfe der Seite Objekt Muster sie wie folgt aussehen:

   LastPage aPage = somePage
      .SomeAction()
      .AnotherActionWithParams("somevalue")
      //... other actions
      .AnotherOneThatKeepsYouOnthePage(); 
  // add some asserts using methods that give you info
  // on LastPage (or that check the info is there).
  // you can of course break the statements to add additional 
  // asserts on the multi-steps story.

Es ist wichtig zu verstehen, dass Sie über diese allmähliche gehen. Wenn es sich um ein bereits gebautes System ist, fügen Sie Tests für Funktionen / Änderungen, die Sie gerade arbeiten. Das Hinzufügen von mehr und mehr Reichweite auf dem Weg. stattdessen manuell gehen, in der Regel versteckt, was Sie zu testen verpasst haben, so dass, wenn Sie eine Änderung vorgenommen, die jede einzelne Seite betrifft, und Sie werden eine Teilmenge prüfen (wie die Zeit erlaubt nicht), wissen Sie, welche Sie tatsächlich getestet und QA arbeiten können aus dort (hoffentlich durch Zugabe von noch mehr Tests).

Andere Tipps

Dies ist eine gemeinsame Sache, die über Unit-Tests im Allgemeinen gesagt wird. „Ich muss doppelt so viel Code zum Testen schreiben?“ Die gleichen Prinzipien gelten hier. Die Auszahlung ist die Fähigkeit, den Code zu ändern und wissen, dass Sie nicht etwas brechen.

Da kann man wiederholen Sie die SAME Test immer und immer wieder.

Wenn Ihre Anwendung ist auch 50+ Seiten und Sie müssen häufig tun, baut und testen Sie es gegen X Anzahl von gängigen Browsern es sehr viel Sinn macht.

Stellen Sie sich 50 Seiten haben, die alle mit 10 Verbindungen je, und einige mit Formen mehrstufiges, die Sie durch die Formen gehen erfordern, in etwa 100 verschiedenen Arten von Informationen setzen, um sicherzustellen, dass sie richtig mit allen Kreditkartennummern arbeiten alle Adressen in allen Ländern, etc.

Das ist praktisch unmöglich, manuell zu testen. Es wird so anfällig für menschliche Fehler, dass Sie nicht die Prüfung richtig gemacht wurde garantieren können, geschweige denn, was die Tests bewiesen, über das, was getestet wird.

Außerdem, wenn Sie ein modernes Entwicklungs-Modell, mit vielen Entwicklern arbeiten alle an der gleichen Stelle in einem getrennten, verteilte (einige arbeiten auf der Website von ihrem Laptop, während auf einer Ebene, zum Beispiel) folgen, dann den menschlichen Tester nicht einmal in der Lage sein, darauf zuzugreifen, viel weniger die Geduld jedes Mal, wenn ein einzelner Entwickler versucht, etwas neues zu re-Test hat.

Auf jeder anständige Größe der Website, haben Tests automatisiert werden.

Der Punkt ist die gleiche wie für jede Art von automatisierten Tests. Den Schreiben des Codes kann mehr Zeit in Anspruch nehmen, als „nur um zu klicken und visuell Dinge Arbeit zu überprüfen“, vielleicht 10 oder sogar 50-mal mehr

Aber jede nicht-triviale Anwendung müssen weit mehr als das 50-fache schließlich getestet werden, und manuelle Tests sind eine lästige lästige Pflicht, die wahrscheinlich weggelassen wird oder shoddily unter Druck durchgeführt, die in Bugs führt unentdeckt bleiben, bis nur bfore (oder nach) wichtige Termine, die in Stress führt die ganze Nacht Sitzungen Codierung oder sogar offene Geldverlust durch Vertragsstrafen.

Selen (zusammen mit ähnlichen Werkzeugen, wie Watir) können Sie Tests gegen die Benutzeroberfläche des Web-App in einer Weise ausgeführt werden, die Computer gut sind: tausende Male über Nacht oder innerhalb von Sekunden nach jeder Quelle checkin. (Beachten Sie, dass es viele andere UI-Teststücke sind, die Menschen sind viel besser, wie zu bemerken, dass einige seltsame Sache nicht direkt zum Test im Zusammenhang nicht stimmt.)

Es gibt auch andere Möglichkeiten, um den ganzen Stapel der App einzubinden, indem die erzeugten HTML-Suche anstatt starten Sie einen Browser, es zu machen, wie webrat und Mechanize . Die meisten von ihnen haben keine Art und Weise mit JavaScript-schweren UIs zu interagieren; Selen hat man etwas bedeckt hier.

Selen wird aufgezeichnet und alle manuellen Klick wieder laufen und tippen Sie tun, um Ihre Web-Anwendung zu testen. Immer und immer wieder.

Im Laufe der Zeit Studien von mir haben mir gezeigt, dass ich dazu neigen, wenige Tests zu tun, und einige beginnen überspringen, oder über sie zu vergessen.

Selen wird stattdessen jeden Test nehmen, führen Sie es, wenn es nicht zurück, was Sie es erwarten, kann es Sie wissen lassen.

Es gibt eine Upfront-Kosten der Zeit alle diese Tests aufzuzeichnen. Ich würde es wie Unit-Tests empfehlen -. , wenn Sie es nicht bereits haben, beginnen sie mit den komplexesten, reizbar, oder aktualisierten Teile des Codes

Und wenn Sie diese Tests als JUnit-Klassen speichern Sie sie in Ihrer Freizeit, als Teil Ihrer automatisierte Build, oder in einem armen Mann Belastungstest mit JMeter erneut ausführen können.

In einem frühen Job haben wir an der Einheit unseres Web-App testen. Wenn der Web-App sein Aussehen der Tests ändert müssen nicht neu geschrieben werden. Die Bilanz und Wiedergabe Typprüfungen würden alle müssen neu gemacht werden.

Warum brauchen Sie Selen? Da Tester sind Menschen. Sie gehen jeden Tag nach Hause, kann nicht immer am Wochenende arbeiten, sickies nehmen, an Feiertagen nehmen, jeder auf Urlaub gehen von Zeit zu Zeit, langweilig tun sich wiederholende Aufgaben und kann nicht immer auf sie verlassen, um zu sein, wenn Sie sie benötigen.

Ich sage nicht, dass Sie von Testern loswerden sollten, sondern ein automatisiertes UI-Test-Tool ergänzt Systemtester.

Der Punkt ist die Fähigkeit, was vor einem manuellen und zeitraubend Test war zu automatisieren. Ja, es braucht Zeit, um die Tests zu schreiben, aber einmal geschrieben, können sie beliebig oft ausgeführt werden, da das Team wünscht. Jedes Mal, wenn sie ausgeführt werden, sie, dass das Verhalten der Web-Anwendung sind die Überprüfung ist konsistent. Selen ist kein perfektes Produkt, aber es ist sehr gut an der Automatisierung von realistischer Interaktion mit dem Benutzer mit einem Browser.

Wenn Sie nicht das Selen Ansatz gefällt, können Sie versuchen, Htmlunit , finde ich es sinnvoller und leicht in bestehende Unit-Tests zu integrieren.

Für Anwendungen mit Rich-Web-Schnittstellen (wie viele GWT-Projekte) Selen / Windmühle / WebDriver / etc ist die Art und Weise Abnahmen zu erstellen. Im Fall von GWT / GXT ist der endgültige Benutzeroberfläche Code in JavaScript so Erstellung von Tests Annahme normale junit Testfällen mit Hilfe ist grundsätzlich ausgeschlossen. Mit Selen können Sie Testszenarien passende reale Benutzeraktionen und die erwarteten Ergebnisse erstellen.

Auf der Grundlage meiner Erfahrung mit Selen kann es Fehler in der Anwendungslogik und Benutzeroberfläche zeigt (im Fall werden Ihre Testfälle gut geschrieben). Der Umgang mit AJAX Frontends erfordert etwas mehr Aufwand, aber es ist immer noch möglich.

Ich benutze es mehrseitige Formulare zu testen, da dies die Belastung nimmt aus der gleichen Sache immer und immer wieder eingeben. Und mit der Fähigkeit, zu überprüfen, ob bestimmte Elemente vorhanden sind, ist groß. Wieder mit dem Formular als Beispiel Ihres endgültigen Selen Test überprüfen könnte, wenn so etwas wie sagen wir „Danke Mr. Rogers für die Bestellung von ...“ erscheint am Ende des Bestellprozesses.

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