DE112010002916T5 - Verfahren und System zum automatischen Testen einer Web-Anwendung - Google Patents

Verfahren und System zum automatischen Testen einer Web-Anwendung Download PDF

Info

Publication number
DE112010002916T5
DE112010002916T5 DE112010002916T DE112010002916T DE112010002916T5 DE 112010002916 T5 DE112010002916 T5 DE 112010002916T5 DE 112010002916 T DE112010002916 T DE 112010002916T DE 112010002916 T DE112010002916 T DE 112010002916T DE 112010002916 T5 DE112010002916 T5 DE 112010002916T5
Authority
DE
Germany
Prior art keywords
web application
web
test
application
code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE112010002916T
Other languages
English (en)
Inventor
Alessandro Scotti
Francesco Carteri
Luca Lazzaro
Flavio Pinzauti
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112010002916T5 publication Critical patent/DE112010002916T5/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3696Methods or tools to render software testable
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Ein Verfahren und ein System zum automatischen Testen einer Web-Anwendung, die innerhalb eines Web-Browsers läuft. Stücke von Testcode werden in den Code der Web-Anwendung eingefügt. Ein HTTP-Server stellt für die mit Testcode ausgestattete Web-Anwendung einen Testdienst bereit. Durch eine API-Oberfläche erfragt der Testcode vom HTTP-Server, Benutzereingaben zu simulieren und diese an den Browser zu senden. Der HTTP-Server erzeugt simulierte Systemereignisse (Mausklick, Tastatureingabe usw...), die der Benutzereingabe entsprechen, und sendet sie an den Browser. Der Browser bearbeitet die Systemereignisse für die Web-Anwendung wie üblich. Auf diese Weise prüft der Testcode die Datenstruktur (Objekte) der Web-Anwendung, wobei ebenso die gesamte Umgebung der Web-Anwendung mit einbezogen wird.
Beim Prüfen der richtigen Bearbeitung eines Objekts durch die Web-Anwendung kann der Testcode der Web-Anwendung beim HTTP-Server erfragen, ein Objekt (zum Beispiel im JSON-Format) in einer Ablage zu speichern und von dort wieder abzurufen. Der Testcode vergleicht vor und nach der Bearbeitung durch die Web-Anwendung den Objektstatus, um die korrekte Ausführung zu prüfen.

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft allgemein die Entwicklung von Software-Anwendungen und insbesondere ein Verfahren zum Testen von Web-Anwendungen.
  • Hintergrund der Erfindung
  • Ein großes Problem der Web-Anwendungen ist es, einen wirksamen Ansatz für die Test-Automatisierung der Web-Oberflächen zu finden. Dieses Problem ist bei Web-Oberflächen mit den neuen Technologien des Web 2.0 (wie AJAX- oder JavaScript-Rahmenstrukturen (Frameworks), z. B. Dojo) von größerer Bedeutung. Eine Web-Seite der Web-2.0-Anwendungen ist nicht einfach nur dynamisch, sondern eine sehr komplexe Anwendung, die das Ergebnis der Zusammensetzung vieler DOM-Elemente objektorientierter Sprachen ist (DOM ist das Dokumentenobjektmodell, bei dem es sich um ein hardware- und softwareunabhängiges Modell zur Darstellung von HTML-Seiten und Verwaltung von Objekten in HTML handelt). Jedes DOM-Element kann dynamisch durch JavaScript-Code aufgebaut sein (JavaScript ist ein Warenzeichen oder ein eingetragenes Warenzeichen von SUN Microsystems, Inc. oder verbundener Unternehmen in den USA und anderen Ländern), der mit einem nachgestellten System interagiert und AJAX-Technologie (Asynchronous JavaScript and XML Technology) umsetzt, um Web-Anwendungen auf der Client-Seite zu erstellen, und der sogar CSS-Stilvorlagen anwenden kann, um das Ändern des Erscheinungsbildes von der Client-Seite aus zu ermöglichen.
  • Der Code zum Erstellen der DOM-Elemente ist zudem an vielen Punkten verstreut und kann ebenso durch (mit AJAX-Rahmenstrukturen erstellte) Widgets erzeugt werden, die separat geschrieben sind und eine einzelne Funktionalität umsetzen.
  • Das Hauptproblem besteht nicht allein darin, ein System für eine Einheiten-Testfolge zum Testen der einzelnen Funktionalitäten, den einzelnen Widget-Klassen, umzusetzen, sondern ebenso die wirkliche Wechselwirkung zwischen durch die Widgets erzeugten DOM-Elementen und den anderen Beteiligten zu testen, welche die DOM-Elemente erzeugen.
  • Werkzeuge zum Testen von Web-Anwendungen nach dem Stand der Technik beruhen nur auf der „äußeren” Erscheinung einer Web-Seite oder Anwendung oder gehen, falls sie DOM-Elemente berücksichtigen, sogar vollständig am Innenleben der Anwendung vorbei. Umgekehrt hat die Anwendung keine Möglichkeit, einen Test dieses wichtigen Bereiches zu erzwingen, da sie nicht über die Mittel verfügt, auf das „äußere” Verhalten zuzugreifen und dieses selbst laufen zu lassen. Dabei hängt derartige Software stark von der beherbergenden Umgebung ab (diese Anwendungen laufen zum Beispiel im Browser). Das automatische Testen solcher Web-Anwendungen stellt heute eine Herausforderung dar.
  • Die US-Patentanmeldung US 2004/0025083 A1 beschreibt die allgemeine Idee, Testcode in ein Programm einzubetten, so dass das Programm seine Funktionalität testen kann. Trotz des breiten Umfangs dieser Erfindung, ist es mit diesem Verfahren jedoch nicht möglich, das Problem zu lösen, das Innenleben der Anwendungen in Verbindung mit dem Browser und dem ihn beherbergenden Betriebssystem vollständig zu testen. Einige Codebereiche der Anwendungen, die von Unterschieden in der Umgebung abhängen, können nicht getestet werden; eventuell ebenfalls nicht getestet werden darüber hinaus einige Codebereiche der Anwendungen, die nicht nur von solchen Unterschieden, sondern auch von den unterschiedlichen Code-Pfaden abhängen, zu deren Ausführung solche Unterschiede führen können. Zum Beispiel muss eine Web-Anwendung auf jedem der unterstützten Browser, wie beispielsweise dem Internet Explorer (Internet Explorer ist ein Warenzeichen der Microsoft Corporation in den USA, anderen Ländern oder beides), Firefox (Firefox ist ein eingetragenes Warenzeichen der Mozilla Foundation), Opera (Opera ist ein Warenzeichen oder ein eingetragenes Warenzeichen von Opera Software ASA) usw. separat getestet werden. Für Testzwecke ist es jedoch nicht zuverlässig, einen Testcode zu verwenden, der die Unterschiede ignoriert, die jeder Browser mit sich bringen kann, und der nur direkte Aufrufe der Software-Funktionen berücksichtigt.
  • Es besteht daher ein Bedarf nach einem Verfahren, das Web-Oberflächen-Code mit Code verwendet, der zum Testen des Innenlebens der Anwendung in Verbindung mit dem Browser und dem ihn beherbergenden Betriebssystem eine Benutzereingabe in eine Seite der Web-Oberfläche simuliert.
  • Zusammenfassung der Erfindung
  • Es ist daher eine Aufgabe der vorliegenden Erfindung, ein automatisches Testverfahren bereitzustellen, das eine Benutzereingabe in eine Seite der Web-Oberfläche simuliert und die internen Web-Oberflächen-Datenstrukturen der Web-Anwendung in der Umgebung des Browsers und des ihn beherbergenden Betriebssystems simuliert.
  • Die Aufgabe wird entsprechend Anspruch 1 durch ein Verfahren zum automatischen Testen einer innerhalb eines Web-Browsers eines Testcomputers laufenden Web-Anwendung erreicht, wobei die Web-Anwendung mit Testcode ausgestattet ist (400) und das Verfahren Folgendes umfasst:
    • – Senden (410) einer Meldung vom in der Web-Anwendung ausgeführten Testcode durch eine in der Web-Anwendung festgelegte API ((Application Programming Interface, Anwendungsprogrammierschnittstelle) an einen HTTP-Server, wobei vom HTTP-Server das Simulieren einer Benutzereingabe erfragt wird und die Benutzereingabe mit dem in der Web-Anwendung laufenden Testcode in Verbindung steht;
    • – Simulieren mindestens eines der Benutzereingabe entsprechenden Systemereignisses durch den HTTP-Server, der die Meldung empfängt (420), und deren Bereitstellen für den Web-Browser;
    • – Bearbeiten des mindestens einen simulierten Systemereignisses durch den Web-Browser (430), wobei das mindestens eine Systemereignis selbst die Ausführung von Code in der Web-Anwendung auslöst;
    • – durch den Testcode in der Web-Anwendung (440) Prüfen der Gültigkeit des Ergebnisses der Auslösung von Code in der Web-Anwendung durch das mindestens eine Systemereignis, indem die interne Datenstruktur der Web-Anwendung einschließlich JavaScript- und DOM-Elementen geprüft wird. Die interne Datenstruktur einer Web-Anwendung umfasst die HTML-Elemente, die von Web-Seiten und internen Zählern oder anderen möglichen Variablen und Objekten sichtbar sind.
  • Das Verfahren ermöglicht es zudem, Datenstrukturen der Anwendung durch Prüfung der Datenstruktur nach einer simulierten Benutzereingabe zu testen. Das Verfahren ermöglicht es zudem, die interne Datenstruktur der Anwendung zu testen, indem der Objektstatus nach einer erfolgten simulierten Benutzereingabe mit einem Vorlageobjektstatus verglichen wird, der gespeichert wurde.
  • Bei den Objekten kann es sich um HTML-, DOM- oder JavaScript-Objekte handeln. Ein automatisches Testsystem umfasst den HTTP-Server und den Code zur Erzeugung simulierter Systemereignisse entsprechend den getesteten Systemeingaben.
  • Um eine Web-Anwendung vollständig zu testen, umfasst das Verfahren der Erfindung nicht nur das Schreiben von Testcode und dessen Einbetten in die Anwendung. Vielmehr gewährt es Web-Anwendungen zudem Zugriff auf die „äußere” Umgebung einschließlich der Fähigkeit, die wirkliche Interaktion des Benutzers mit einer Web-Oberfläche zu reproduzieren. Mit diesem Verfahren können externe Eingaben so simuliert werden, dass es möglich ist, sie so zu empfangen, als ob sie von einem menschliche Benutzer oder irgendeiner externen Ereignisquelle kommen. Auf diese Weise ist die beherbergende Umgebung in der Lage, auch das Ereignis zu bearbeiten und seine eigene Datenstruktur zu aktualisieren, die ebenfalls einen direkten Einfluss auf das Verhalten der Anwendung besitzen. Ohne Vorhandensein dieses Systems ist kein Test in der Lage, die gesamte Funktionalität der Software abzudecken.
  • Die Web-Anwendung hat die Fähigkeit, mit sich selbst von „außen” durch einen externen Dienst wechselzuwirken. Der Dienst steuert den Browser und die externen Systeme (Festplatte usw.) und stellt der Web-Anwendung durch eine HTTP-Verbindung mit speziell codierten URLs Dienste bereit. Im Gegenzug verwendet die Web-Anwendung die bereitgestellten Dienste, um ihren internen Zustand von „außen” zu verändern und zu steuern, was mit aktuellen Systemen zur Testautomatisierung normalerweise nicht möglich ist.
  • Das folgende Verfahren und das folgende System überwinden die Begrenzungen der aktuellen Testverfahrensweisen, indem die menschliche Benutzereingabe reproduziert und simuliert und die Simulation zur Prüfung seiner internen Datenstrukturen und Algorithmen verwendet wird. Das Verfahren ruft die durch eine Benutzereingabe vom JavaScript-Code innerhalb der Web-Seiten erzeugten Systemereignisse selbst auf und erzeugt Veränderungen an der Web-Oberfläche (und damit an den Objektvorlageelementen wie beispielsweise den DOM-Elementen). Sobald die DOM-Elemente die Veränderungen widerspiegeln (durch die Abfragen der Benutzerereignisse) kann der JavaScript-Code den Status der internen Datenstrukturen prüfen und mit den erwarteten Werten vergleichen.
  • Das Verfahren der Erfindung bietet die folgenden Vorteile:
    • – es kann alle DOM-Elemente testen und das Kundenszenario reproduzieren, indem es alle DOM-Elemente in den Web-Seiten der Anwendung testet. Die Lösung ermöglicht das Abdecken der interessierenden Testfälle für die oben genannten erweiterten Beispielbereiche, die von anderen Produktarten nicht abgedeckt werden können.
    • – eine Web-Seite kann innerhalb und außerhalb der Seite selbst getestet werden.
    • – die Art und Weise, wie die Überprüfungspunkte auf der Grundlage der DOM-Prüfungen und/oder durch Vergleichen von JSON-Objekten (JavaScript Object Notation – JavaScript Objektschreibweise – ist ein einfaches Format zur Darstellung von Objekten durch Zeichenketten) geprüft werden.
    • – die Lösung ist nicht nur auf die DOJO-Rahmenstruktur anwendbar, sondern kann bei allen Verfahren eingesetzt werden, die zur Erzeugung der DOM-Elemente der Web-Seiten verwendet werden.
    • – das Verfahren der Erfindung kann ausgeführt werden, wenn sich die für die Testfolge und die Anwendung verwendete Sprache von JavaScript unterscheiden. Die Sprache muss nur vom Browser verstanden werden.
  • Im Hinblick auf automatische Testprodukte und Vorgehensweisen nach dem Stand der Technik insbesondere für Web-Anwendungen bietet der aktuelle Stand der Technik viele Funktionen. Letztendlich wird das Testergebnis jedoch durch Vergleichen der „Ausgabe” der Anwendung mit einer Vorlage erreicht, deren Korrektheit bekannt ist. Bei einer Web-Anwendung ist die Ausgabe im Wesentlichen die HTML-Seite, die sie erzeugt oder verändert, oder deren entsprechende DOM-Darstellung. Mit dem Verfahren der Erfindung kann die Web-Anwendung auf die „äußere” Umgebung zugreifen und wirkliches Verhalten simulieren (einschließlich Eingaben durch den Menschen), was durch einfaches Ausstatten mit Code nicht möglich wäre. Die Fähigkeit, interne Strukturen zu prüfen, ist nicht mit Werkzeugen möglich, die nur das „Erscheinungsbild” des Programms prüfen können.
  • Kurze Beschreibung der Zeichnungen
  • 1 zeigt die übliche Umgebung einer Web-Anwendung, bei der die Lösung der Erfindung ausgeführt werden kann;
  • 2 zeigt die Umsetzung des Verfahrens der bevorzugten Ausführungsform in der üblichen Umgebung einer Web-Anwendung;
  • 3 ist eine Darstellung einer Umgebung einer Web-Anwendung mit einem simulierten Ereignis gemäß der bevorzugten Ausführungsform;
  • 4 ist der allgemeine Ablaufplan des Verfahrens der Erfindung gemäß der bevorzugten Ausführungsform.
  • Detaillierte Beschreibung der bevorzugten Ausführungsform
  • 1 zeigt die übliche Umgebung einer Web-Anwendung, bei der die Lösung der Erfindung ausgeführt werden kann. Die übliche Umgebung einer Web-Anwendung umfasst eine im Browser (110) des Benutzer-Arbeitsplatzrechners (105) laufende Web-Client-Anwendung (115). Der Browser verwendet das Dateisystem (120) des Betriebssystems des Arbeitsplatzrechners des Benutzers. Die Web-Client-Anwendung wurde über das Netzwerk von einem Web-Anwendungs-Server (100) heruntergeladen, falls der Web-Anwendungs-Server entfernt angeordnet ist. Die Web-Anwendung kann in JavaScript geschrieben sein. Der Benutzer bedient die Anwendung über die durch den Browser erzeugten Web-Seiten. Die Benutzereingaben können in den Feldern der Web-Seite eingegebene Daten sein, die Systemereignisse erzeugen (beispielsweise über Tastatur und Maus).
  • 2 zeigt die Umsetzung des Verfahrens der bevorzugten Ausführungsform in der üblichen Umgebung einer Web-Anwendung in einer Testfolge, die in einer für den Browser verständlichen Sprache geschrieben wurde, beispielsweise JavaScript als Web-Anwendung (115), und die auf einem Test-Hostrechner (240) läuft. Ein Web-Test-Automatisierungssystem (200) bietet für die auf dem Test-Hostrechner laufende Web-Anwendung (115) einen Testdienst. Der Testdienst beinhaltet drei Teilsysteme: einen HTTP-Server (210), der Befehle empfängt, den Systemereignis-Erzeuger (215), der festgelegte Systemereignisse erzeugt, und den entfernt angeordneten Ereignis-Sender (225), der die Ereignisse an den Host-Rechner sendet, auf dem im Falle eines entfernt angeordneten Testcomputers die Testfolge läuft. Diese Teilsysteme können als Software-Programme ausgeführt sein. Eine Ablage (220) wird durch die Teilsysteme des Testdienstes verwendet, um serialisierte Objekte zu laden/speichern, die den Status der Anwendung oder andere Daten darstellen (JSON kann ein Beispiel für in der Ablage gespeicherte linearisierte Objektcodierung sein).
  • In der auf dem Test-Hostrechner laufenden Web-Anwendung ermöglichen die JavaScript-APIs die Selbststeuerung des JavaScript-Testcodes. Die Selbststeuerungsbefehle für die JavaScript-API (235) ermöglichen den Datenaustausch zwischen dem JavaScript-Code vom Browser (der Web-Anwendung) und dem Testdienst. Ein Browser-Starter (230) ist optional und dient zum Starten des Browsers auf der URL des Test-Hostrechners. Bei Verwendung empfängt er das Ereignis vom entfernt angeordneten Ereignis-Sender (225), der es selbst von Systemereignis-Erzeuger (215) empfangen hat, und überträgt es an den Browser. Wenn kein Browser-Starter vorhanden ist, kann der Browser die simulierten Systemereignisse direkt empfangen, da der Browser gestartet wird, bevor der Testcode in der Web-Anwendung ausgeführt wird. Der Browser (110) empfängt und bearbeitet dasselbe Ereignis auf dem Test-Hostrechner. Innerhalb der Web-Anwendung beinhaltet der Testfolgen-Code (Web-Seiten, die HTML-/JavaScript-/Dojo-Code enthalten) den Code, um die Objekte zu testen, und verwendet die Selbststeuerungsbefehle für die JavaScript-API (235), um die Überprüfungspunkte zu prüfen und Aktionen in Richtung des HTTP-Servers (210) auszulösen, der den Testdienst bereitstellt.
  • Es wird darauf hingewiesen, dass sich das gesamte Testsystem, das die Komponenten des Testautomatisierungssystems umfasst, und der Testserver auf einem einzigen Computer befinden können. In diesem Fall, in dem sich das Testautomatisierungssystem und der Testserver auf einem einzigen Computer befinden, ist es nicht erforderlich, dass sich der entfernt angeordnete Ereignis-Sender (225) und die Ablage in räumlicher Nähe zur Web-Anwendung befinden.
  • Die JavaScript-API stellt eine Verbindung mit dem HTTP-Server her, um der Web-Anwendung das Senden von Ereignisbefehlen zu ermöglichen. Der Dienst erhält die Befehle und erzeugt über den Systemereignis-Erzeuger Tastatur- oder Mausereignisse, die der Browser (der immer als oberstes Fenster läuft) auffängt, so dass es scheint, als ob die Ereignisse und die Änderungen der Web-Seiten durch den Benutzer selbst erzeugt worden wären. An diesem Punkt wird der Testautomatisierungscode innerhalb der Web-Anwendung weiter ausgeführt.
  • Beispiel für Überprüfungspunkte auf der Grundlage der Web-Seiten-Objektprüfung wie beispielsweise DOM-Prüfungen: Es wird nun davon ausgegangen, dass die Web-Oberfläche eine Schaltfläche bereitstellt. Wenn der Benutzer auf die Schaltfläche klickt, wird ein neues Feld angezeigt. In diesem Beispiel sollte der JavaScript-Code der Testautomatisierung folgendermaßen aussehen: Das JavaScript erfragt einen Mausklick auf das oben genannte Schaltflächenelement. Dann empfängt der Dienst den Befehl durch die JavaScript-API und erzeugt die zugehörigen Systemereignisse. Sobald das Ereignis empfangen wird, wird eine neue Aufnahmestruktur (<DIV>) im DOM erzeugt, um das neue Feld aufzunehmen (ein Unter-DOM). Der JavaScript-Code kann dann prüfen, ob das DOM-Element wie erwartet eingefügt wurde.
  • Beispielhafte Überprüfungspunkte auf der Grundlage von Objektstatusprüfungen:
    Eine weitere Möglichkeit zur Umsetzung der Überprüfungspunkte besteht darin, die (beispielsweise als JSON-Zeichenketten linearisierten) Objekte zu speichern, bevor simulierte Systemereignisse angefordert werden. Sobald die simulierten Systemereignisse dann empfangen werden und die Änderungen auf das DOM übertragen wurden, können die zuvor gespeicherten JSON-Objekte geladen und mit den veränderten Objekten verglichen werden. Es wird nun angenommen, dass die Web-Anwendung ein Widget in eine Web-Seite einfügt, das die Hintergrundfarbe wechselt, wenn sich die Maus darüber befindet. Zudem wird davon ausgegangen, dass sich das Widget-Objekt als serialisierter Original-Wert in der Original-Ablage befindet (mit der Hintergrundfarbe, die mit der Farbe erwartet wird, wenn sich die Maus über dem Widget befindet). In diesem Fall besteht der JavaScript-Test aus dem Erfragen eines JavaScript-Befehlsereignisses „Maus über” dem Widget. Wenn dann das Ereignis beim Browser ankommt und die Maus automatisch über das Widget bewegt wird, erfragt der JavaScript-Test beim Dienst den Vergleich des momentanen Widget-Status mit dem in der Ablage vorhandenen, Jede dieser Testfolgen erzeugt die folgenden Aktionen: Tätigen von HTTP-Anfragen auf dynamischen Web-Seiten, Speichern von JSON-Objekten als momentanen Status, Erzeugen von Ereignisbefehlen, Auffangen des Ereignisses und der Veränderungen der Web-Seite (durch den Browser), Prüfen von DOM-Änderungen durch Vergleichen von Ergebnissen mit Original-Werten (Vorlagen), Vergleichen von JSON-Objekten mit Original-Werten. Jede Testfolge erzeugt eine der üblichen Wechselwirkungen zwischen dem Browser und dem System.
  • Die folgenden beispielhaften Tests können ausgeführt werden:
    • • „Vorausschauen” (Erzeugen der Ereignisse, um die ersten Zeichen einer zu suchenden Zeichenkette einzugeben).
    • • „Feldgültigkeitsprüfung” (Erzeugen aller Tastaturzeichen).
    • • „Seiten speichern” (Erzeugen des Ereignisses, um auf das Browser-Menü zuzugreifen und die Seite zu speichern).
    • • „Datei hochladen” (Erzeugen der Ereignisse, um eine Datei in einem Popup-Menü des Browsers einzugeben und die Datei zu öffnen).
    • • „Lokalisierung” (Erzeugen der Ereignisse, um auf das Browser-Menü zuzugreifen und die Browser-Sprache zu ändern).
    • • „Browserabhängig”, Erzeugen derselben Tastatur- und Mausereignisse, um das unterschiedliche Verhalten der Ereignisse auf den unterschiedlichen Browsern zu testen.
    • • „Zugangstestfälle”, Verwenden der Sequenzen von (Tabulator, Eingabe)-Tastaturereignissen.
  • Selbststeuerungsbefehle für die JavaScript-API werden asynchron an den HTTP-Server auf einem Anschluss gesendet wie zum Beispiel:
    http://Servicehostname:port/?receiverhost=hostname&command=<name>&arg1=valuel&......&argN=valueN
  • Einige der grundlegenden API-Befehle können folgendermaßen aussehen:
    click(x, y)
    doubleclick(x, y)
    key(k)'
    Sondertasten sind (Tabulator, Eingabe, nach links, nach rechts, nach oben, nach unten) pause (Verzögerung)
    fileload (Dateiname)
    filesave (Dateiname)
  • Einige API-Befehle für die Überprüfungspunkte auf der Grundlage des JSON-Vergleichs können folgendermaßen aussehen:
    saveAsJSON (Objekt, Name), speichert das Objekt als JSON-Zeichenkette. object loadJSON (Name), wandelt die JSON-Zeichenkette in ein Objekt um.
    checkJSON (Objekt, Objekt), vergleicht zwei JSON-Objekte.
  • 3 ist eine Darstellung der Web-2.0-Anwendungsumgebung mit einem simulierten Ereignis gemäß der vorliegenden Ausführungsform. Die Darstellung der Ereignisbearbeitung dient dem Verständnis der Unterschiede zum Testverfahren nach dem Stand der Technik, das lediglich das Einbetten von Code in ein Programm vorschlägt. Die Web-2.0-Anwendung ist in einer Aufnahme (z. B. Web-Browser) vorhanden, die kritische Komponenten (z. B. HTML-Rendering, DOM-Darstellung von Dokumenten, JavaScript-Sprachinterpretierer und -Funktionsbibliothek, HTTP- und HTTPS-Netzwerkdatenaustausch usw.) sowie eine Einrichtung zum Empfang von Ereignissen vom System (z. B. als Reaktion auf eine Benutzeraktion oder -eingabe) unterstützt. Die Umsetzung und das Verhalten einer solchen Aufnahme und aller zugehörigen Komponenten ist für Web-2.0-Anwendungen entscheidend: eine Web-2.0-Anwendung kann nicht vollständig getestet werden, wenn diese komplexe Umgebung während des Tests nicht berücksichtigt wird.
  • Es wird in 3 mit Schritt Nummer 2 begonnen (Erfragen der Ereigniserzeugung beim System). Dies ist im Wesentlichen auch für Benutzeraktionen derselbe Startpunkt. Wie in der Figur gezeigt, legt das Ereignis eine gewisse Wegstrecke zurück und wird durch mehrere Komponenten und Code-Ebenen bearbeitet, bevor es an die Web-2.0-Anwendung gesendet wird. Dabei „hinterlässt es üblicherweise eine Spur” in solchen Code-Ebenen und Komponenten, indem z. B. deren Datenstrukturen verändert werden usw. Wenn das Ereignis schließlich an die Web-Anwendung gesendet und durch die Web-Anwendung bearbeitet wird, kann die Anwendung so auf das Ereignis reagieren, als ob es „in Wirklichkeit” in einer realen Situation ausgelöst worden wäre, das heißt die Web-Anwendung stellt fest, dass ihre Umgebung das Ereignis auch bearbeitet hat und die Möglichkeit hatte, darauf zu reagieren. Dies ist nicht möglich, wenn die Web-Anwendung den Empfang des Ereignisses ganz alleine simuliert und diese gesamte lange Bearbeitung ignoriert.
  • Falls die Web-Anwendung ihre Reaktion nur auf eine Art von „abstraktem” Ereignis testen kann, eines das unbekannt ist und die Umgebung und die Aufnahme Web-Anwendung nicht beeinflusst, ist eine vollständige Abdeckung des Codes nicht möglich. Im Gegenteil (und dies trifft insbesondere auf Web-Anwendungen zu) unterscheidet sich jede Aufnahme (z. B. Web-Browser) von der anderen und oftmals auch von anderen Versionen ihrer selbst. Aus diesem Grund ist es erforderlich, die Web-Anwendung in jeder unterstützten Umgebung zu testen, und wie bereits erwähnt ist dies mit Sicherheit nicht möglich, wenn die Umgebung völlig in das Testszenario integriert ist.
  • 3 zeigt ein Beispiel, wie ein Ereignis erzeugt und an die Software-Anwendung gesendet werden kann. Während das Ereignis bearbeitet wird, gibt es Schritte, die die beherbergende Umgebung beeinflussen (im Bild die Schritte Nummer 3. „Ereignisbearbeitung” zur Simulation des Ereignisses und 5. „Ereignisbearbeitung” zur Reproduktion des Ereignisses durch den Browser, die durch eingebetteten Code allein nicht reproduziert werden können.
  • 4 ist der allgemeine Ablaufplan des Verfahrens der Erfindung gemäß der bevorzugten Ausführungsform. Das Verfahren wird auf einem oder zwei Hostrechnern, jedoch auf zwei Servern, ausgeführt. Auf einem Server läuft die Web-Anwendung in ihrer Umgebung (Web-Browser), und ein Testserver, der über eine Schnittstelle mit der Web-Anwendung verbunden ist, betreibt den Test. Das Verfahren zum automatischen Testen der Web-Anwendung umfasst einen ersten Schritt (400) des Ausführens von Testcode innerhalb des Web-Anwendungs-Codes zum Testen der Web-Anwendung. Ein zweiter Schritt (410) wird ausgeführt, indem von einem Testcode und über eine API eine Meldung einschließlich eines Befehls an den Test-Server gesendet wird. In einem dritten Schritt (420) empfängt der Testserver die Meldung und interpretiert den Befehl, um eine Benutzereingabe in eine Seite der Web-Anwendung zu simulieren oder ein Systemereignis zu erzeugen, das auch durch die Umgebung der Web-Anwendung und durch die Web-Anwendung verstanden werden kann. Die Benutzereingabe oder das Systemereignis steht mit dem in der Web-Anwendung laufenden Testcode in Verbindung. Der Test-Server sendet die simulierte Benutzereingabe oder das Systemereignis an den Web-Browser, der die Web-Anwendung beinhaltet. Der Web-Browser (430) bearbeitet die Benutzereingabe oder das Systemereignis, das die übliche Ausführung der Web-Anwendung auslöst, die getestet wird. Der Testcode in der Web-Anwendung prüft (440) die Gültigkeit des Ergebnisses der Ausführung des Web-Anwendungs-Codes, indem die internen Datenstrukturen der Web-Anwendung entweder durch ein Programm oder durch Vergleichen ihrer Darstellung mit einer bekannten Vorlage geprüft werden.
  • Einige spezielle Schritte des Verfahrens betreffen das Beispiel von auf der Prüfung von HTML-Objekten beruhenden Überprüfungspunkten. Wenn beispielsweise das Klicken des Benutzers mit der Maus in einem Web-Feld, das Teil einer Web-Seite ist, die Anzeige eines neuen Web-Feldes durch die Anwendung hervorruft, besteht der Schritt 410 in der Anfrage nach einer Mausklick-Simulation, und Schritt 430 schließt weiterhin ein, dass die Web-Anwendung bei ihrer normalen Codeausführung (die Ausführung von Testcode nicht eingeschlossen) eine neue, der Erzeugung von neuen Instanzen eines HTML-Objekts (DOM-Objekt) entsprechende Aufnahmestruktur erzeugt, die der neuen anzuzeigenden Web-Seite entspricht. Schritt 440 schließt Testcode ein, der prüft, ob das dieser Web-Seite entsprechende Objekt in der Web-Anwendung korrekt realisiert wurde.
  • Weitere spezielle Schritte des Verfahrens betreffen das Beispiel von auf der Prüfung des Objektstatus beruhenden Überprüfungspunkten, zum Beispiel Prüfen, ob die Verwendung des Widget durch den Benutzer die Farbe des Hintergrunds einer HTML-Seite geändert hat. Eine Anfrage vom Testcode der Web-Anwendung (410) könnte in der Anfrage nach einem Speichern des ursprünglichen Status des Widget-Objekts (zum Beispiel das Speichern eines Widget als JSON-Zeichenkette in der Ablage) und der Anfrage über einen JavaScript-Befehl nach der Simulation eines Systemereignisses (wie das Bewegen der Maus über ein Widget) in der Web-Seite bestehen, die dem Benutzer angezeigt wird und dieses Widget enthält. Wenn dann das simulierte Systemereignis empfangen wird, führt die Web-Anwendung bei Durchführung der simulierten Mausbewegung durch den Browser die entsprechende Funktion aus, und der Testcode (440), der die Änderungen der Web-Seite auffängt, sendet eine neue Anfrage an den Testdienst (410), um das gespeicherte Objekt (JSON-Zeichenkette) von der Ablage abzurufen, empfängt das gespeicherte Objekt durch die API der Web-Anwendung und liest den momentanen Status des Widget und prüft DOM-Änderungen durch Vergleichen von JSON-Objekten mit in der Ablage gespeicherten Objekten. Jede Testfolge erzeugt eine der üblichen Wechselwirkungen zwischen dem Browser und dem System.
  • Zusammenfassend gesagt, das Verfahren zum automatischen Testen der Web-Anwendung ist vollständig, wenn es sowohl die internen Strukturen (440) der Web-Anwendung als auch die äußere Umgebung (430) der Web-Anwendung testet.
  • Ein Beispiel, das das Testen der internen Struktur veranschaulicht, ist die Annahme, dass die Web-Anwendung einen internen Zähler unterhält, der die Anzahl der Widgets in fehlerhaftem Zustand verfolgt, so dass bei einer Anzahl größer als Null das gesamte Feld ungültig ist und nicht mehr bearbeitet werden kann. Ein Test, der eine korrekte Reaktion der Web-Anwendung auf eine unzulässige Eingabe vom Benutzer prüft, könnte drei Tests beinhalten:
    • 1) ob das entsprechende Widget die Hintergrundfarbe ändert, um den Fehler anzuzeigen
    • 2) ob eine Meldung erscheint, um den Benutzer zu informieren
    • 3) ob der interne Zähler um eine Einheit vorrückt.
  • Punkt 3) bezieht sich auf eine interne Datenstruktur der Anwendung. Der interne Zähler ist nur in der Web-Anwendung vorhanden; er kann nicht durch Testen der externen Eingaben getestet werden, da kein HTML-Element und keine externe Darstellung diesem Zähler entsprechen. Der Code kann sich selbst analysieren. Ein HTML-, DOM- oder JavaScript-Objekt besitzt eine Datenstruktur, die extern durch die Web-Oberfläche der Web-Anwendung sichtbar ist und die intern sichtbar ist, wenn sie Daten innerhalb der Web-Anwendung wie den oben genannten Zähler umfasst.
  • Ein Beispiel, das das Testen der äußeren Umgebung der Web-Anwendung veranschaulicht, ist die Annahme, dass etwas außerhalb der Web-Anwendung im Betriebssystem des Computers geschieht, der die Web-Anwendung beherbergt. Das Testverfahren kann testen, wie die Web-Anwendung als Antwort auf die Systemereignisse reagiert. Ein anderes Verhalten zeigt sich, wenn man den Browser oder das Betriebssystem im Hostrechner, auf dem die Web-Anwendung ausgeführt wird, verändert. Folglich kann die interne Struktur als Reaktion auf ein externes Ereignis wie beim eingebetteten Testcode der Verfahren nach dem Stand der Technik getestet werden. Die interne Struktur der Anwendung kann nur als Reaktion auf eine interne Eingabe getestet werden, die durch den Testcode selbst und nicht durch die Systemumgebung simuliert wird.

