DE69717824T2 - Verfahren und vorrichtung zum software-test - Google Patents
Verfahren und vorrichtung zum software-testInfo
- Publication number
- DE69717824T2 DE69717824T2 DE69717824T DE69717824T DE69717824T2 DE 69717824 T2 DE69717824 T2 DE 69717824T2 DE 69717824 T DE69717824 T DE 69717824T DE 69717824 T DE69717824 T DE 69717824T DE 69717824 T2 DE69717824 T2 DE 69717824T2
- Authority
- DE
- Germany
- Prior art keywords
- computer
- software
- program
- computer software
- computer system
- 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.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/362—Debugging of software
- G06F11/3636—Debugging of software by tracing the execution of the program
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)
- Debugging And Monitoring (AREA)
- Monitoring And Testing Of Exchanges (AREA)
- Exchange Systems With Centralized Control (AREA)
Description
- Die vorliegende Erfindung betrifft allgemein Systeme und Verfahren zum Testen, oder anderweitiger Fehlerbeseitigung (debugging), von Computersoftware eines nachrichtenorientierten Computersystems. Insbesondere betrifft die vorliegende Erfindung ein Verfahren und zugeordnete Computersystemschaltung, zum Testen eines Betriebs von Computersoftware des Computersystems.
- Ein Betrieb der Computersoftware kann getestet werden, während das Computersystem, wie beispielsweise ein Telefonvermittlungssystem, online betrieben wird, wodurch ein Testen des Computersystems nach seiner Installation an einem Einsatzort ermöglicht wird. Das Computersystem muss nicht von außer Betrieb gesetzt werden, während Testbetriebsvorgänge durchgeführt werden.
- Fortschritte bei digitalen Technologien haben die weitverbreitete Nutzung von prozessorbasierten Produkten und Diensten erlaubt. Produkte und Dienste, die bis dato nicht verfügbar waren, wurden durch die Verwendung solcher digitaler Technologien möglich gemacht, und viele existierende Produkte und Dienste wurden als eine Folge solcher digitaler Technologien effizienter und erschwinglicher gemacht.
- Mit der verbesserten Erschwinglichkeit und einer komplexeren prozessorbasierten Schaltung ist es wahrscheinlich, dass weiter immer komplexere Schaltungen vermehrt in zusätzlichen Systemen und Diensten verwendet werden.
- Die prozessorbasierte Schaltung umfasst Software, die während eines Betriebs der prozessorbasierten Schaltung ausgeführt wird. Mit Fortschritten bei Hardwarekomponenten der prozessorbasierten Schaltung kann eine komplexere Software schnell ausgeführt werden, um es zu erlauben, dass vermehrt komplexe Aufgaben durch die prozessorbasierte Schaltung ausgeführt werden.
- Wenn die beim Betrieb der prozessorbasierten Schaltung auszuführende Software entwickelt wird, muss nachfolgend einer Erzeugung des Softwareprogramms und des Codeschreibens die Software getestet werden, um sicherzustellen, dass, wenn ausgeführt, die Software hinsichtlich ihrer Zweckbestimmung betriebsbereit ist.
- Oft werden von Zeit zu Zeit während eines Testens der Computersoftware nicht erwartete Probleme oder "Bugs" (Fehler) entdeckt. Sind sie einmal entdeckt, ist eine geeignete Veränderung des Softwareprogramms notwendig, um die Software zu korrigieren, oder zum Austesten (debuggen). Ein nachfolgendes Testen der Software wird typischerweise auch benötigt, um sicherzustellen, dass die Programmveränderungen während des Fehlerbeseitigungs-Betriebsvorgangs keine zusätzlichen Fehler in die Software einführen.
- Während eines Entwicklungstestens wird das Softwareprogramm typischerweise zeilenweise (Zeile-um-Zeile) in interpretierter Form ausgeführt. Traceprogramme (Nachverfolgungsprogramme) oder Befehle werden manchmal zwischen Zeilen des interpretierten Codes der getesteten Computersoftware eingefügt. Solch ein Tracen (Nachverfolgen) versorgt den Tester mit Indikationen einer Programmausführung an einer beliebigen Stelle im Programm. Wenn die Schritte des in der Computersoftware ausgebildeten Programms iterativ ausgeführt werden, kann ein Tracingschritt als eine zusätzliche auszuführende Zeile an einem beliebigen Ort eingefügt werden. Wenn auch zeitaufwendig, stellt ein solches Testen eine Anzeige des Ortes im Code der Computersoftware bereit, an dem die Software in einer Weise arbeitet, die nicht vorgesehen ist.
- Während ein Entwicklungstesten der Computersoftware normalerweise beim Erfassen von Softwarebugs effektiv ist, verbleiben Softwarefehler manchmal unbemerkt, und somit nicht korrigiert. Manchmal fällt das Vorliegen eines Softwarefehlers erst nach einer Dienstaufnahme der prozessorbasierten Schaltung auf. Ein Austesten der Computersoftware ist notwendig, um den Ort des Fehlers zu bestimmen. Wie oben erwähnt, erfordern herkömmliche Austest- Betriebsvorgänge, dass die Computersoftware durch den Prozessor der prozessorbasierten Schaltung in interpretierter Form ausgeführt werden. Eine zeilenweise Ausführung von interpretiertem Code ist daher erforderlich.
- Da eine solche Programmausführung zeitaufwendig ist, muss die prozessorbasierte Schaltung typischerweise außer Dienst genommen werden und offline angeordnet werden, um die Testbetriebsvorgänge der Computersoftware durchzuführen. Solch ein Erfordernis, die Schaltung offline zu bringen, erfordert die Substitution einer Arbeitsschaltung an deren Stelle, oder erfordert die Unterbrechung einer Nutzung der Schaltung.
- Ein Telekommunikations-Vermittlungssystem ist beispielhaft für eine prozessorbasierte Schaltung mit Computersoftware, die durch einen Prozessor während eines Betriebs des Vermittlungssystems ausgeführt wird. Analog zu den oben diskutierten Entwicklungs- und Testprozeduren wird, sobald die Software für das Telekommunikations-Vermittlungssystem entwickelt wurde, ein Testen der Software durchgeführt, um sicherzustellen, dass das Vermittlungssystem zufriedenstellend arbeitet, wenn es in einem Telekommunikationsnetz installiert ist. Jedoch werden beim anfänglichen Testen auch hier manchmal die Softwarefehler nicht erkannt. Solche Softwarefehler fallen möglicherweise erst nach einer Installation des Telekommunikations- Vermittlungssystems in einem Telefonnetzwerk auf. Falls ein Softwarefehler danach auffällt, sind Testbetriebsvorgänge erforderlich, um den Softwarefehler zu korrigieren. Da existierende Softwaretestverfahren und System es erfordern, dass der gesamte Softwarecode in interpretierter Form zeilenweise ausgeführt wird, erfordern Testbetriebsvorgänge zur Durchführung signifikante Zeiträume.
- Emulatoren, die einen Betrieb eines Telekommunikations- Vermittlungssystems emulieren, werden manchmal bei der Entwicklung der Vermittlungssysteme verwendet. Die Emulatoren werden in dieser Hinsicht manchmal auch zum Testen der Software während der Entwicklung des Vermittlungssystems verwendet. Solche Emulatoren emulieren einen Betrieb eines tatsächlichen Vermittlungssystems. Wenn der Betrieb der Software eines Vermittlungssystems an solch einem Emulator getestet wird, muss die Software wiederum, im existierenden Stand der Technik, in interpretierter Form zeilenweise ausgeführt werden. Solch ein Erfordernis ist wiederum zeitaufwendig.
- Es wäre daher ein Verfahren vorteilhaft, mit dem die Computersoftware eines Computersystems, wie beispielsweise eines Telekommunikations-Vermittlungssystems, besser getestet werden kann.
- Vor dieser Hintergrundinformation bezüglich eines Testens von Computersoftware eines Computersystems, wie beispielsweise eines Telekommunikations-Vermittlungssystems wurden die signifikanten Verbesserungen der vorliegenden Erfindung entwickelt.
- Die vorliegende Erfindung, wie durch die Ansprüche definiert, liefert vorteilhaft ein Verfahren, mit dem Computersoftware eines Computersystems getestet werden kann. Nur ausgewählte Abschnitte der Software müssen in interpretierter Form ausgeführt werden; andere Abschnitte der Computersoftware werden in kompilierter Form ausgeführt. Da eine Programmausführung der Software in kompilierter Form viel schneller bewirkt wird, als eine zeilenweise Ausführung des Software in interpretierter Form, erlaubt eine geeignete Auswahl einer Ausführung von nur minimalen Abschnitten der Software in interpretierter Form, dass das durchzuführende Testen der Software verbessert durchgeführt werden kann.
- Testbetriebsvorgänge mit einer Computersoftware eines Computersystems werden auch durchgeführt, wenn das Computersystem an einem Einsatzort installiert wurde und seinen Betrieb aufgenommen hat. Da nur ausgewählte Abschnitte der Computersoftware in interpretierter Form ausgeführt werden, was es erlaubt, dass verbleibende Abschnitte der Computersoftware in kompilierter Form ausgeführt werden, werden minimale Zeitverzögerungen bewirkt, wenn ausgewählte Abschnitte der Software in interpretierter Form getestet werden. In manchen Fällen muss das Computersystem nicht offline gesetzt werden, um die Testbetriebsvorgänge durchzuführen. Indem erlaubt wird, dass das Computersystem online verbleibt, ist das anderweitige Erfordernis, den Betrieb des Computersystems zu unterbrechen, um das Computersystem mit einem Substitutsystem auszutauschen, vermieden.
- Ebenso kann ein Computersytememulator vorteilhaft die Lehren der vorliegenden Erfindung verwirklichen. Ein Testen der Software des Computersystememulators muss wiederum nicht gesamt in interpretierter Form durchgeführt werden. Nur die zu testenden Abschnitte der Computersoftware werden in interpretierter Form ausgeführt; andere Abschnitte der Software des Emulators werden in kompilierter Form ausgeführt. Da eine zeilenweise Ausführung der Computersystemulatorsoftware nicht erforderlich ist, werden signifikante Zeitverzögerungen vermieden, die andernfalls erforderlich wären, um die Software in interpretierter Form auszuführen.
- Das Computersystem kann beispielsweise ein Telekommunikations-Vermittlungssystem bilden. Die Lehren der vorliegenden Erfindung können während einer Entwicklung und eines Aufbaus des Vermittlungssystems angewendet werden, um die Betriebsfähigkeit des Systems zu testen, und um die Vermittlungssystemsoftware auszutesten. Und, nach einer Installation des Telekommunikations-Vermittlungssystems an einem Einsatzort und nach einer Dienstaufnahme des Vermittlungssystems, kann ein nachfolgendes Testen und Fehlerbeseitigen von später erkannten Programmfehlern durchgeführt werden. Da nur die ausgewählten Abschnitte der Software des einem Testen unterzogenen Vermittlungssystems in interpretierter Form mittels Anwendung eines Ausführungsbeispiels der vorliegenden Erfindung ausgeführt werden, können Testbetriebsvorgänge durchgeführt werden, während das System online verbleibt.
- Vorteilhaft kann der Computersystememulator beispielsweise durch einen Telekommunikations-Vermittlungssystememulator gebildet werden. Eine Softwareentwicklung der Software für ein Telekommunikationsvermittlungssystem kann mittels des Emulators unter Anwendung eines Ausführungsbeispiels der vorliegenden Erfindung entwickelt und ausgetestet werden. Nur ausgewählte Abschnitte der Software werden in interpretierter Form ausgeführt; verbleibende Abschnitte der Software werden in kompilierter Form ausgeführt. Ein Programmaustesten kann verbessert mit minimaler Verzögerung durchgeführt werden.
- Hinsichtlich dieser und anderer Gesichtspunkte testet ein Softwaretestverfahren und eine zugeordnete Schaltung die Computersoftware eines nachrichtenorientierten Computersystems mit mindestens einem Programmmodul. Die Computersoftware des Computersystems ist in kompilierter Form als kompilierter Code ausführbar und ist in interpretierter Form als interpretierter Code ausführbar. Mindestens ein ausgewählter Abschnitt der Computersoftware wird für ein Testen ausgewählt. Eine Erzeugung von ausgewählten Nachrichten während eines Betriebs des Computersystems wird erfasst und, ein Betrieb des mindestens einen ausgewählten Abschnitts der Computersoftware wird in Reaktion auf die Erzeugung von ausgewählten Nachrichten getestet.
- Ein vollständigeres Verständnis der vorliegenden Erfindung und deren Umfang kann mit den begleitenden Zeichnungen erhalten werden, die unterhalb kurz zusammengefasst sind, der folgenden detaillierten Beschreibung der gegenwärtig bevorzugten Ausführungsbeispiele der Erfindung, und der angefügten Ansprüche.
- Fig. 1 zeigt ein funktionales Blockdiagramm eines Computersystems, beispielhaft für ein Computersystem mit einer Software, die während eines Betriebs eines Ausführungsbeispiels der vorliegenden Erfindung getestet werden kann.
- Fig. 2 zeigt ein funktionales Blockdiagramm, ähnlich zu dem von Fig. 1, jedoch von einem anderen Computersystem, ebenso beispielhaft für ein Computersystem mit Software, die während eines Betriebs eines Ausführungsbeispiels der vorliegenden Erfindung getestet werden kann.
- Fig. 3 veranschaulicht ein Flussdiagramm, das das Betriebsverfahren eines Ausführungsbeispiels der vorliegenden Erfindung aufzeigt.
- Zunächst führt unter Bezugnahme auf Fig. 1 ein Computersystem, allgemein mit 10 bezeichnet, während dessen. Betriebs Softwareprogramme aus. Das Computersystem 10 steht beispielhaft für viele unterschiedliche Typen von computerbasierten Vorrichtungen einschließlich, beispielsweise, einer Telekommunikations-Vermittlung. Das Computersystem 10 steht weiter beispielhaft für einen Emulator, der einen Betrieb einer computerbasierten Vorrichtung emuliert, wie beispielsweise ein Telekommunikations-Vermittlungsemulator. Ein Softwaretestverfahren, und eine zugeordnete Schaltung zum Bewirken des Testens der Software auf verbesserte Weise, sind in dem Computersystem 10 verwirklicht.
- Solch ein verbessertes Testen von durch das Computersystem 10 ausführbarer Software kann während einer Entwicklung der Software durchgeführt werden, um die Leistungseigenschaft der Software zu testen, und um eine Fehlerbeseitigung mit der Software durchzuführen, wenn Fehler und andere Softwarefehlfunktionen observiert werden. Die Software kann weiter getestet werden, nachdem das Computersystem, in dem die Software installiert ist, als eine arbeitende Vorrichtung online geschaltet wurde.
- Im Gegensatz zu den bekannten Softwaretestverfahren erfordert das Softwaretestverfahren eines Ausführungsbeispiels der vorliegenden Erfindung nicht die Ausführungen des gesamten Softwareprogramms durch ein zeilenweises Testen in interpretierter Form. Stattdessen werden nur ausgewählte Abschnitte des Softwareprogramms in interpretierter Form ausgeführt.
- Andere Abschnitte des Softwareprogramms werden in kompilierter Form durchgeführt. Dadurch kann ein Testen der Software unter Anwendung der Lehren eines Ausführungsbeispiels der vorliegenden Erfindung viel schneller durchgeführt werden. Die Geschwindigkeit, mit der das Softwaretesten durchgeführt werden kann, ist insbesondere dann wichtig, wenn das Testen mit einer computerbasierten Vorrichtung durchzuführen ist, die bereits als eine Online- Vorrichtung installiert ist. Aufgrund der Geschwindigkeit, mit der das Testen durchgeführt werden kann, kann die Software der einem Testen unterzogenen computerbasierten Vorrichtung online durchgeführt werden, ohne zu erfordern, dass die Vorrichtung offline genommen wird und außer Dienst gesetzt wird, um die Software zu testen.
- Das Computersystem 10 umfasst eine Verarbeitungsvorrichtung 12 herkömmlicher Art, und unter anderem dazu betreibbar, in einer Speichervorrichtung, wie beispielsweise der Resident- Speichervorrichtung 14, gespeicherte Softwareprogramme abzurufen und auszuführen.
- Ein Bus 16 verbindet die Verarbeitungsvorrichtung 12 mit der Speichervorrichtung 14, wiederum auf bekannte Art und Weise. Auch wenn dies nicht veranschaulicht ist, kann der Bus 16 auf ähnliche Weise die Verarbeitungsvorrichtung 12 mit anderen Speichervorrichtungen und einer anderen Schalteinrichtung des Computersystems verbinden.
- Um das in der Speichervorrichtung 14 und auch in anderen Speichervorrichtungen gespeicherte Softwareprogramm auszuführen, müssen die Softwareprogramme zuerst in eine Form umgewandelt werden, deren Ausführung durch die Verarbeitungsvorrichtung erlaubt.
- Ein herkömmliches Compilerprogramm 18 ist in der Stammspeichervorrichtung 14 gespeichert oder auf andere Art und Weise für die Verarbeitungsvorrichtung 12 zugänglich. Das Compilerprogramm 18 dient einer Umwandlung eines Softwareprogramms, wie beispielsweise das durch das Programmmodul 22 dargestellte, in kompilierten Code, hier den kompilierten Code 24, der durch die Verarbeitungsvorrichtung 12 ausgeführt werden kann, um die durch das Softwareprogramm des Programmmoduls 22 definierte Aufgabe auszuführen.
- Das Compilerprogramm 18 ist weiter dazu betreibbar, das Softwareprogramm des Programmmoduls 22 in interpretierte Form umzuwandeln, wie beispielsweise den interpretierten Code 26. Der interpretierte Code 26 ist ebenso durch die Verarbeitungsvorrichtung 12 ausführbar, um die durch die Software des Programmmoduls 22 definierte Aufgabe auszuführen.
- Während dieses nicht getrennt gezeigt ist, umfasst das Computersystem 10 typischerweise eine Vielzahl von Programmmodulen 22, die eine Vielzahl von Softwareprogrammen darstellen, auf die zugegriffen werden kann, und die durch die Verarbeitungsvorrichtung 12 während eines Betriebs eines Computersystems ausgeführt werden können. Die Softwareprogramme solcher anderer Programmmodule können analog durch das Compilerprogramm 18 in kompilierte Form umgewandelt werden, in kompilierten Code, und in interpretierte Form, in interpretierten Code. Eine Ausführungsplattform 28, hier auch als in der Stammspeichervorrichtung 14 angeordnet gezeigt, ruft die Codes ab, in die die Softwareprogramme der Programmmodule, wie beispielsweise Programmmodul 22, umgewandelt sind, um deren Ausführung während eines Betriebs des Computersystems zu erlauben. Typischerweise werden die kompilierten Codes, wie beispielsweise der kompilierte Code 24, der Programmmodule abgerufen und als der kompilierter Code ausgeführt, und können typischer Weise am schnellsten ausgeführt werden, um den durch das Softwareprogramm, dargestellt durch das relevante Programmmodul, definierten Betrieb auszuführen.
- Da ein Speichern von kompiliertem Code manchmal signifikante Speicherkapazitätsgrößen erfordert, werden Softwareprogramme von selten verwendeten Programmmodulen manchmal nicht in kompilierte Form umgewandelt, und solche Softwareprogramme werden stattdessen in interpretierter Form ausgeführt. Die Ausführungsplattform bewirkt, während der Ausführung durch die Verarbeitungsvorrichtung 12, ein Abrufen des geeigneten Codes eines geeigneten Programmmoduls, so dass der abgerufene Code durch die Verarbeitungsvorrichtung 12 ausgeführt werden kann, wobei solch ein Abrufen in der Figur durch die Zeilen repräsentiert ist, die sich zwischen der Plattform 28 und dem Programmmodul 22 erstrecken.
- Die Linie 30, die sich zur Ausführungsplattform erstreckt, stellt Signale dar, die während der Ausführung von anderen Programmmodulen erzeugt werden. Aus diesen gewählte Signale können, wenn sie erzeugt und erfasst werden, als "Auslöser" ausgewählt werden, um Softwaretestbetriebsvorgänge zu initiieren. Das heißt, in Reaktion auf eine Erfassung der Erzeugung solcher Signale wird ein Testen begonnen, um eine Ausführung eines Programmmoduls in Reaktion auf einen Empfang solcher Signale zu beobachten.
- Ein Schnittstellenprogramm 32 ist weiter als in der Stammspeichervorrichtung 14 angeordnet gezeigt. Auf das Schnittstellenprogramm 32 kann auch durch die Verarbeitungsvorrichtung 12 zugegriffen werden. Wenn ausgeführt, bildet das Schnittstellenprogramm eine Schnittstelle mit einer Eingabe- und Ausgabevorrichtung 34 über Linien 36. Die Eingabe- und Ausgabevorrichtung 34 kann beispielsweise aus einer Eingabetastatur und einem Anzeigeendgerät bestehen. Wie vorhergehend erwähnt, erfordern bekannte Debugging-Betriebsvorgänge, dass die einem Austesten unterzogene Software gesamt in interpretierter Form als interpretierter Code ausgeführt wird. Solch eine Anforderung erfordert typischer Weise signifikante Zeiträume, um die Fehlerbeseitigungs-Betriebsvorgänge durchzuführen. Und, wenn eine Softwarefehlfunktion in einem Computersystem nicht entdeckt wird, bis das Computersystem online gesetzt wird, erfordert normalerweise die normalerweise signifikante Zeitspanne, die erforderlich ist, um das Programmmodul in interpretierter Form auszuführen, dass das Computersystem offline genommen wird, was entweder eine Unterbrechung eines Dienstes für Benutzer des Computersystems zur Folge hat, oder eine Substitution des Computersystems mit einem alternativen System, eine manchmal teure Alternative.
- Die Schaltung und das Verfahren eines Ausführungsbeispiels der vorliegenden Erfindung erlaubt, dass ein Testen von Softwareprogrammen schneller ausgeführt wird, als herkömmlicher Weise erforderlich, da die einem Testen unterzogene Software nicht vollständig zeilenweise in interpretierter Form ausgeführt werden muss.
- Stattdessen wird das einem Testen unterzogenen Softwareprogramm im in kompilierter Form ausgeführt, bis der bestimmte zu testende Abschnitt des Programms erreicht ist. Dann wird nur der Abschnitt des dem Test unterzogenen Programms in interpretierter Form ausgeführt. Indem auf geeignete Weise die Zeitpunkte erfasst werden, an dem die Ausführung des Softwareprogramms in kompilierter Form den Abschnitt des Softwareprogramms erreicht hat, der einem Testen zu unterziehen ist, kann dann damit fortgefahren werden, das Programm in interpretierter Form auszuführen. Da eine Ausführung danach zeilenweise vorgenommen wird, kann ein Verhalten der Software genau beobachtet werden.
- Beispielsweise können Traces in den interpretierten Code eingefügt werden, wenn es erwünscht ist, den Betrieb des Softwareprogramms zu testen, wenn das Programm ausgeführt wird. Die Traces können in Zeilen des interpretierten Codes eingefügt werden, die den Zeilen des interpretierten Codes voranstehen, die zu testen sind, oder auf Zeilen, oder als Neuzeilen in den interpretierten Code eingefügt werden, nachfolgend der Erfassung des Abschnitts des Softwareprogramms, mit dem ein Fehlerbeseitigen oder andere Testbetriebsvorgänge durchzuführen sind.
- Ein Betreiber des Computersystems 10 wird durch eine geeignete Anzeige an Ausgabevorrichtungsabschnitt der Eingabe- und Ausgabevorrichtung 34 mit Daten bezüglich des Ausführungszustandes des Softwareprogramms versorgt. Der Betreiber kann auch die Programmtraces mittels des Eingabeabschnitts der Vorrichtung 34 einfügen, und auch Testbetriebsvorgänge eines Softwareprogramms und von ausgewählten Abschnitten davon initiieren. Indem die ausgewählten Abschnitte des Softwareprogramms in interpretierter Form ausgeführt werden, wird eine zeilenweise Ausführung des ausgewählten Abschnitts bewirkt, und der Betreiber des Computersystems kann die Programmausführung überwachen, wodurch das Softwareprogramm getestet und falls notwendig eine Fehlerbeseitigung vorgenommen werden kann.
- Fig. 2 veranschaulicht ein Computersystem, allgemein mit 100 bezeichnet, gebildet aus einer Vielzahl von Computerstationen 104, die miteinander auf dem Wege einer Netzwerkverbindung verbunden sind, hier durch einen Bus 106 bezeichnet. Der Einfachheit halber ist der Bus 106 funktional gezeigt; es wird jedoch darauf hingewiesen, dass die Netzverbindung zwischen Computerstationen typischer Weise ein Token-Ring ist, oder eine andere serielle Art von Netzwerkverbindung.
- Aufgrund der vernetzten Verbindung zwischen den Computerstationen 104 kann ein an irgendeiner der Computerstationen 104 positionierter Betreiber eine Ausführung von Softwaretestbetriebsvorgängen von Software auf dem Wege des Netzbusses 106 von irgendeiner der Computerstationen 104 initiieren.
- Die Computerstationen 104 umfassen jeweils eine Verarbeitungsvorrichtung 112, jeweils mit einer Stammspeichervorrichtung 114 mittels eines internen Busses 116 verbunden.
- Zur Veranschaulichung umfasst die ganz links (wie gezeigt) liegende Computerstation 104 ein Compilerprogramm 118, das in der Stammspeichervorrichtung 114 angeordnet ist. Wiederum ist das Compilerprogramm, wenn ausgeführt, betreibbar, um ein Softwareprogramm, in einem Programmmodul 122 enthalten, in kompilierten Code 124 und interpretierten Code 126 umzuwandeln.
- Während dies nicht getrennt gezeigt ist, können andere der Computerstationen 104 auf ähnliche Weise Compilerprogramme umfassen, um die Softwareprogramme von Programmmodulen in kompilierte und interpretierte Codes umzuwandeln.
- Die ganz links (wie veranschaulicht) gezeigte Computerstation 104 umfasst weiter eine Ausführungsplattform 128, betreibbar durch eine Ausführung durch die Verarbeitungsvorrichtung 112, um eine Ausführung von ausgewählten Programmmodulen, wie beispielsweise dem Programmmodul 122, zu bewirken. Die Ausführungsplattform 128 ist auf eine dem Betrieb der Ausführungsplattform 28, vorhergehend mit Bezug auf Fig. 1 beschrieben, analoge Art betreibbar. Weiter, nicht gesondert gezeigt, können andere der Computerstationen 104 ähnliche solche Ausführungsplattformen umfassen, die auf ähnliche Art und Weise betrieben werden können. Eine sich zur Ausführungsplattform 128 erstreckende Linie 130 ist weiter in der Figur veranschaulicht. Die Linie stellt Signale dar, die während einer Ausführung von anderen Programmmodulen erzeugt werden, und ist analog zur Linie 30, die vorhergehend mit Bezug auf Fig. 1 gezeigt wurde.
- Die Computerstationen 104 ganz rechts (wie gezeigt), sind mit Schnittstellenprogrammen 132 gezeigt, die dann, wenn sie ausgeführt werden, eine Schnittstelle mit Eingabe- und Ausgabevorrichtungen 134 über Linien 136 bilden. Während dies weiter nicht getrennt gezeigt ist, kann die Computerstation 104 ganz links (wie gezeigt), ein Schnittstellenprogramm enthalten, das in Verbindung mit einer Eingabe- und Ausgabevorrichtung betreibbar ist.
- Jede der Computerstationen 104, miteinander durch den Netzwerkbus 106 verbunden, umfasst ein Kommunikationsprogramm 138, das in den Stammspeichervorrichtungen 114 der jeweiligen Computerstation angeordnet ist. Die Kommunikationsprogramme 138, bekannten Aufbaus, können bei einer Ausführung dazu betrieben werden, die vernetzte Kommunikation zwischen verschiedenen Computerstationen 104 zu erlauben.
- Durch solche vernetzte Verbindungen zwischen den Computerstationen 104 kann ein an einer beliebigen der Computerstationen 104 angeordneter Betreiber eine Bewirkung von Test- oder Fehlerbeseitigungs-Betriebsvorgängen initiieren, durchzuführen mit Software angeordnet an dieser, oder irgendwo anders an einer anderen der Computerstationen 104. Beispielsweise kann ein an einer der Computerstationen 104 ganz rechts (wie gezeigt) positionierter Betreiber Testbetriebsvorgänge initiieren, die mit einem Softwareprogramm durchzuführen sind, das durch das Programmmodul 122 der Computerstation ganz links (wie gezeigt) dargestellt ist. Kompilierter Code wird während der Ausführung der Ausführungsplattform 128 ausgeführt, bis der ausgewählte Abschnitt des Softwareprogramms erfasst ist. Danach wird das Softwareprogramm in interpretierter Form durch Ausführung des interpretierten Codes 126 ausgeführt. Traces können in den interpretierten Code wie gewünscht eingefügt werden, aufgrund einer Eingabe durch einen Betreiber, der an einer anderen Computerstation positioniert ist.
- Ein Testen von irgendeiner von vielen verschiedenen Typen von Computersystemen kann durch eine Anwendung eines Ausführungsbeispiels der vorliegenden Erfindung schneller bewirkt werden. In einem Ausführungsbeispiel bildet das Computersystem eine Telekommunikationsvermittlung. In einem weiteren Ausführungsbeispiel bildet das Computersystem einen Emulator, der eine Telekommunikationsvermittlung emuliert. Das Computersystem kann natürlich alternativ eine andere computerbasierende Vorrichtung oder deren Emulator bilden.
- Fig. 3 veranschaulicht ein Verfahren, allgemein bei 208, eines Ausführungsbeispiels der vorliegenden Erfindung zum Testen von Software eines Computersystems. Das Softwaretestverfahren 208 erlaubt ein Testen und Debugging- Betriebsvorgänge mit Software eines Computersystems schneller als dies unter Verwendung bekannter Softwaretestverfahren erforderlich ist. Das Softwaretestverfahren 208 kann dazu verwendet werden, eine Software eines Computersystems während einer Entwicklung des Computersystems zu testen und um eine Fehlerbeseitigung durchzuführen, und auch nachdem das Computersystem als eine Betriebsvorrichtung installiert wurde. Da die Software schneller getestet und eine Fehlerbeseitigung schneller durchgeführt werden kann als mit bekannten Testverfahren, muss das Computersystem nicht notwendiger Weise offline genommen werden, um die Testbetriebsvorgänge damit durchzuführen.
- Zuerst wird, wie durch den Block 212 veranschaulicht, ein auszuführendes Signal abgerufen. Dann wird, wie durch den Entscheidungsblock 214 veranschaulicht, eine Bestimmung vorgenommen, ob ein Tracing, d. h. Testen aktiviert ist. Ein Tracing wird beispielsweise durch einen Befehl aktiviert und wird danach auch durch einen Befehl deaktiviert, oder durch eine Ausführung eines bestimmten Traceprogramms.
- Tracebedingungen in Traceprogrammen werden auch durch einen Befehl erzeugt. Falls ein Tracing nicht aktiviert wurde, wird keine Abzweigung genommen, und eine Sub-Routine A wird ausgeführt.
- Während einer Ausführung einer Sub-Routine A wird zuerst eine Bestimmung vorgenommen, wie durch den Block 216 veranschaulicht, ob das Signal mit dem kompilierten Code ausgeführt werden sollte. Falls das Signal mit dem kompilierten Code ausgeführt werden sollte, wird der JA-Zweig genommen, und der kompilierte Code wird ausgeführt, wie durch den Block 218 veranschaulicht. Falls im Gegensatz dazu das Signal nicht mit kompiliertem Code erzeugt werden sollte, wird der NEIN-Zweig genommen, und interpretierter Code wird stattdessen ausgeführt, wie durch den Block 222 veranschaulicht. Herkömmlicher Weise wird nach einer Beendigung der Sub-Routine die Ausführung des Hauptprogramms fortgeführt. Wenn die Sub-Routine ausgeführt wird, nachdem der NEIN-Zweig vom Entscheidungsblock 214 genommen wurde, tritt eine fortgesetzte Ausführung des Programms in Block 212 auf.
- Falls am Entscheidungsblock 214 eine Bestimmung vorgenommen wurde, dass ein Tracing aktiviert ist, wird der JA-Zweig zum Entscheidungsblock 226 genommen, wo eine Bestimmung getätigt wird, ob ein IN-Signal (d. h. Eingangssignal) nachverfolgt werden sollte. Falls eine Bestimmung getätigt wird, dass das IN-Signal nachverfolgt werden sollte, wird der JA-Zweig zum Entscheidungsblock 228 genommen, wo eine Bestimmung vorgenommen wird, ob eine Tracebedingung "true" ist. Falls dem so ist, wird der JA-Zweig genommen, und das Traceprogramm in Verbindung mit der Tracebedingung wird ausgeführt, wie durch den Block 230 veranschaulicht.
- Dann wird am Entscheidungsblock 231 eine Bestimmung vorgenommen, ob das Tracen deaktiviert werden soll. Wie vorhergehend erwähnt, wird ein Tracing durch einen geeigneten Befehl zum Deaktivieren eines Tracings deaktiviert, oder als ein Ergebnis einer Ausführung des Traceprogramms, und die am Entscheidungsblock 231 vorgenommene Entscheidung bestimmt, ob solch ein Befehl eingegeben wurde, als das Tracing ausgeführt wurde. Falls das Tracing werden soll, wird der JA-Zweig zur Sub-Routine A genommen, wie oben beschrieben.
- Falls eine negative Entscheidung an irgendeinem der Entscheidungsblöcke 226, 228 oder 231 vorgenommen wird, wird der jeweilige NEIN-Zweig zum Entscheidungsblock 232 genommen, an dem entschieden wird, ob die Signalausführung nachverfolgt werden soll. Falls eine Signalausführung nachverfolgt werden soll, wird der JA-Zweig zum Block 234 genommen, und die interpretierte Anweisung wird ausgeführt. Andernfalls wird der NEIN-Zweig zur Sub-Routine A genommen, und die Sub- Routine A, oben beschrieben, wird ausgeführt.
- Sobald die interpretierte Anweisung am Block 234 ausgeführt ist, wird entschieden, ob irgendeine Tracebedingung "true" ist, wie durch den Entscheidungsblock 236 veranschaulicht. Falls dem so ist, wird der JA-Zweig genommen, und das mit der Tracebedingung verknüpfte Traceprogramm wird ausgeführt, wie durch den Block 237 veranschaulicht. Danach wird am Entscheidungsblock 238 entschieden, ob ein Tracing deaktiviert werden sollte, auf analoge Weise zu der Bestimmung, die am Block 231 vorgenommen wurde. Falls ein Tracing deaktiviert werden soll, wird der JA-Zweig zum Block 240 genommen, und die Ausführung der interpretierten Anweisung wird fortgeführt. Danach wird, wie im Block 241 veranschaulicht, zum Block 212 zurückgekehrt, um eine Ausführung des Programms fortzuführen, falls dies angebracht ist.
- Falls von entweder dem Block 236 oder 238 der NEIN-Zweig gewählt wurde, wird entschieden, wie durch den Entscheidungsblock 244 veranschaulicht, ob von den Tracing- Betriebsvorgängen ein "exit" vorgenommen werden soll.
- Falls entschieden wird, dass ein "exit" vorgenommen werden soll, wird der NEIN-Zweig zum Entscheidungsblock 232 gewählt. Falls im Gegensatz dazu am Entscheidungsblock 244 entschieden wird, einen "exit" vorzunehmen, wird der JA-Zweig zum Entscheidungsblock 248 gewählt, an dem eine Bestimmung vorgenommen wird, ob das Tracing aktiviert ist. Falls nicht, wird der NEIN-Zweig zurück zum Block 212 gewählt. Andernfalls wird der JA-Zweig zum Entscheidungsblock 252 gewählt, und eine Bestimmung wird vorgenommen, ob das OUT-Signal (d. h. ein Ausgangssignal) nachverfolgt werden soll. Falls nicht, wird der NEIN-Zweig zum Block 212 gewählt; andernfalls wird der JA-Zweig zum Block 253 gewählt, an dem entschieden wird, ob eine Tracebedingung "true" ist. Falls dem so ist, wird der JA-Zweig zum Block 256 genommen, an dem ein Traceprogramm ausgeführt wird.
- Ein Testen der Software eines Computersystems ist dadurch auch dann möglich, nachdem das Computersystem an einem Einsatzort installiert wurde und in Dienst genommen wurde. Da nur ausgewählte Abschnitte der Computersoftware in interpretierter Form ausgeführt werden, werden verbleibende Abschnitte der Computersoftware in kompilierter Form ausgeführt, und nur minimale Zeitverzögerungen werden bewirkt, wenn ausgewählte Abschnitte der Software in interpretierter Form getestet werden. Online-Testen der Computersoftware ist dadurch möglich. Ein Computersystemsimulator kann auch vorteilhaft die Lehren der vorliegenden Erfindung verwirklichen, um das schnelle Testen von Computersoftware zu ermöglichen.
- Nur Abschnitte der einem Test unterzogenen Software werden in interpretierter Form ausgeführt, andere Abschnitte der Software werden in kompilierter Form ausgeführt. Signifikante andernfalls zum Testen der Software benötigte Zeitspannen von Verarbeitungszeit werden vermieden.
- Die vorhergehende Beschreibung betrifft bevorzugte Beispiele zur Implementierung der Erfindung, und der Umfang der Erfindung soll nicht notwendiger Weise durch diese Beschreibung beschränkt sein. Der Umfang der Erfindung ist durch die folgenden Ansprüche definiert.
- Ein Verfahren (208) und zugehörige Schaltung, zum Testen eines Betriebs von Computersoftware eines Computersystems (10), wie beispielsweise ein Telefonvermittlungssystem. Ausgewählte Abschnitte der Computersoftware (22) werden in interpretierter Form (26) getestet. Verbleibende Abschnitte werden in kompilierter Form (24) ausgeführt. Da eine zeilenweise Ausführung der gesamten Computersoftware (22) nicht erforderlich ist, können signifikante Zeitverzögerungen, die andernfalls für eine Ausführung der Software (22) in interpretierter Form (26) erforderlich wären, vermieden werden.
Claims (19)
1. Ein Softwaretestverfahren für ein
nachrichtenorientiertes Computersystem mit mindestens einem
Programmmodul, wobei das Computersystem Computersoftware
aufweist, die in kompilierter Form als kompilierter Code
ausführbar ist, und die in interpretierter Form als
interpretierter Code ausführbar ist, wobei das Verfahren
die Schritte umfasst:
Auswählen, ob ein bestimmter Abschnitt der
Computersoftware zu testen ist;
Ausführen des bestimmten Abschnitts der Computersoftware
in der interpretierten Form als interpretierter Code,
falls der ausgewählte Abschnitt der Computersoftware
während des Schritts zur Auswahl für den Test ausgewählt
ist; und andernfalls
Ausführen des ausgewählten Abschnitts der
Computersoftware in der kompilierten Form; und
Ausführen von anderen Abschnitten der Computersoftware
in kompilierter Form.
2. Das Verfahren nach Anspruch 1, wobei das Computersystem
eine Eingabevorrichtung zum Eingeben von Befehlen
umfasst, um ausgewählte Abschnitte der Computersoftware
zu testen, und wobei der Schritt zum Auswählen ein
Eingeben der Befehle auf dem Wege der Eingabevorrichtung
umfasst.
3. Das Verfahren nach Anspruch 1, wobei der interpretierte
Code aus einer Vielzahl von Anweisungsschritten besteht,
und wobei der Schritt zum Ausführen der ausgewählten
Abschnitte in der interpretierten Form weiter die
Schritte umfasst:
Bestimmen, ob ein Wert einer Tracebedingung, gebildet
während einer Ausführung von mindestens ausgewählten der
Anweisungsschritte des interpretierten Codes, eine
ausgewählte Größe ist; und
Ausführen eines Traceprogramms in Zusammenhang mit der
Tracebedingung, wenn der Wert der Tracebedingung die
ausgewählte Größe aufweist.
4. Das Verfahren nach Anspruch 1, weiter mit den Schritten
zum Eingeben eines Eingabesignals in das Computersystem
und Ausführen eines Traceprogramms in Zusammenhang mit
dem Eingabesignal.
5. Das Verfahren nach Anspruch 4, wobei das während des
Schritts zum Eingeben eingegebene Eingabesignal vor dem
Auswahlschritt auftritt.
6. Das Verfahren nach Anspruch 1, wobei das Computersystem
eine Benutzerschnittstellevorrichtung und ein in
Reaktion darauf betreibbares Schnittstellenprogramm
aufweist, und wobei das während des Schritts zum
Eingeben eingegebene Eingabesignal durch die
Schnittstellenvorrichtung eingegeben wird.
7. Das Verfahren nach Anspruch 6, wobei das Computersystem
eine erste Computervorrichtung und eine zweite
Computervorrichtung umfasst, wobei die erste
Computervorrichtung und die zweite Computervorrichtung
miteinander über eine Netzwerkverbindung verbunden sind,
wobei das während des Schritts zum Eingeben eingegebene
Eingabesignal durch die zweite Computervorrichtung
eingegeben wird, und wobei der ausgewählte Abschnitt der
Computersoftware, der während des Schritts zum Ausführen
ausgeführt wird, an der ersten Computervorrichtung
ausgeführt wird.
8. Das Verfahren nach Anspruch 1, weiter mit den Schritten:
Erzeugen eines Ausgangssignals in Reaktion auf eine
Ausführung des ausgewählten Abschnitts der
Computersoftware während irgendeinem der
Ausführungsschritte; und
Ausführen eines Traceprogramms in Zusammenhang mit dem
Ausgabesignal.
9. Das Verfahren nach Anspruch 1, wobei das Computersystem
ein Compilerprogramm umfasst, und wobei das Verfahren
die einführenden Schritte umfasst zum Erzeugen des
kompilierten Codes, und Erzeugen des interpretierten
Codes, durch Ausführen des Compilerprogramms.
10. Das Verfahren nach Anspruch 1, wobei das Computersystem
ein Telekommunikations-Vermittlungssystem umfasst, wobei
die Computersoftware ein Programmmodul umfasst, das
einen Abschnitt des Telekommunikations-
Vermittlungssystems bildet, und wobei der ausgewählte
Abschnitt des Computerprogramms, der während des
Schritts zum Ausführen ausgeführt wird, ausgewählte
Segmente des Programmmoduls umfasst.
11. Das Verfahren nach Anspruch 5, wobei das Computersystem
ein Kernelement und einen Prozessor umfasst, wobei das
Kernelement durch den Prozessor ausführbar ist, und
wobei das während des Schritts zum Eingeben eingegebene
Eingabesignal während einer Ausführung des Kernelements
auf das Kernelement angewendet wird.
12. Das Verfahren nach Anspruch 1, wobei das Computersystem
einen Telekommunikations-Vermittlungssystemsemulator
umfasst, wobei die Computersoftware ein Programmmodul
umfasst, das einen Abschnitt des Telekommunikations-
Vermittlungssystemsemulator bildet, und wobei die
Ausführungsschritte ein Ausführen ausgewählter Segmente
des Programmmoduls umfassen.
13. Das Verfahren nach Anspruch 1, weiter mit dem Schritt
zum Bestimmen, ob der kompilierte Code für eine
Ausführung verfügbar ist, und wobei der Schritt zur
Ausführung des ausgewählten Abschnitts der
Computersoftware in der kompilierten Form nur dann
durchgeführt wird, wenn während des Bestimmungsschritts
bestimmt wird, dass der kompilierte Code verfügbar ist.
14. Das Verfahren nach Anspruch 13, weiter mit dem
zusätzlichen Schritt, nachfolgend dem Schritt zum
Bestimmen, ob der kompilierte Code verfügbar ist, zum
Auswählen, ob die Computersoftware in der kompilierten
Form auszuführen ist.
15. Eine Testschaltung für Testbetriebsvorgänge eines
Computersystems mit einem Prozessor zum Ausführen von
Computersoftware, wobei die Computersoftware in
interpretierter Form als interpretierter Code ausführbar
ist, und in kompilierter Form als kompilierter Code
ausführbar ist, wobei die Testschaltung umfasst:
einen Auswähler zum Auswählen, ob ein bestimmter
Abschnitt der Computersoftware zu testen ist;
eine erste Programmausführungseinrichtung, auf den
Auswähler ansprechend, wobei die erste
Programmausführungseinrichtung angeordnet ist zum
Ausführen des bestimmten Abschnitts der Computersoftware
in der interpretierten Form als interpretierten Code,
falls der bestimmte Abschnitt der Computersoftware durch
den Selektor als zu testen ausgewählt ist; und
eine zweite Programmausführungseinrichtung, auf den
Auswähler ansprechend, wobei die zweite
Programmausführungseinrichtung angeordnet ist zum
Ausführen des bestimmten Abschnitts der Computersoftware
in der kompilierten Form, falls der bestimmte Abschnitt
der Computersoftware nicht durch den Auswähler als
ausgewählt ausgewählt ist, und zum Ausführen anderer
Abschnitte der Software in kompilierter Form.
16. Die Testschaltung nach Anspruch 15, wobei der Auswähler
eine Nutzerschnittstellenvorrichtung umfasst, und ein
darauf ansprechendes Schnittstellenprogramm.
17. Die Testschaltung nach Anspruch 16, wobei die
Nutzerschnittstellenvorrichtung weiter eine Anzeige von
Ausgangssignalen erlaubt, erzeugt während einer
Ausführung des ausgewählten Abschnitts der
Computersoftware.
18. Die Testschaltung nach Anspruch 17, wobei das
Computersystem eine erste Computervorrichtung und eine
zweite Computervorrichtung umfasst, wobei die erste
Computervorrichtung und die zweite Computervorrichtung
miteinander über eine Netzwerkverbindung verbunden sind,
und wobei die erste Programmausführungseinrichtung und
die zweite Programmausführungseinrichtung an der ersten
Computervorrichtung angeordnet sind.
19. Die Testschaltung nach Anspruch 18, wobei die
Nutzerschnittstellenvorrichtung an der zweiten
Computervorrichtung angeordnet ist.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US08/700,177 US5896535A (en) | 1996-08-20 | 1996-08-20 | Method and system for testing computer system software |
| PCT/SE1997/001353 WO1998008165A1 (en) | 1996-08-20 | 1997-08-15 | Method and system for testing computer system software |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| DE69717824D1 DE69717824D1 (de) | 2003-01-23 |
| DE69717824T2 true DE69717824T2 (de) | 2003-09-11 |
Family
ID=24812480
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE69717824T Expired - Lifetime DE69717824T2 (de) | 1996-08-20 | 1997-08-15 | Verfahren und vorrichtung zum software-test |
Country Status (7)
| Country | Link |
|---|---|
| US (1) | US5896535A (de) |
| EP (1) | EP0920663B1 (de) |
| JP (1) | JP2000517077A (de) |
| CN (1) | CN1105354C (de) |
| AU (1) | AU3873397A (de) |
| DE (1) | DE69717824T2 (de) |
| WO (1) | WO1998008165A1 (de) |
Families Citing this family (22)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6167534A (en) * | 1995-11-24 | 2000-12-26 | Rational Software Corporation | Load test system and method |
| US6202199B1 (en) * | 1997-07-31 | 2001-03-13 | Mutek Solutions, Ltd. | System and method for remotely analyzing the execution of computer programs |
| US6311325B1 (en) * | 1998-10-22 | 2001-10-30 | International Business Machines Corporation | Method and apparatus for profiling processes in a data processing system background of the invention |
| US6484309B2 (en) * | 1998-10-08 | 2002-11-19 | Intel Corporation | Enabling software designed for one operating system to operate on another operating system |
| US20020087949A1 (en) * | 2000-03-03 | 2002-07-04 | Valery Golender | System and method for software diagnostics using a combination of visual and dynamic tracing |
| US7657872B2 (en) * | 2000-10-23 | 2010-02-02 | Nintendo Of America Inc. | Product testing and bug tracking system |
| US8312435B2 (en) | 2000-12-26 | 2012-11-13 | Identify Software Ltd. (IL) | System and method for conditional tracing of computer programs |
| US6941546B2 (en) * | 2001-08-01 | 2005-09-06 | International Business Machines Corporation | Method and apparatus for testing a software component using an abstraction matrix |
| US6986125B2 (en) * | 2001-08-01 | 2006-01-10 | International Business Machines Corporation | Method and apparatus for testing and evaluating a software component using an abstraction matrix |
| US7386839B1 (en) | 2002-11-06 | 2008-06-10 | Valery Golender | System and method for troubleshooting software configuration problems using application tracing |
| US8032866B1 (en) | 2003-03-27 | 2011-10-04 | Identify Software Ltd. | System and method for troubleshooting runtime software problems using application learning |
| CN100396018C (zh) * | 2003-04-23 | 2008-06-18 | 华为技术有限公司 | 一种消息解释或构造的装置及方法 |
| US7827539B1 (en) | 2004-06-25 | 2010-11-02 | Identify Software Ltd. | System and method for automated tuning of program execution tracing |
| CN100435114C (zh) * | 2006-01-18 | 2008-11-19 | 北京大学 | 基于截取器的软件在线校验方法 |
| US8719789B2 (en) * | 2011-03-07 | 2014-05-06 | International Business Machines Corporation | Measuring coupling between coverage tasks and use thereof |
| US8719799B2 (en) * | 2011-03-07 | 2014-05-06 | International Business Machines Corporation | Measuring coupling between coverage tasks and use thereof |
| US9098308B2 (en) * | 2012-06-26 | 2015-08-04 | Marvell World Trade Ltd. | Method and apparatus for code performance analysis based on execution trace information |
| CN102999423B (zh) * | 2012-11-15 | 2016-03-02 | 华为技术有限公司 | 一种多核测试的方法和装置 |
| EP2746952B1 (de) * | 2012-12-18 | 2017-02-08 | Neopost Technologies | Sichere Verwaltung von Spuren in einer Postverarbeitungsvorrichtung |
| US20150033209A1 (en) * | 2013-07-26 | 2015-01-29 | Netapp, Inc. | Dynamic Cluster Wide Subsystem Engagement Using a Tracing Schema |
| CN103984336B (zh) * | 2014-04-14 | 2017-03-15 | 美的集团股份有限公司 | 电控开发系统及其控制方法 |
| CN105607995A (zh) * | 2015-11-11 | 2016-05-25 | 北汽福田汽车股份有限公司 | 一种软件测试系统、方法及装置 |
Family Cites Families (22)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5886648A (ja) * | 1981-11-18 | 1983-05-24 | Mitsubishi Electric Corp | トレ−ス装置 |
| US4802165A (en) * | 1986-10-08 | 1989-01-31 | Enteleki, Inc. | Method and apparatus of debugging computer programs |
| US5127103A (en) * | 1987-10-14 | 1992-06-30 | North American Philips Corporation | Real-time tracing of dynamic local data in high level languages in the presence of process context switches |
| JP2666847B2 (ja) * | 1988-06-06 | 1997-10-22 | 日本電気株式会社 | 異種言語間連絡方式 |
| US5121489A (en) * | 1988-08-02 | 1992-06-09 | International Business Machines Corporation | Tracing method for identifying program execution paths using a trace points bit map with one-to-one correspondence with embedded trace points |
| EP0396833A1 (de) * | 1989-05-12 | 1990-11-14 | International Business Machines Corporation | Anordnung zur Ablaufverfolgung in einer Mehrprozessbetriebsumgebung |
| US5394544A (en) * | 1989-08-07 | 1995-02-28 | Ricoh Co., Ltd. | Software system debugger with distinct interrupt vector maps for debugging and application programs |
| US5255385A (en) * | 1990-02-26 | 1993-10-19 | Hitachi, Ltd. | Method of testing program, and compiler and program testing tool for the method |
| US5228039A (en) * | 1990-05-09 | 1993-07-13 | Applied Microsystems Corporation | Source-level in-circuit software code debugging instrument |
| JPH04148242A (ja) * | 1990-10-08 | 1992-05-21 | Fujitsu Ltd | ロード・モジュール実行時トレース処理方法 |
| US5243603A (en) * | 1991-03-26 | 1993-09-07 | Hewlett-Packard Company | Method for online modification of compressed digital test vectors |
| US5297285A (en) * | 1991-07-23 | 1994-03-22 | Telefonaktiebolaget L M Ericsson | System for dynamically linking modular portions of computer software |
| US5265254A (en) * | 1991-08-14 | 1993-11-23 | Hewlett-Packard Company | System of debugging software through use of code markers inserted into spaces in the source code during and after compilation |
| US5371747A (en) * | 1992-06-05 | 1994-12-06 | Convex Computer Corporation | Debugger program which includes correlation of computer program source code with optimized object code |
| US5404496A (en) * | 1992-07-01 | 1995-04-04 | Hewlett-Packard Company | Computer-based system and method for debugging a computer system implementation |
| US5410703A (en) * | 1992-07-01 | 1995-04-25 | Telefonaktiebolaget L M Ericsson | System for changing software during computer operation |
| CA2101716A1 (en) * | 1992-10-29 | 1994-04-30 | Philip S. Kasten | Debugging/modifying of software systems |
| US5367685A (en) * | 1992-12-22 | 1994-11-22 | Firstperson, Inc. | Method and apparatus for resolving data references in generated code |
| US5469574A (en) * | 1993-06-18 | 1995-11-21 | International Business Machines Corporation | Method and system for interfacing interpreted applications with compiled procedures using signature files |
| US5471526A (en) * | 1994-02-28 | 1995-11-28 | Telefonaktiebolaget L M Ericsson (Publ.) | Tracing with keys and locks on a telecommunication network |
| US5630049A (en) * | 1994-11-30 | 1997-05-13 | Digital Equipment Corporation | Method and apparatus for testing software on a computer network |
| US5668999A (en) * | 1994-12-20 | 1997-09-16 | Sun Microsystems, Inc. | System and method for pre-verification of stack usage in bytecode program loops |
-
1996
- 1996-08-20 US US08/700,177 patent/US5896535A/en not_active Expired - Lifetime
-
1997
- 1997-08-15 WO PCT/SE1997/001353 patent/WO1998008165A1/en not_active Ceased
- 1997-08-15 AU AU38733/97A patent/AU3873397A/en not_active Abandoned
- 1997-08-15 EP EP97935948A patent/EP0920663B1/de not_active Expired - Lifetime
- 1997-08-15 JP JP10510653A patent/JP2000517077A/ja not_active Ceased
- 1997-08-15 CN CN97197360A patent/CN1105354C/zh not_active Expired - Fee Related
- 1997-08-15 DE DE69717824T patent/DE69717824T2/de not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| EP0920663A1 (de) | 1999-06-09 |
| DE69717824D1 (de) | 2003-01-23 |
| JP2000517077A (ja) | 2000-12-19 |
| WO1998008165A1 (en) | 1998-02-26 |
| CN1105354C (zh) | 2003-04-09 |
| US5896535A (en) | 1999-04-20 |
| CN1228175A (zh) | 1999-09-08 |
| AU3873397A (en) | 1998-03-06 |
| EP0920663B1 (de) | 2002-12-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE69717824T2 (de) | Verfahren und vorrichtung zum software-test | |
| DE69720821T2 (de) | Fehlersuchsystem für Programme mit einer graphischen Benutzerschnittstelle | |
| DE19747396C2 (de) | Verfahren und Anordnung zur Schaffung einer Ferndiagnose für ein elektronisches System über ein Netz | |
| DE3787431T2 (de) | Verfahren zur Generierung einer Kandidatenliste von fehlerhaften Schaltungselementen und Verfahren zur Isolierung von Fehlern in einer logischen Schaltung unter Verwendung dieser Kandidatenliste. | |
| DE69033360T2 (de) | Simulation von ausgewählten Logik-Schaltungsentwürfen | |
| DE3903835C2 (de) | ||
| DE3901579C2 (de) | ||
| DE69919404T2 (de) | On-line fehlerbeseitigungs- und ablaufverfolgungssytem und verfahren | |
| DE69216020T2 (de) | Verbessertes fehlersuchsystem und -verfahren, besonders für die fehlersuche in einer multi-architekturumgebung | |
| DE69919632T2 (de) | Fehlertoleranz durch N-modulare Softwareredundanz unter Verwendung von indirekter Instrumentierung | |
| DE69831732T2 (de) | Verfahren und gerät zum korrigieren von fehlern in einem rechnersystem | |
| DE4313594C2 (de) | Mikroprozessor | |
| DE3751949T2 (de) | Verfahren zum Starten eines Untersystems in einem verteilten Verarbeitungssystem | |
| DE2328058A1 (de) | Digitale datenverarbeitungsanordnung | |
| DE3702408C2 (de) | ||
| EP1265146A2 (de) | Fehlersuchverfahren und Fehlersuchvorrichtung | |
| DE69023695T2 (de) | Initialisierungs-system und -methoden für Eingang/Ausgang-Verarbeitungseinheiten. | |
| WO2004049159A2 (de) | Einrichtung und verfahren zur analyse von eingebetteten systemen | |
| DE60002455T2 (de) | Verfahren und vorrichtung zur automatischen softwareprüfung | |
| DE10038499A1 (de) | Verfahren und System für die verbesserte Entwicklungsprüfung mittels angepasster Ablaufverfolgung | |
| EP0048991A1 (de) | Verfahren und Anordnung zur Behandlung von Unterbrechungsbedingungen während des Arbeitsablaufes in Datenverarbeitungsanlagen mit Mikroprogrammsteuerung | |
| DE3037475A1 (de) | Schnittstellenschaltungsanordnung fuer eine datenverarbeitungsanlage | |
| DE10217609A1 (de) | Ein-Chip-Mikrocomputer mit dynamischer Einbrenn-Testfunktion und dynamisches Einbrenn-Testverfahren dafür | |
| DE10213009A1 (de) | Verfahren zum elektronischen Testen von Speichermodulen | |
| WO2000043885A1 (de) | Verfahren zum tracen von daten |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 8364 | No opposition during term of opposition |