Aiun Geschrieben 18. Juli 2007 Geschrieben 18. Juli 2007 hu, es geht darum das ich eine größere Anwendung habe in der Änderungen vorgenommen werden. Ich kann aber nicht immer vorraussehen worauf sich diese auswirken. Wie testet ihr sowas, welche Testverfahren gibt es evtl ? Es ist php5 und eine menge wird schon durch exception-Handling geregelt. Darüberhinaus gibt es reichlich AJAX-Funktionen. Idee war, per Programm bestimmte URLs aufzurufen und die Ergebnisse zu prüfen. 1 Ist eine Exception im ergebnis erkennbar ? 2 Entspricht der Code dem erwarteten ergebnis ? 1. ist machbar, 2. schon eher nicht, weil Änderungen normal sind, die dürfen nicht als Fehler bemerkt werden. ideen ? Zitieren
geloescht_JesterDay Geschrieben 18. Juli 2007 Geschrieben 18. Juli 2007 welche Testverfahren gibt es evtl ? Modultest - Wikipedia Und hier gibt, es z.B. als Inspiration, auch eine Präsentation über Testing für Prototype (AJAX-Framework): mir.aculo.us EDIT: Bzw. den Link hab ich von der Prototype Seite. Hab mir die Präsentation selbst noch nicht angesehen, weis also gar nicht ob die wirklich über Prototype geht. Zitieren
Aiun Geschrieben 18. Juli 2007 Autor Geschrieben 18. Juli 2007 Leider sind die Klassen der Abstraktionsschichten nicht das Problem, es geht um den kompletten weg zwischen GUI und Datenbank. Viele Dinge wirken sich primär auf die GUI aus oder werden da geändert. Zitieren
geloescht_JesterDay Geschrieben 18. Juli 2007 Geschrieben 18. Juli 2007 Viele Dinge wirken sich primär auf die GUI aus oder werden da geändert. Wenn sich die Dinge fast nur auf die GUI auswirken, dann bleibt außer deinem geübten Auge doch eh kaum ein Prüfwerkzeug übrig, oder versteh ich da was falsch? Zitieren
Aiun Geschrieben 19. Juli 2007 Autor Geschrieben 19. Juli 2007 Naja, es geht wirklich um alles. Teste ich jetzt low-level wo das Kommando an die Datenbank geht, ist das ja schön, aber ich weis nicht ob die User-Aktion überhaupt da ankommt. Andere Aktionen sind auf der Datenbank gar nicht spürbar, weil sie nur die GUI verändert und wieder andere sind "einfache" anzeigen von Daten. Ich hatte gehofft einen Teil der Arbeit zu automatisieren, da der Testaufwand per Hand & Auge derzeit schon recht hoch ist. Zitieren
Aiun Geschrieben 19. Juli 2007 Autor Geschrieben 19. Juli 2007 ich habe mir mal einen anderen Ansatz überlegt. Das System meldet exception automatisch als Fehler. Zumindest gröbste Probleme sollten sich damit abfangen lassen, wenn ich das Linkgeklicker automatisiert nachverfolgen könnte. Da ja aber einige aktionen Ajax-gesteuert sind und z.B. formularinformationen enthalten, kann ich nicht mal eben einfach nur den Ajax-Link aufrufen, sondern muss ja die tatsächlichen informationen auch dazu packen. Eine Idee wie ich Tastatureingaben / Mausbewegungen aufzeichnen und abspielen kann ? .... oder das gleiche ergebnis auf andere weise erhalten kann ? (z.B. Felder per javascript füllen und dann irgendwie die aktion triggern ?) bei Aufgezeichneten Mausbewegungen gibt es noch das Problem, das er bei einer Exception natürlich nicht weiter machen kann/darf. ^^ Zitieren
Schiller256 Geschrieben 19. Juli 2007 Geschrieben 19. Juli 2007 Es gibt Tools die Oberflächen automatisiert Testen können. Eins wäre Testpartner von Compuware. Inwieweit das jetzt mir JavaScript klarkommt kann ich nicht sagen. Grundsätzlich sollten Fehler die im Backend geschehen zentralisiert an die Oberfläche gemeldet werden. So das der Benutzer auch mit bekommt da ist ein Fehler unterlaufen. Backend Komponenten würde ich mit Unit-Test testen somit hast du schon mal sicher gestellt das diese nach Veränderungen auch noch lauffähig sind. Zitieren
Aiun Geschrieben 19. Juli 2007 Autor Geschrieben 19. Juli 2007 ich hab was nettes gefunden zumindest einen grob-Test zu automatisieren. es gibt eine Firefox-Erweiterung die Tastatureingaben und Clicks aufzeichnen und abspielen kann. Wie gesagt, exceptions werden ja gemeldet. Allerdings gibt es so viele Kombinationen und Seiten, die müssen erstmal alle getestet werden und da die bedingungen und AJAX-Events oft auf Eingaben der Oberfläche angewiesen sind, ist das nicht einfach. ich teste die erweiterung jetzt und dann teile ich euch meine Meinung dazu mit. Zitieren
geloescht_JesterDay Geschrieben 19. Juli 2007 Geschrieben 19. Juli 2007 und da die bedingungen und AJAX-Events oft auf Eingaben der Oberfläche angewiesen sind, ist das nicht einfach. Eingaben auf der Oberfläche sind ja jetzt nicht sooo schwer zu simulieren. Alles was aufgerufen wird, ist ja eine Funktion. Diese Funktion bekommt dann irgendwelche Paramerter mit. Und diesen Aufruf kannst du doch auch statisch machen. Beispielsweise: <button name="AjaxAusloeser" value="Ausloeser" onclick="javascript:void(doAjax());" /> ... function doAjax() { var aValue = document.GetSomeValue(); anotherValue = doTheRealAjax(aValue); result = doSomethingWith(anotherValue); return result; } Und anstelle von GetSomeValue, welche z.B. die Eingaben aus einen Textfeld liefern, macht du: function testTheAjax() { var aValue = someStaticTestValue; anotherValue = doTheRealAjax(aValue); result = (doSomethingWith(anotherValue) == someExpectedValue); return result; } Also das alles nur mal beispielhaft als Pseudocode (sozusagen). EDIT: Natürlich ist das blöd, wenn dein Ajax-Call z.B. Daten für (oder eben eine) Tabelle zurückliefert. Aber vielleicht kannst du das ja ähnlich abstrahieren um gewisse Tests laufen lassen zu können... EDIT2: Wenn es aber um z.B. aus der DB gelesene Inhalte geht, kannst du deinen Test ja so "automatisieren", dass ein Klick auf den Testlink eben ohne irgendwelche Eingaben fix irgendwas abruft... Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.