Zum Inhalt springen

[PHP] automatisierte Testverfahren


Empfohlene Beiträge

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 ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...