Claims (13)

  1. Verfahren zum automatischen Testen einer Web-Anwendung, die innerhalb eines Web-Browsers eines Testcomputers läuft, wobei die Web-Anwendung mit Testcode ausgestattet ist (400) und das Verfahren Folgendes umfasst: – Senden (410) einer Meldung vom Testcode unter Ausführung in der Web-Anwendung durch eine in der Web-Anwendung festgelegte API an einen HTTP-Server, wobei die Meldung vom HTTP-Server das Simulieren einer Benutzereingabe erfragt und die Benutzereingabe mit dem in der Web-Anwendung laufenden Testcode in Verbindung steht; – Empfangen der Meldung durch den HTTP-Server (420) und Aktivieren eines Systemereignis-Erzeugers (215), um mindestens ein der Benutzereingabe entsprechendes Systemereignis zu simulieren und es dem Web-Browser bereitzustellen; – Bearbeiten des mindestens einen simulierten Systemereignisses durch den Web-Browser (430), wobei das Systemereignis selbst die Ausführung von Code in der Web-Anwendung auslöst; – Prüfen der Gültigkeit des Ergebnisses der Auslösung von Code in der Web-Anwendung durch das mindestens eine Systemereignis durch den Testcode in der Web-Anwendung (440), indem die interne Datenstruktur der Web-Anwendung geprüft wird.
  2. Verfahren nach Anspruch 1, wobei – der Schritt des Testcode-Prüfens (440) das Prüfen umfasst, ob die Web-Anwendung eine interne Datenstruktur, die einer durch die Web-Anwendung anzuzeigenden Änderung der Web-Seite entspricht, korrekt erzeugt.
  3. Verfahren nach Anspruch 2, bei dem das mindestens eine simulierte Systemereignis ein Mausklick ist, der die Änderung der Web-Seite erfordert.
  4. Verfahren nach Anspruch 1, das weiterhin Folgendes umfasst: – der Schritt des Sendens (410) umfasst, dass der Testcode den ursprünglichen Status einer internen oder externen Objektdatenstruktur in einer Web-Seite speichert, in der Meldung vom HTTP-Server verlangt, ihn in einer Ablage zu speichern und mindestens ein Systemereignis in Verbindung mit dem Objekt in der Web-Seite zu simulieren; – der Schritt des Prüfens des Testcodes (440) umfasst, dass geprüft wird, ob die Web-Anwendung die externe oder interne Objektdatenstruktur in der Web-Seite geändert hat, die Objektdatenstruktur nach der Änderung der Web-Seite aufgenommen wird, in einer neuen Meldung durch dieselbe in der Web-Anwendung festgelegte API vom Testserver verlangt wird, den ursprünglichen Status des Objekts von der Ablage abzurufen, diesen abgerufenen ursprünglichen Objektstatus zu empfangen und zu prüfen, ob die Änderung korrekt ist, indem die ursprüngliche und die geänderte interne Datenstruktur verglichen werden.
  5. Verfahren nach Anspruch 4, wobei das mindestens eine simulierte Systemereignis eine Mausbewegung in einer Web-Seite über ein Objekt ist, das ein Widget ist.
  6. Verfahren nach einem der Ansprüche 1 bis 5, wobei die Schritte an HTML-, DOM- oder JavaScript-Objekten ausgeführt werden.
  7. Verfahren nach Anspruch 6, wobei in den Schritten des Sendens und Prüfens das Objekt durch den HTTP-Server als JSON-Zeichenkette in der Ablage gespeichert und von dort abgerufen wird, falls das Objekt ein JavaScript-Objekt ist.
  8. Verfahren nach einem der Ansprüche 1 bis 7, wobei der Schritt des Sendens weiterhin umfasst, im Falle, dass der HTTP-Server entfernt angeordnet ist, das mindestens eine Systemereignis vom HTTP-Server an den Server zu senden, auf dem die Web-Anwendung ausgeführt wird.
  9. Verfahren nach einem der Ansprüche 1 bis 8, das weiterhin einen Eingangsschritt des Codierens des Tests und der Web-Anwendung in einer Sprache umfasst, die vom Browser verstanden werden kann.
  10. Verfahren nach einem der Ansprüche 1 bis 9, das weiterhin einen Eingangsschritt des Codierens des Tests und der Web-Anwendung in JavaScript umfasst.
  11. Verfahren nach einem der Ansprüche 1 bis 10, wobei der Schritt des Sendens (410) und der Schritt des Prüfens der Anwendung (440) weiterhin einen Eingangsschritt eines manuellen Auslösens des Testcodes innerhalb der Anwendung durch eine Steuerungsanwendung umfasst.
  12. Verfahren nach einem der Ansprüche 1 bis 10, wobei der Schritt des Sendens (410) und der Schritt des Prüfens der Anwendung (440) durch Ausführen der zuvor gestarteten Web-Anwendung automatisch ausgeführt werden.
  13. System, das Mittel umfasst, die geeignet sind, das Verfahren nach einem der Ansprüche 1 bis 12 durchzuführen.
DE112010002916T 2010-08-10 2010-08-10 Verfahren und System zum automatischen Testen einer Web-Anwendung Withdrawn DE112010002916T5 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2010/061577 WO2012019639A1 (en) 2010-08-10 2010-08-10 A method and system to automatically testing a web application

Publications (1)

Publication Number Publication Date
DE112010002916T5 true DE112010002916T5 (de) 2012-07-05

Family

ID=43402193

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112010002916T Withdrawn DE112010002916T5 (de) 2010-08-10 2010-08-10 Verfahren und System zum automatischen Testen einer Web-Anwendung

Country Status (6)

Country Link
US (2) US20120174075A1 (de)
JP (1) JP5437493B2 (de)
CN (1) CN102511037A (de)
DE (1) DE112010002916T5 (de)
GB (1) GB2497018A (de)
WO (1) WO2012019639A1 (de)

Families Citing this family (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10169221B2 (en) * 2008-07-22 2019-01-01 Accelerate Group Limited Method and system for web-site testing
WO2010011792A2 (en) * 2008-07-22 2010-01-28 Widemile Inc. Method and system for web-site testing
US9575878B2 (en) * 2009-03-16 2017-02-21 International Business Machines Corporation Data-driven testing without data configuration
US8756488B2 (en) 2010-06-18 2014-06-17 Sweetlabs, Inc. Systems and methods for integration of an application runtime environment into a user computing environment
WO2012014284A1 (ja) * 2010-07-27 2012-02-02 株式会社日立製作所 テストシナリオ生成方法、テストシナリオ生成システム、及び、テストシナリオ生成プログラム
US8806647B1 (en) 2011-04-25 2014-08-12 Twitter, Inc. Behavioral scanning of mobile applications
KR101691245B1 (ko) * 2012-05-11 2017-01-09 삼성에스디에스 주식회사 웹 서비스 모니터링 시스템 및 방법
US8881108B2 (en) * 2012-06-28 2014-11-04 Sap Ag Test program for HTTP-communicating service
US8775917B2 (en) 2012-08-09 2014-07-08 Sweetlabs, Inc. Systems and methods for alert management
US8775925B2 (en) 2012-08-28 2014-07-08 Sweetlabs, Inc. Systems and methods for hosted applications
US9081757B2 (en) 2012-08-28 2015-07-14 Sweetlabs, Inc Systems and methods for tracking and updating hosted applications
US10332005B1 (en) * 2012-09-25 2019-06-25 Narus, Inc. System and method for extracting signatures from controlled execution of applications and using them on traffic traces
US9069735B2 (en) 2012-10-15 2015-06-30 Sweetlabs, Inc. Systems and methods for integrated application platforms
CN103810084B (zh) * 2012-11-07 2017-12-01 腾讯科技(深圳)有限公司 一种js代码的测试方法、装置和系统
CN103810089B (zh) * 2012-11-12 2021-12-03 Sap欧洲公司 自动测试基于姿态的应用
EP2951718A4 (de) 2013-01-29 2016-08-31 Hewlett Packard Entpr Dev Lp Analysestruktur für webanwendung
GB2511047A (en) 2013-02-20 2014-08-27 Ibm Providing context in functional testing of web services
CN104956375B (zh) 2013-02-25 2018-04-03 慧与发展有限责任合伙企业 基于规则呈现用户界面元素
US9047404B1 (en) * 2013-03-13 2015-06-02 Amazon Technologies, Inc. Bridge to connect an extended development capability device to a target device
US20140310590A1 (en) * 2013-03-13 2014-10-16 Bby Solutions, Inc. Presentation layer software development kit for creation of dynamic webpages
US9424172B1 (en) 2013-03-15 2016-08-23 Twitter, Inc. Web services comparison tool
CN104077213B (zh) * 2013-03-26 2018-07-06 腾讯科技(深圳)有限公司 一种webkit单元测试方法及装置
US9104814B1 (en) * 2013-05-03 2015-08-11 Kabam, Inc. System and method for integrated testing of a virtual space
US10025674B2 (en) * 2013-06-07 2018-07-17 Microsoft Technology Licensing, Llc Framework for running untrusted code
US9372787B2 (en) * 2013-07-15 2016-06-21 Sap Se System and method for automating testing
KR20150029184A (ko) * 2013-09-09 2015-03-18 삼성에스디에스 주식회사 애플리케이션을 테스트하는 기법
US9323649B2 (en) * 2013-09-30 2016-04-26 International Business Machines Corporation Detecting error states when interacting with web applications
US9262311B1 (en) * 2013-12-03 2016-02-16 Amazon Technologies, Inc. Network page test system and methods
JP5991695B2 (ja) * 2013-12-06 2016-09-14 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 文書オブジェクトモデルツリーとカスケーディング・スタイル・シートとが取り出されることが可能なアプリケーションのソースコードを変更することによって生じる影響を検知するための方法、並びに、当該影響を検知するためのコンピュータ及びそのコンピュータ・プログラム
JP6215033B2 (ja) * 2013-12-17 2017-10-18 エヌ・ティ・ティ・コミュニケーションズ株式会社 テスト制御装置、通信システム、テスト制御方法、及びテスト制御プログラム
US9749440B2 (en) 2013-12-31 2017-08-29 Sweetlabs, Inc. Systems and methods for hosted application marketplaces
CN104881355A (zh) * 2014-02-27 2015-09-02 国际商业机器公司 一种用于检测测试覆盖的方法和系统
US10019247B2 (en) 2014-05-15 2018-07-10 Sweetlabs, Inc. Systems and methods for application installation platforms
US10089098B2 (en) 2014-05-15 2018-10-02 Sweetlabs, Inc. Systems and methods for application installation platforms
CN104391786B (zh) * 2014-10-31 2018-04-27 任子行网络技术股份有限公司 网页自动化测试系统及其方法
US9753843B2 (en) * 2014-11-20 2017-09-05 Accenture Global Services Limited Automated testing of web-based applications
WO2016085499A1 (en) * 2014-11-26 2016-06-02 Hewlett Packard Enterprise Development Lp Determine vulnerability using runtime agent and network sniffer
IN2015DE00812A (de) * 2015-03-24 2015-04-03 Hcl Technologies Ltd
US9921945B2 (en) * 2015-04-06 2018-03-20 Adp, Llc Automatic verification of JSON data
EP3308277A4 (de) * 2015-06-15 2019-03-13 Lens10 Pty Ltd System und verfahren zur verwendung bei der regressionsprüfung von hyperlinks elektronischer dokumente
US9720800B2 (en) 2015-08-28 2017-08-01 International Business Machines Corporation Auto-generating representational state transfer (REST) services for quality assurance
CN105607993B (zh) * 2015-09-30 2018-04-20 北京奇虎科技有限公司 一种对应用的用户界面ui进行测试的方法和装置
US11132287B2 (en) * 2016-05-18 2021-09-28 Dynatrace Llc Synthetic test recorder installed inline with a web portal
EP3479248A4 (de) * 2016-06-29 2019-12-18 Synopsys, Inc. Automatisierter http-benutzerstromsimulator
CN106326115A (zh) * 2016-08-17 2017-01-11 北京奇虎科技有限公司 一种测试api的方法、装置和系统
CN107808097A (zh) 2016-09-09 2018-03-16 安提特软件有限责任公司 JavaScript 路径枚举
WO2018097344A1 (ko) * 2016-11-23 2018-05-31 라인 가부시키가이샤 탐지 결과의 유효성을 검증하는 방법 및 시스템
US10961321B1 (en) 2017-01-06 2021-03-30 Siwa Corporation Methods and compositions for treating pain associated with inflammation
KR101796009B1 (ko) * 2017-03-07 2017-12-01 주식회사 한글과컴퓨터 프로그램 자동 분석 시스템 및 이를 이용한 자동분석 방법
CN106991048A (zh) * 2017-03-31 2017-07-28 杭州迪普科技股份有限公司 网页测试方法和装置
EP3486772A1 (de) 2017-11-16 2019-05-22 Siemens Aktiengesellschaft Verfahren zur gegenseitigen integration von anwendungen in einem prozessleitsystem
US10599426B2 (en) * 2018-03-05 2020-03-24 Bank Of America Corporation Automated validation tool
US10467127B2 (en) * 2018-03-23 2019-11-05 Lendingclub Corporation Unified UI/UX and API testing of web applications
CN109684192B (zh) * 2018-08-21 2024-03-01 天航长鹰(江苏)科技有限公司 基于数据处理的本地测试方法、设备、存储介质及装置
CN111414301B (zh) * 2019-01-07 2023-06-20 阿里巴巴集团控股有限公司 调试应用程序的方法及装置
US10929276B2 (en) * 2019-06-14 2021-02-23 Paypal, Inc. Simulation computing services for testing application functionalities
CN110245086B (zh) * 2019-06-19 2023-05-16 北京字节跳动网络技术有限公司 应用程序稳定性测试方法、装置及设备
CN110727596A (zh) * 2019-10-15 2020-01-24 北京弘远博学科技有限公司 一种app接口自动化测试方法
US11341317B2 (en) * 2019-10-16 2022-05-24 Oracle International Corporation Supporting piecewise update of JSON document efficiently
CN110990283A (zh) * 2019-12-04 2020-04-10 中国直升机设计研究所 一种机载显控软件健壮性自动测试方法
CN111078207B (zh) * 2019-12-09 2023-08-29 浪潮云信息技术股份公司 基于cypress框架跨操作系统实现自动化网页模拟操作的方法
US11176022B2 (en) 2019-12-27 2021-11-16 Bank Of America Corporation Health diagnostics and analytics for object repositories
CN111209204B (zh) * 2020-01-06 2023-09-22 杭州涂鸦信息技术有限公司 一种基于JSON的web自动化测试方法及其系统和装置
US11307911B2 (en) * 2020-05-29 2022-04-19 Microsoft Technology Licensing, Llc File upload modifications for client side applications
CN112181802A (zh) * 2020-08-21 2021-01-05 长沙市到家悠享网络科技有限公司 测试方法及装置
CN112231213A (zh) * 2020-10-16 2021-01-15 广州助蜂网络科技有限公司 Web自动化测试方法、系统、存储介质及终端设备
CN112394977A (zh) * 2020-11-16 2021-02-23 京东数字科技控股股份有限公司 数据处理方法、装置、设备及计算机可读存储介质
CN112579442B (zh) * 2020-12-04 2024-04-09 的卢技术有限公司 Ar hud测试方法、系统、计算机设备和存储介质
US20240004624A1 (en) * 2022-05-25 2024-01-04 Bionic Stork Ltd. Techniques for recording operations in an application utilizing external initialization engines

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6904389B2 (en) * 2001-03-06 2005-06-07 Hewlett-Packard Development Company, L.P. Remote computer testing
JP2003044318A (ja) * 2001-08-02 2003-02-14 Fujitsu Ltd テスト支援プログラムおよびテスト支援方法
US20040025083A1 (en) 2002-07-31 2004-02-05 Murthi Nanja Generating test code for software
US20060064399A1 (en) * 2004-09-21 2006-03-23 Giuseppe De Sio Method and system for testing distributed software applications
US20060150111A1 (en) * 2004-12-30 2006-07-06 Microsoft Corporation Methods and apparatus for evaluating aspects of a web page
WO2008126796A1 (ja) * 2007-04-06 2008-10-23 International Business Machines Corporation サービス・プログラムを生成する技術
US8205120B2 (en) * 2007-12-21 2012-06-19 Sap Ag Intelligent test framework
CN101217425A (zh) * 2008-01-04 2008-07-09 中兴通讯股份有限公司 Web测试的方法及装置

Also Published As

Publication number Publication date
CN102511037A (zh) 2012-06-20
US20120174075A1 (en) 2012-07-05
US20130219368A1 (en) 2013-08-22
JP5437493B2 (ja) 2014-03-12
GB2497018A (en) 2013-05-29
GB201302793D0 (en) 2013-04-03
JP2013504139A (ja) 2013-02-04
WO2012019639A1 (en) 2012-02-16

Similar Documents

Publication Publication Date Title
DE112010002916T5 (de) Verfahren und System zum automatischen Testen einer Web-Anwendung
EP2350873B1 (de) Erfassung des visuellen inhalts von browserfenstern
DE69838257T2 (de) Verfahren zum erweitern der hypertext markup sprache (html) zur unterstützung von unternehmungsanwendungsdatenbindung
DE10121790B4 (de) Softwarekonfigurationsverfahren zur Verwendung in einem Computersystem
DE102008019040B4 (de) Verfahren und Steuergerät zur Steuerung eines Automatisierungssystems
DE60017457T2 (de) Verfahren zur isolierung eines fehlers in fehlernachrichten
DE112010004980B4 (de) Verbessern der Leistungsfähigkeit von auf Vorlagen beruhenden Javascript-Fensterobjekten
DE69933329T2 (de) Vorrichtung und Verfahren für sichere übertragung von Dokumenten die von einem Webmittel gesendet werden
DE112016003949T5 (de) Webbasierte programmierumgebung für eingebettete geräte
DE102012213795A1 (de) Durch einen Computer implementiertes Verfahren, das es einer Web-Anwendung ermöglicht, mindestens eine native Funktion einer mobilen Einheit aufzurufen
DE60122298T2 (de) Dateneingabe
WO2006013161A1 (de) Verfahren, programm und system zur dynamischen, template basierten generierung von internetseiten
EP3032408B1 (de) Verfahren zur erzeugung von lauffähigen applikationen mit dynamischen skalierbaren vektorgrafiken
DE10333087A1 (de) Verfahren zum automatischen Zerlegen von dynamischen Systemmodellen in Teilmodelle
DE10333088A1 (de) Verfahren zum Liefern von Zugriff auf die internen Signale eines dynamischen Systemmodells von außerhalb bezüglich der Modellierungsumgebung
DE10161115A1 (de) Transformation von Objektbäumen, insbesondere in MES-Systemen
DE10324594A1 (de) Verfahren zum Bereitstellen einer verbesserten Simulationsfähigkeit eines dynamischen Systems außerhalb der ursprünglichen Modellierungsumgebung
DE60001743T2 (de) Erweiterung der attribute eines anwendungsprogrammes hergestellt mit einem programmierwerkzeug der vierten generation
EP2171582B1 (de) Fernbedienung eines browser-programms
DE10332492B4 (de) Verfahren und Anordnung zum visuellen Darstellen von Inhalten auf einem Darstellungsmittel
DE202012013449U1 (de) System für In-Line-Einfügung von Scriptabhängigkeiten
DE202010004029U1 (de) Vorrichtung zur Übertragung von Daten zum Rendern einer mehrdimensionalen Animation
EP2862075B1 (de) Simulieren eines komplexen systems
DE102004062909A1 (de) Verfahren zum automatisierten Analysieren einer Internetseite sowie Verwendung
DE19964082C1 (de) Verfahren und Vorrichtung zur Simulation von Benutzereingaben

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee