DE69522114T2 - Verfahren und system zur automatischen erzeugung von effizienten testfällen zum testen von softwaresystemen - Google Patents
Verfahren und system zur automatischen erzeugung von effizienten testfällen zum testen von softwaresystemenInfo
- Publication number
- DE69522114T2 DE69522114T2 DE69522114T DE69522114T DE69522114T2 DE 69522114 T2 DE69522114 T2 DE 69522114T2 DE 69522114 T DE69522114 T DE 69522114T DE 69522114 T DE69522114 T DE 69522114T DE 69522114 T2 DE69522114 T2 DE 69522114T2
- Authority
- DE
- Germany
- Prior art keywords
- fields
- test cases
- test
- values
- relationships
- 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
- 238000012360 testing method Methods 0.000 title claims abstract description 223
- 238000000034 method Methods 0.000 title claims abstract description 116
- 230000003993 interaction Effects 0.000 claims description 27
- 238000004422 calculation algorithm Methods 0.000 claims description 26
- 238000011156 evaluation Methods 0.000 claims description 6
- 238000013515 script Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 description 39
- 239000011159 matrix material Substances 0.000 description 9
- 230000004044 response Effects 0.000 description 8
- 238000010276 construction Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 3
- 238000000429 assembly Methods 0.000 description 3
- 230000000712 assembly Effects 0.000 description 3
- 101100457838 Caenorhabditis elegans mod-1 gene Proteins 0.000 description 2
- 101150110972 ME1 gene Proteins 0.000 description 2
- 238000013401 experimental design Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 238000013522 software testing Methods 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000002790 cross-validation Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000013100 final test Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
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)
- Stored Programmes (AREA)
Description
- Diese Erfindung bezieht sich auf das Testen von Computer- Software. Genauer bezieht sich die vorliegende Erfindung auf Systeme und Prozesse zur effizienten Erzeugung und Aufzählung einer Minimalzahl von Testfällen, die für einen stabilen Test eines Software-Systems erforderlich sind.
- Transaktionscomputersysteme werden immer größer und komplexer. Telephongesellschaften setzen die Transaktionsverarbeitung ein, um die Effizienz in ihren Betriebsunterstützungssystemen zu verbessern. Anwender stehen mit diesen Transaktionsverarbeitungssystemen typischerweise dadurch in Wechselwirkung, daß sie Daten in Felder auf einem CRT-Bildschirm eingeben und daraufhin eine Antwort in anderen Feldern auf dem Bildschirm erwarten. Wenn neue Software entwickelt wird, müssen diese Software-Systeme, bevor sie an die Endanwender geliefert werden, getestet werden.
- Software-Tester testen dadurch, daß sie Testfälle entwickeln, die Kombinationen von Bildschirmeingaben spezifizieren, die in das System eingegeben werden, um zu sehen, ob die Antwort des Systems im Ergebnis der Eingaben richtig ist. Ein Verfahren zum Testen ist das Erzeugen von Testfällen für sämtliche Kombinationen sämtlicher Eingabewerte auf dem Bildschirm. Wegen der großen Anzahl von Bildschirmen mit mehreren Feldern jeweils mit mehreren Werten ist die Anzahl der Testfälle, die erzeugt werden können, bei den meisten Systemen außergewöhnlich hoch. Dementsprechend sind die Kosten zum Durchführen solcher Tests außerordentlich hoch. Somit wird die Anzahl der Testfälle im Stand der Technik dadurch verringert, daß für jedes Feld Beispielwerte; wie etwa für ein Zahlenfeld der Minimalwert, ein Maximalwert und ein gewisser Zwischenwert, genommen werden. Selbst dann können die Kosten zur Durchführung einer Bildschirmtestung im Stand der Technik die Kosten der Software-Entwicklung um bis zu 30% erhöhen. Diese Probleme sind nicht einzigartig für Bildschirm-basierte Softwaresysteme. Auf dem Gebiet der Protokollübereinstimmungstestung werden Protokolle und Merkmale typischerweise als endliche Zustandsmaschinen modelliert. Die Anzahl der Testfälle zum Testen einer endlichen Zustandsmaschine mit n Zuständen ist aber ein Polynom in n. Da Protokolle typischerweise Tausende von Zuständen haben und Millionen haben können, erzeugt das herkömmliche Testen anhand einer endlichen Zustandsmaschine eine übermäßige Anzahl von Tests. Das folgende Beispiel hebt einige der Probleme hervor.
- Es wird ein System mit einem Bildschirm und n Feldern auf diesem Bildschirm angenommen. Außerdem wird angenommen, daß zum Testen nach einer Analyse der zum Erzeugen der Software verwendeten Systemanforderungen nur eine begrenzte Anzahl von Eingaben (i) betrachtet wird. Die Anzahl der möglichen Testfälle, die jeweils die Werte für sämtliche Felder auf dem Bildschirm enthalten, ist dann in. Selbst für einen einzelnen Bildschirm kann dies recht groß sein. Wenn beispielsweise angenommen wird, daß für jedes Feld nur drei Werte (i = 3) zu betrachten sind, während es auf dem Bildschirm 13 Felder (n = 13) gibt, beträgt die Anzahl der Fälle für einen erschöpfenden Test 3¹³ = 1.594.323. Offensichtlich ist diese Zahl sehr groß, so daß eine erschöpfende Testung weit jenseits der irgendwo verfügbaren Ressourcen liegt. Somit finden typische Tester verschiedene Möglichkeiten zum Einschränken der Anzahl der Kombinationen, z. B. durch instinktives Gefühl oder lediglich durch einzelnes Ausprobieren sämtlicher Werte eines Feldes, während sämtliche anderen Felder auf Standardwerten gehalten werden. Leider berücksichtigt dieses Verfahren der Standardtestung keine Wechselwirkungen oder Abhängigkeiten zwischen verschiedenen Feldern.
- Einige Forscher auf dem Gebiet haben die Anwendung experimenteller Konstruktionstechniken, die zur Planung von Experimenten auf dem Gebiet der Softwaretestung verwendet werden, untersucht (Literatur: Phadke, M.S., "Quality Engineering Using Robust Design", Prentice Hall, Englewood Cliffs, NJ., 1989, S. 149-182 und US-A-5159600). Genauer wird die Verwendung orthogonaler Matrixkonstruktionen zum Testen von Software vorgeschlagen. Orthogonale Matrixkonstruktionen sind Testmengen, bei denen für jedes Paar von Feldern sämtliche Kombinationen von Eingangspegeln genau mit der gleichen Häufigkeit auftreten. Als Beispiel wird die Situation betrachtet, daß ein Bildschirm drei Felder (n = 3) mit zwei möglichen Eingaben pro Feld (i = 2) besitzt. Ein erschöpfender Test sämtlicher möglicher Kombinationen führt zu den 8 in der untenstehenden Tabelle 1 gezeigten Testmengen. Tabelle 1: Matrix für erschöpfende Tests
- Unter Verwendung experimenteller Konstruktionstechniken führt eine entsprechende orthogonale Matrix der gleichen Felder und Werte zu den 4 unten in Tabelle 2 gezeigten Testfällen. Tabelle 2: Orthogonale Testmatrix
- Tabelle 2 zeigt jedes Paar von Eingangsgrößen genau einmal und enthält lediglich vier Testfälle. Gegenüber der in Tabelle 1 gezeigten vollständig aufgezählten Menge von Testfällen ist dies eine 50%-ige Verringerung der Testfälle.
- Obgleich orthogonale Matrizen Testmengen liefern, die jedes Paar von Eingangsgrößen mit viel weniger Testfällen überlappen als die erschöpfende Testmenge, besitzt diese Lösung des Standes der Technik eine Anzahl von Problemen. Zunächst besitzt nicht jede Kombination von Feldern und Eingangsgrößen eine entsprechende orthogonale Matrix. Wenn es beispielsweise 7 Felder gibt und jedes Feld 6 mögliche Eingangsgrößen besitzt, existiert keine orthogonale Matrix. Ein weiteres Problem bei der orthogonalen Matrix besteht darin, daß sie schwer zu konstruieren ist; es gibt keine einzige vereinheitlichte Art der Erzeugung einer orthogonalen Matrix. Diese Schwierigkeit wird verschlimmert, wenn es für jedes der Felder eine ungerade Anzahl von Werten gibt. Außerdem sind orthogonale Matrizen dadurch aufwendig, daß sie erfordern, daß jedes Paar von Eingangsgrößen genau mit der gleichen Häufigkeit auftritt. Diese Gleichgewichtseigenschaft ist häufig in statistischen Experimenten erforderlich, in denen gleiche Genauigkeit gefordert wird. Bei der Software-Testung ist es dagegen nicht erforderlich, eine gleiche Anzahl von Replikaten zu fordern.
- Somit besteht eine Aufgabe unserer Erfindung in einem automatischen Verfahren und in einem System, die die Beschränkungen des Standes der Technik überwinden und Wechselwirkungen zwischen den Feldern enthalten, während sie die für stabile Tests von Software-Systemen erforderliche Anzahl der Testfällen verringern.
- Unsere Erfindung ist ein Verfahren und ein System zum Aufzählen einer minimalen Anzahl von Testfällen für Systeme mit wechselwirkenden Elementen, wie es in den unabhängigen Ansprüche 1 bzw. 10 angegeben ist. Wie hier beschrieben wird, wirkt unsere Erfindung für Bildschirmbasierte Software-Systeme auf ein Konstrukt von Feldern, auf die Anzahl der Feldwerte und auf die Beziehungen zwischen den Feldern. In unserem in einem Computersystem ausgeführten Verfahren gibt der Anwender für jedes der Felder Werte ein, definiert Beziehungen zwischen den Feldern und definiert daraufhin den Wechselwirkungsgrad zwischen den Feldern. Daraufhin zählt unser Verfahren soweit anwendbar unter Verwendung deterministischer Prozeduren und wenn die deterministischen Prozeduren nicht anwendbar sind unter Verwendung von Zufallsprozeduren für jede Beziehung zwischen den Feldern eine Tabelle von Testfällen auf. Nachdem für jede Beziehung eine Tabelle von Testfällen erzeugt worden ist, kombiniert unser erfindungsgemäßes Verfahren die Testfälle für verschiedene Beziehungen zu einer einzelnen Tabelle von Testfällen. In anderen Anwendungen, in denen ein System Komponentenelemente mit anderen Eigenschaften enthält, behandelt unsere Erfindung die Komponentenelemente ähnlich wie Felder und die Komponenteneigenschaften ähnlich wie Feldwerte.
- Fig. 1 zeigt unser erfindungsgemäßes System.
- Fig. 2 zeigt einen Beispieleingabebildschirm einer Ausführungsform unseres Beispielsystems.
- Fig. 3 zeigt ein Beispiel einer Beziehung und eine Tabelle von Testfällen, die unter Verwendung unseres Projektionsebenen-Algorithmus erzeugt wurden.
- Fig. 4 zeigt eine Tabelle, die unter Verwendung unserer Produktregel-Prozeduren erzeugt wurde.
- Fig. 5 zeigt zwei Tabellen, die gemäß unseren reduzierten Produktregel-Prozeduren erzeugt wurden.
- Fig. 6 zeigt Tabellen von Testfällen für drei Typen von Wechselwirkungen.
- Fig. 7 zeigt eine vereinigte Tabelle von Testfällen, die unter Verwendung unseres Testfall-Mischprozesses erzeugt wurde.
- Fig. 8 zeigt eine erläuternde Beispielanwendung eines Testfalls, der unter Verwendung unseres erfindungsgemäßen Prozesses erzeugt worden ist.
- Unsere Erfindung ist ein Verfahren und ein System zum Aufzählen einer Minimalzahl von Testfällen, das die Wechselwirkungen zwischen Feldern enthält und die Beschränkungen des Standes der Technik überwindet.
- In Fig. 1 ist eine erläuternde Ausführungsform unserer Erfindung gezeigt, die eine Bildschirm-Anzeigevorrichtung 10 enthält, auf der der in Fig. 2 gezeigte Bildschirm angezeigt wird. Die Anwender geben auf dem Bildschirm 28 (oder auf mehreren Bildschirmen) Werte für die Felder ein und definieren die (im folgenden Beziehung genannten) Verhältnisse zwischen diesen Feldern, die Validierungsregeln für Gruppen der Felder herstellen. Außerdem gibt der Anwender für jede Beziehung Zwangsbedingungen und einen Parameter ein, der den Grad der Feldwechselwirkung 29 spezifiziert. Außerdem können die Anwender die richtige Antwort des Systems auf die aus einer Beziehung erzeugten Eingabekombinationen spezifizieren. Beispielsweise kann die richtige System-Antwort auf eine Eingabe einfach eine Nachricht sein, daß die Eingaben zulässig sind, oder kann die richtige Antwort eine Aktion wie etwa das Herstellen einer Telephonverbindung sein. Der Anzeige-Controller- Prozeß 12 speichert diese Feldbeziehungen und Validierungsregeln in der Beziehungsdatenbank 18. Im Prozeß 14 werden für jede Beziehung Tabellen der Testfälle erzeugt und daraufhin auch in der Datenbank 18 gespeichert. Nachdem sämtliche Daten eingegeben worden sind, die Feldbeziehungen definiert worden sind und einzelne Tabellen von Testfällen erzeugt worden sind, fordert der Anwender die Erzeugung einer vereinigten Tabelle der Testfälle an. Anschließend erzeugt der Testskript-Mischerprozeß 20 eine einzige Tabelle von Testfällen, die die durch den Prozeß 16 erzeugten Tabellen der Testfälle kombiniert. Die sich daraus ergebende Tabelle von Testfällen wird in der Datenbank 22 gespeichert. Um die Tabelle der Testfälle in eine durch den (im Gebiet bekannten) Testskript-Erzeugungsprozeß 26 zum Erzeugen ausführbarer Testskripte für ein Software-System lesbare Form zu übersetzen, kann die Tabelle der Testfälle daraufhin als Eingabe in einen Filterprozeß 24 verwendet werden (von dem im Gebiet viele bekannt sind).
- Das obenbeschriebene System realisiert unser erfindungsgemäßes Verfahren zum Aufzählen einer Minimalzahl von Testfällen. Unsere erfindungsgemäßen Verfahren umfassen zwei allgemeine Mengen von Prozeduren; eine zum Erzeugen einer Tabelle von Testfällen für jede einzelne Beziehung, wie sie im Prozeß 14 ausgeführt ist, und eine weitere zum Kombinieren der einzelnen Tabellen zu einer einzigen Tabelle, wie sie im Prozeß 20 ausgeführt ist. Die in jeder Menge von Prozeduren verwendeten Bausteine sind die durch den Anwender unseres erfindungsgemäßen Systems eingegebenen Felder, Feldwerte, Beziehungen und der Grad der Feldwechselwirkungen. Unser System und Verfahren kann außerdem zum Erzeugen von Testfällen zum Testen der Protokollübereinstimmung und von Merkmalswechselwirkungen der Software verwendet werden. In Bildschirm-basierten Datenbankanwendungen entsprechen die Felder den Feldern auf dem Bildschirm. In Protokollübereinstimmungsanwendungen entsprechen die Felder den Entscheidungspunkten, die ein Testszenarium bestimmen, wie etwa der Wahl der Parameter und der Anordnung der Ereignisse.
- Um eine Beziehung zu erzeugen, spezifiziert der Anwender die Felder in der Beziehung, eine Menge gültiger und ungültiger Werte für jedes Feld und Zwangsbedingungen. Die spezifizierten Felder können sämtlich aus einem Bildschirm kommen oder mehrere Bildschirme überbrücken. Im Bildschirm 28 gibt es Beispiele von drei Feldern (DEST 30, MODE 31 und PRI 32). Die untenstehende Tabelle 3 zeigt eine Beziehung gültiger Werte für diese Felder (Farbe oder leer für DEST, 600dpi oder leer für MODE und D, D+ oder D- für PRI) in bezug auf das Drucken der Ausgabe einer Datenbankabfrage. Diese Feldwerte definieren zusammen eine Beziehung. DEST stellt den Zieldrucker dar, MODE stellt den Modus dar und PRI stellt die Priorität dar. Im wesentlichen besagt die Beziehung 1, daß dann, wenn die Priorität einer der hinausgeschobenen Werte (D, D-, D+) ist, die gültigen Werte für DEST Farbe oder leer sind, während die gültigen Werte für MODE 600dpi oder leer sind. Tabelle 4 zeigt eine weitere Beziehung für die Felder DEST, MODE und PRI. Tabelle 4 gibt an, daß dann, wenn das gültige Feld für PRI I (sofort) ist, die gültigen Werte für das Feld DEST Mein Drucker oder leer sind, während das gültige Feld für MODE leer ist. Diese zwei Beziehungen prüfen zusammen, ob die Software, die eine Schnittstelle zwischen einem Anwender und einem Drucker herstellt, die Anforderungen erzwingt, daß der lokale Drucker nur dann verwendet werden kann, wenn die Priorität sofort ist; und ob der Farbdrucker und der 600-dpi-Modus nur dann verwendet werden können, wenn die Priorität verzögert ist. Tabelle 3: Gültige Werte für die Beziehung 1 Tabelle 4: Gültige Werte für die Beziehung 2
- Wenn der Anwender die Beziehungen zwischen den Feldern und Werten spezifiziert, spezifiziert der Anwender auch den Wechselwirkungsgrad zwischen den Feldern, die der Anwender testen möchte; die Wechselwirkungen können als irgendeine n-Kombination (z. B. paarweise, dreifach, erschöpfend usw.) spezifiziert werden. Als Beispiel bedeuten paarweise Kombinationen, daß es für zwei beliebige Felder f&sub1; und f&sub2; und für zwei beliebige gültige Werte v&sub1; für f&sub1; und v&sub2; für f&sub2; einen Testfall gibt, in dem f&sub1; den Wert v&sub1; und f&sub2; den Wert v&sub2; besitzt. Unter Verwendung der Relation 1 als Beispiel führt das Testen der paarweisen Kombinationen der gültigen Werte zu den in Fig. 6 gezeigten Testfällen 61. Das erschöpfende Testen hätte zwölf Testfälle erfordert. Für die Beziehung 2 gibt es in gleicher Weise für das erschöpfende wie für das paarweise Testen zwei in Fig. 6 gezeigte Testfälle 62. Somit hätten erschöpfende Tests für beide Beziehungen 14 Testfälle erfordert, während das paarweise Testen insgesamt 8 Testfälle erfordert.
- Die in Fig. 6 für die Beziehung 1 gezeigten sechs Testfälle 61 wurden unter Verwendung unserer wie in dem Testfall-Erzeugungsprozeß 14 realisierten Prozeduren zum Erzeugen einer Tabelle von Testfällen erzeugt. Dieser Prozeß verwendet eine auf bekannten deterministischen Algorithmen beruhende neue Menge von deterministischen Prozeduren in Verbindung mit einer Zufallsprozedur, die auf einem von den Erfindern entwickelten Zufallsalgorithmus beruht. In unserer Ausführungsform des Prozesses 14 werden zunächst deterministische Prozeduren verwendet, um zu versuchen, eine Tabelle zu erstellen. Wenn die deterministischen Prozeduren nicht direkt verwendet werden können, da die Anzahl der Felder und Wechselwirkungen zu keinem deterministischen Zugang führen, wird die Beziehung in Unterteile zerlegt, für die unter Verwendung deterministischer Prozeduren Testfälle erzeugt werden können. Der Prozeß 14 verwendet die für die Unterteile erzeugten Testfälle als Keimtestfälle für unsere Zufallsprozedur, was dann die Erzeugung eine Tabelle von Testfällen für diese Beziehung abschließt.
- Der erste Schritt in unserem erfindungsgemäßen deterministischen Prozeß besteht in der Bestimmung einer Beziehung und in der Bestimmung der Gruppe von Feldern mit der größten Anzahl von Feldwerten oder der größten Gruppe von Feldern mit der gleichen Anzahl von Feldwerten. Der nächste Schritt ist daraufhin die Untersuchung dieser Gruppe von Feldern, um zu sehen, ob unter Verwendung eines deterministischen Algorithmus eine Tabelle von Testfällen erzeugt werden kann; in unserer Ausführungsform sind die deterministischen Algorithmen entweder unsere Projektionsebenen-Prozeduren, unsere Anwendung der allgemeinen Produktregel-Prozeduren oder lediglich eine erschöpfende Aufzählung sämtlicher Kombinationen von Feldwerten. Falls es lediglich ein Feld mit der größten Anzahl von Feldwerten gibt, erzeugen unsere deterministischen Prozeduren unter Verwendung der im Gebiet wohlbekannten Techniken der erschöpfenden Aufzählung für die ausgewählte Untermenge der Felder mit der höchsten Anzahl von Feldwerten einfach sämtliche n-Weg-Kombinationen (wobei n der Wechselwirkungsgrad ist). Diese Testfälle werden daraufhin mit Testfällen verglichen, die von unserer Projektionsebenen- oder Produktregel-Prozedur aus einer Untermenge der Beziehung mit der größten Anzahl von Feldern mit gemeinsamen Werten erzeugt wurden. Diese Untermenge von Feldern wird als Keim für den Zufallsalgorithmus verwendet, der verwendet wird, um die Tabelle durch Ausfüllen der Werte für die verbleibenden Felder fertigzustellen.
- Unsere verallgemeinerten Projektionsebenen-Prozeduren werden verwendet, wenn die Anzahl der Werte eine feste Primzahlpotenz q und die Anzahl der Felder q + 1 ist. Die klassische Projektionsebenen-Konstruktion, wie sie im Gebiet gelehrt wird, beruht auf der Geometrie der Projektionsebene (siehe Hall Jr., M., Combinatorial Theory, Wiley Interscience, New York, 1986). Sie wird zur experimentellen Konstruktion für paarweise Wechselwirkungen verwendet. Die verallgemeinerte Projektionsebenenkonstruktion ergibt eine Tabelle von qn Testfällen, wobei q die Anzahl der Feldwerte und n der Wechselwirkungsgrad und n ≤ q + 1 ist. Unsere verallgemeinerten Projektionsebenenprozeduren entwickeln wie folgt eine n-fache Überlappung.
- Die Anzahl der Testfälle, die erforderlich sind, um n- Weg-Wechselwirkungen einer Anzahl q von Feldwerten zu überlappen, beträgt qn. Unsere Prozedur führt daraufhin die Anzahl der n-Weg-Kombinationen als (α&sub1;, ..., αn) auf, wobei (0, ..., 0) die ersten und (n-1, ..., n-1) die letzten sind. Daraufhin bestimmt unser Prozeß die Testfälle der Form (a&sub1;, ..., af), wobei f die Anzahl der Felder ist. Für λ von 0 bis q ist der Wert αi · λi-1 (mod q) der Wert im Feld λ für den mit (α&sub1;, ..., αn) bezeichneten Testfall. Für f = q + 1 ist dann der Wert für af gleich αn. Das Feld q + 1 wird die "Zeile bei Unendlich" genannt. Für die Situation, daß q eine Primzahlpotenz, aber keine Primzahl ist, muß eine Identifizierung zwischen den Zahlen 1 bis q und dem endlichen Feld mit q Elementen vorgenommen werden.
- Als Beispiel der Anwendung unserer Prozeduren auf eine Beziehung wird die in Fig. 3 gezeigte Beziehung 30 mit vier Feldern mit jeweils drei Werten angenommen. Ferner wird angenommen, daß der Anwender Testfälle für paarweise Kombinationen der Felder erzeugen möchte. Unser Prozeß numeriert die Testfälle gemäß der Anzahl der paarweisen Kombinationen, die wie in Spalte 35 gezeigt erzeugt werden können. Mit drei Niveaus der Werte für jedes Feld beträgt die Anzahl der paarweisen Kombinationen (n = 2), die erzeugt werden können, neun (3²). Um für paarweise Wechselwirkungen die ersten von neun Testfällen der Form (a&sub1;, a&sub2;, a&sub3;, a&sub4;) zu erzeugen, wird hier somit die Formel αi · λi-1 (mod 3) verwendet, wobei α&sub1; der erste Wert des ersten Paars 36 und λ die Zahl ist, die die Feldstelle 37 von dem Vektor (1, ..., q) darstellt, der die Anzahl der Felder darstellt. Somit ist der Wert im Feld 1 (λ = 0) für a&sub1; gleich α&sub1; mal λ1-1 plus α&sub2; mal λ²&supmin;¹, d. h. gleich der bei 38 gezeigten 0. Der Wert für a&sub2; ist α&sub1; mal λ¹&supmin;¹ plus α&sub2; mal λ²&supmin;¹ im Feld 2 (λ = 1), d. h. ebenfalls gleich der bei 39 gezeigten 0 ist. Dieser Prozeß wird für jeden der neuen Testfälle für jedes ai wiederholt. Die sich ergebende Tabelle ist eine wie in Fig. 3 gezeigte Tabelle der neun Testfälle 34. Auf den ersten Blick ist möglicherweise nicht offensichtlich, in welcher Beziehung die Tabelle 34 zu = der Beziehung 30 steht. In der Tabelle 34 stellt jede der Spalten 33 die Felder dar, während jede Zahl in jeder Zelle in jeder Spalte einen Feldwert darstellt. Beispielsweise gibt bei Betrachtung des mit (0, 1) 40 bezeichneten vierten Testfalls die 0 in der Spalte a&sub1; den ersten Feldwert für das Feld 1 an, während die 2 in der Spalte a&sub3; den dritten Feldwert für das Feld 3 angibt. Dementsprechend ist der in der Tabelle 34 für die Beziehung 30 gezeigte vierte Testfall (v&sub1;, v&sub2;', v&sub3;", v&sub2;''').
- Der Projektionsebenen-Algorithmus ist nur dann direkt anwendbar, wenn die Anzahl der Feldwerte gleich q (einer Primzahl oder einer Primzahlpotenz) ist und wenn die Anzahl der Felder kleiner als oder gleich q + 1 ist. (Er ist auch wirksam, wenn die Anzahl der Werte nahe einer Primzahlpotenz ist, wobei beispielsweise 10 nahe 11 ist). Häufig läßt sich eine Beziehung nicht leicht an das Projektionsebenen-Konstrukt anpassen. Unter diesen Umständen zerlegt unser Testfall-Aufzählungsprozeß die Beziehung in Unterbeziehungen, um zu bestimmen, ob die Testfälle für eine Unterbeziehung deterministisch entweder unter Verwendung der Projektionsebenen-Prozeduren oder, wenn sie klein genug ist, durch eine erschöpfende Aufzählung erzeugt werden. Wenn das der Fall ist, werden die Unterbeziehungen daraufhin unter Verwendung von Produktregeln kombiniert. Die Produktregeln sind jedesmal nur dann direkt anwendbar, wenn jedes Feld die gleiche Anzahl von Feldwerten besitzt und wenn der Grad der Feldwechselwirkung paarweise ist.
- Als Beispiel wird eine in Fig. 4 gezeigte Beziehung 43 mit 9 Feldern jeweils mit zwei Feldwerten betrachtet. Unser Prozeß nimmt eine Untermenge der Beziehung 44, auf die unser Projektionsebenen-Algorithmus angewendet werden kann, und erzeugt für diese Untermenge Testfälle. In diesem Beispiel Werden für die Beziehung 44 für die paarweise Überlappung von drei Feldern jeweils mit zwei Feldwerten vier Testfälle 45 erzeugt. Unsere Produktregeln erzeugen für die neun Felder 46 eine Tabelle von 8 Testfällen. Diese Testfälle 46 sind das Ergebnis der mit sich selbst kombinierten vier Testfälle 45. Der Prozeß hierfür besteht darin, jedes der Elemente in der, ersten Tabelle in der Anzahl der Felder in der zweiten Tabelle zu wiederholen und daraufhin jedes Element der Folge der Elemente für die Felder in der zweiten Tabelle in der Anzahl der Felder in der ersten Tabelle zu wiederholen. Daraufhin untersucht unser Prozeß die sich ergebende Tabelle der Testfälle, wobei er nach Duplikaten sucht und irgendwelche redundanten Fälle entfernt. In unserem obenstehenden Beispiel ist der fünfte Testfall 42 ein Duplikat des ersten Testfalls 41 und wird somit entfernt.
- Unsere Realisierung der Testregeln kann wie folgt verallgemeinert werden. Es seien S und T zwei Mengen von Testfällen mit der gleichen Anzahl von Werten für jedes Feld. Die Anzahl der Felder kann sich unterscheiden; beispielsweise habe S m Felder und T r Felder. Ein typischer Testfall in S wird als (s&sub1;, ..., sm) geschrieben. Ein typischer Testfall für T wird als (t&sub1;, ..., tr) geschrieben. Das Produkt der Testfälle für m * r Felder hat die Form (s&sub1;, ..., 1, s&sub2;,..., s&sub2;, ..., sm, ..., sm), für jedes si r-mal wiederholt, und (t&sub1;, ..., t, ...,t&sub1;, ...,tr,)i wobei jeder Testfall (t&sub1;, ..., tr) m-mal wiederholt wird.
- Auf die Situation, daß eine durch den Projektionsebenen- Zugang erzeugte Testmenge T und eine Testmenge S mit der gleichen Anzahl von Feldwerten wie T, aber einer beliebigen Anzahl von Feldern, existiert, ist ein die reduzierte Produktregel genannter alternativer Zugang anwendbar. Der Zugang über die reduzierte Produktregel reduziert T durch Entfernen der Werte für das letzte Feld aus der Tabelle der Testfälle und außerdem durch Entfernen derjenigen Testfälle, in denen sämtliche Einträge gleich sind. Daraufhin verwenden wir unsere Produktregeln, um T' und S zu kombinieren. Zu dem Ergebnis wird eine Spalte mit dem Wert 0 für die Testfälle von S und mit dem Wert der von T entfernten Elemente, wenn die Spalte für jeden der Testfälle T' gelöscht wurde, addiert.
- Als Beispiel sei T die in Fig. 5 gezeigte Tabelle 50, d. h. eine Tabelle von Testfällen, die durch unseren Projektionsebenen-Algorithmus für eine Beziehung mit vier Feldern und drei Feldwerten erzeugt wurde. Wenn unser Ziel im Erzeugen einer Tabelle von Testfällen für 16 Felder jeweils mit drei Feldwerten und paarweisen Wechselwirkungen besteht, verwendet unser Prozeß die Produktregeln zum Erzeugen einer Tabelle mit 17 Testfällen für 16 Felder. Die Verwendung unserer erfindungsgemäßen Prozeduren der reduzierten Produktregel erzeugt die in Fig. 5 gezeigte Tabelle 51 mit fünfzehn Testfällen 53 für dreizehn Felder 54. Eine solche Tabelle von Testfällen wird durch Abändern der Tabelle 50 durch Entfernen der letzten Spalte 55 und außerdem durch Entfernen der ersten drei Spalten 56, da jeder der verbleibenden Werte gleich ist, erzeugt. Die abgewandelte Tabelle 50 wird daraufhin unter Verwendung unserer Produktregeln mit der ursprünglichen Tabelle 50 kombiniert, um die Tabelle der fünfzehn Testfälle 51 zu erzeugen.
- Wenn die deterministischen Prozeduren für eine Beziehung nicht zum Erzeugen einer vollständigen Tabelle von Testfällen verwendet werden können, wird unsere Zufallsprozedur zum Fertigstellen der Erzeugung einer Tabelle von Testfällen verwendet. Für jeden neuen Testfall beginnt unsere Zufallsprozedur durch Erzeugen einer Menge von Testfallanwärtern unter Verwendung unseres unten beschriebenen lokalen Greedy-Algorithmus. Ausgehend von dieser Menge von Testfallanwärtern wählt der Algorithmus unter Verwendung einer Bewertungsfunktion, die jedem Testfallanwärter ein Ergebnis zuweist, den nächsten Testfall aus. Der zu der Tabelle hinzugefügte Testfall ist der Testfallanwärter mit dem höchsten Ergebnis. Die zwei Grundbewertungsfunktionen sind die "Kanten-Greedy"- Bewertungsfunktion und die "Gleichgewichts-Greedy" - Bewertungsfunktion.
- Die Grundschritte, die unser lokales Zufalls-Greedy- Verfahren umfaßt, sind die folgenden:
- 1. Es ist zufällig eine (n-1)-Menge (n = der Wechselwirkungsgrady mit der höchsten Priorität auszuwählen. Beispielsweise ist dies im Fall der paarweisen Überlappung ein (Feld, Wert), das zu der höchsten Anzahl nicht überlappter Paare gehört.
- 2. Für die verbleibenden Felder ist zufällig eine Reihenfolge auszuwählen. Beim Abarbeiten in dieser Reihenfolge sind für jedes neue Feld diejenigen Feldwerte zu finden, die in bezug auf die durch den Anwender für den Lauf ausgewählte Bewertungsfunktion das höchste Ergebnis ergeben. Eine von ihnen ist auszuwählen und zum nächsten Feld überzugehen.
- Wenn beispielsweise unter Verwendung der Beziehung 1 für die Felder DEST bzw. MODE die Werte Farbe und 600 dpi gefunden worden sind, wird für jeden Wert für das Feld PRI eine der Bewertungsfunktionen verwendet, um das Ergebnis für eine Testmenge mit einem DEST mit dem Wert Farbe, einem MODE mit dem Wert 600 dpi und einem PRI mit dem Wert D zu finden.
- 3. Nachdem für jeden Faktor ein Wert ausgewählt worden ist, ist zu prüfen, daß der erzeugte Testfall sämtlichen Zwangsbedingungen entspricht. Wenn der sich ergebende Testfall eine Zwangsbedingung verletzt, sind die Feldbezeichnungen, wie sie den spezifizierten Werten zugeordnet sind, zu vertauschen, wobei zu sehen ist, ob der sich ergebende Testfall die Zwangsbedingung verletzt. Falls dies nicht funktioniert, ist der Testfall zu verwerfen und ein anderer zu erzeugen. Falls keiner der erzeugten Testfälle den Zwangsbedingungen genügt, verwendet der Algorithmus eine erschöpfende Suche zum Finden eines Testfalls. Falls eine Zwangsbedingung keinen großen Prozentsatz der Testfälle ausschließt, wird sie wahrscheinlich von einem der erzeugten Testanwärter erfüllt. Die anderen Zwangsbedingungen können dadurch erfüllt werden, daß die Bewertungsfunktion Teiltestfällen, die sie verletzen, niedrige Ergebnisse zuweist.
- Das Bewerten der Beispieltestfälle gemäß unserem Kanten- Greedy-Algorithmus schließt eine lokale Optimierung der durch jeden Testfall überlappten Anzahl neuer n-Mengen ab. Das heißt, das einem Teiltestfall zugewiesene Ergebnis ist die Anzahl der in den Teiltestfällen enthaltenen n-Mengen, die noch nicht zuvor überlappt worden sind. Beispielsweise ist das Ergebnis für eine paarweise Überlappung für einen Testfall {(DEST, Farbe), (MODE, 600dpi), (PRI, D)} 2, wenn die zuvor ausgewählten Testfälle die zwei durch diesen Testfall überlappten Paare {(DEST, Farbe), (MODE, 600dpi)}, {(MODE, 600dpi) nicht überlappen.
- Eine weitere Bewertungsfunktion ist unser Gleichgewichts- Greedy-Algorithmus. Der Gleichgewichts-Greedy-Algorithmus verwendet zur paarweisen Überlappung einen steilsten Anstieg für eine Potentialfunktion in dem Raum der Graphen. Es wird ein Graph mit einem Vertex bei (f, 1) betrachtet, wobei f ein Feld und 1 ein Wert ist. Der Graph besitzt eine Kante zwischen (f, 1) und (f', 1'), wenn das Paar (f, 1), (f', 1') nicht überlappt ist. Daraufhin wird jedem Vertex (f, 1) ein Tupel (n&sub1;, nv) zugeordnet, wobei v die Anzahl der Felder und ni die Anzahl der für alle möglichen Wahlen nicht überlappten Paare {(f, 1), (i, 1')} ist. Die Potentialfunktion ist gleich der Summe oder gleich den Quadraten der Einträge in dem Tupel.
- Ein weiterer Aspekt unseres Zufallsverfahrens besteht darin, daß es auch Zylinderblockverfahren zum Erzeugen eines Blocks von Testfällen enthält. Ein von einem Testfall (a&sub1;, ..., af) angeführter Zylinderblock von Testfällen (mod 1) ist die Menge der Testfälle (a&sub1; + i, ..., af + i) mod 1. für 1 ≤ i ≤ 1 (für eine beliebige Gruppe G ein G-Block in der Menge der Testfälle (a&sub1;g, ..., afg) für g in G). In diesem Blockmodus wird ein zufällig erzeugter Testfall als Anfangsblockfall verwendet, woraufhin unter Verwendung der Zylinderverfahren ein Block von Testfällen erzeugt wird. Beim Betrieb in dem Blockmodus verwendet unser Prozeß je nach Anzahl der Felder die Zylinderprozeduren mit einer begrenzten Häufigkeit. Die Grenze ist ein durch den Anwender definierbarer Systemparameter. Wenn die Menge der Testfälle eine Blockstruktur besitzt, kann ein zusätzliches Feld hinzugefügt werden, ohne die Anzahl der Testfälle zu erhöhen. Dem zusätzlichen Feld wird ähnlich der in Tabelle 50 gezeigten "Zeile bei Unendlich" für jeden Block der Testfälle ein anderer Wert zugewiesen.
- Daraufhin kann der Anwender außerdem von unserem Verfahren verwendete Zwangsbedingungen als unzulässige Testfälle spezifizieren. Eine Menge unzulässiger Testfälle kann unter Verwendung von Platzhaltern, * oder expliziten Werten spezifiziert werden. Andere Zwangsbedingungen entfernen Testfälle von gültigen Beziehungen. Wenn ein Anwender beispielsweise einen Testfall spezifiziert, der nicht eintreten soll, wird dieser Testfall aus der Testmenge entfernt.
- Nachdem für jede Beziehung die richtige Anzahl von Testfällen für die spezifizierten Wechselwirkungen erzeugt worden ist, erfordert unser erfindungsgemäßes Verfahren, daß ein Anwender Felder, die nicht in Wechselwirkung stehen; d. h. Felder, die an irgendeiner Quervalidierungsregel nicht beteiligt sind, identifiziert. Als Beispiel zeigt die in Fig. 6 gezeigte Tabelle 63 zwei Felder, die nicht in Wechselwirkung stehen. WC bedeutet ein Aderzentrum mit dem Wert WC38, wobei der Kopf zwei typische Werte TOTAL1 und TOTAL2 haben kann.
- Es wird eine in Fig. 8 gezeigte Beziehung 81 mit fünfzehn Feldern betrachtet, wobei einige der Felder drei Feldwerte 82 haben, während einige der Felder 2 Feldwerte 83 haben. Unser Prozeß 14 bestimmt die Anzahl der Felder mit der höchsten Anzahl von Feldwerten. In diesem Beispiel gibt es 10 Felder mit drei Feldwerten. Da die Felder drei Feldwerte haben und die Zahl drei eine Primzahl ist, versucht unser Prozeß 14 die Projektionsebenen-Prozeduren zum Erzeugen einer Tabelle von Testfällen für die zehn Felder 82 anzuwenden. Unser Prozeß 14 erzeugt die Testfälle unter Verwendung der Projektionsebenen-Prozeduren für vier Felder mit drei Werten, was zu der in Tabelle 50 in Fig. 5 gezeigten Tabelle von Testfällen führt. Daraufhin wendet der Prozeß auf die Tabelle der Testfälle 50 unsere Produktregeln an. Unser Prozeß erkennt, daß das Anwenden der reduzierten Produktregel dreizehn Felder umfaßt; wohingegen in diesem Beispiel nur zehn Felder überlappt zu werden brauchen. Der Prozeß 14 verwendet die zusätzlichen drei Felder aber zum Aufzählen von drei der Felder mit zwei Feldwerten 86. Die Einträge in der Tabelle werden gemäß der Funktion MOD[2] bewertet und geändert. Dies ist in den drei in Fig. 8 gezeigten Spalten 86 gezeigt. Diese Änderung ist offensichtlich, wenn diese drei Spalten 86 mit den drei Spalten der Tabelle der Testfälle 56 in Tabelle 51 verglichen werden. Daraufhin wird Tabelle 81 als Keim des Zufallsalgorithmus verwendet, der die Tabelle daraufhin durch Ausfüllen der verbleibenden zwei Spalten 87 abschließt.
- Ein weiterer Aspekt unseres erfindungsgemäßen Verfahrens ist der Prozeß, mit dem unser erfindungsgemäßer Testskript-Mischprozeß 20 sämtliche durch den Prozeß 14 erzeugten Tabellen bearbeitet. Unser Testfall-Mischprozeß 20 kombiniert unter Verwendung der obendefinierten Beziehungen die einzelne Tabelle des für jede Beziehung erzeugten Testfalls gemäß den folgenden Vorschriften:
- 1. Wenn eine oder mehrere Beziehungen gemeinsame Felder besitzen, ist die gemeinsame Testmenge für sie die Vereinigung der für die einzelnen Beziehungen erzeugten Testmengen; und
- 2. für jene Beziehungen, die keine Felder gemeinsam haben, wird die gemeinsame Testmenge durch Falten der kleineren Testmenge zu der größeren erzeugt.
- Das Anwenden dieser Vorschriften auf die Testfälle, die für die in Fig. 6 gezeigten Beziehungen 1 (Tabelle 61), 2 (Tabelle 62) und 3 (Tabelle 63) erzeugt werden, funktioniert wie folgt. Die Beziehung 1 und die Beziehung 2 besitzen gemeinsame Felder und werden somit kombiniert, um die Vereinigung der in Tabelle 71 in Fig. 7 gezeigten Testfälle zu erzeugen. Die Verwendung unserer zweiten Vorschrift zum Kombinieren der Beziehung 3 63 mit den Testfällen 71 erzeugt eine vereinigte Tabelle von acht Testfällen 72.
- Unsere vorliegende Erfindung schafft für den Anwender außerdem die Möglichkeit zum Test der Reaktion des Systems im. Test auf ungültige Eingaben durch Spezifizieren eines oder mehrerer ungültiger Werte für ein in einer Beziehung auftretendes Feld. Es ist wichtig daran zu erinnern, daß der Wert nur in dem Kontext einer Beziehung ungültig ist und anderswo gültig sein kann. In der Bildschirmtestungsanwendung sollte ein Testfall, der einen ungültigen Wert enthält, die entsprechende Fehlermeldung erzeugen. Um sicherzustellen, daß die Ursache der Fehlermeldung identifizierbar ist, bestimmt unser System lediglich einen ungültigen Wert pro Testfall. Die Reaktion eines Systems auf n-Weg-Fehler kann dadurch getestet werden, daß jeder fehlerhafte Eintrag/jede fehlerhafte Eingabe zu einem gültigen Wert in einer n-Weg-Beziehung gemacht wird. Die Systemreaktionen auf mehrere Fehler können unter Verwendung von Beziehungen mit n-Weg-Wechselwirkungen getestet werden, wobei n die Anzahl der Fehler ist.
- Außerdem kann der Anwender für jede Beziehung Keimtestfälle spezifizieren. Keimtestfälle können entweder erforderlich oder unzulässig sein. Bei erforderlichen Keimtestfällen wird sichergestellt, daß sie in der Endmenge sind, während bei unzulässigen Testfällen sichergestellt wird, daß sie in der endgültigen Testmenge nicht erscheinen. Unzulässige Keimtestfälle werden als Zwangsbedingungen behandelt, während die erforderlichen Keimtestfälle als Keim für den Zufalls-Greedy-Algorithmus verwendet werden. Da einige der Wechselwirkungen bereits in den vom Keim geforderten Fällen überlappt sind, erzeugt das System weniger zusätzliche Testfälle.
- Außerdem kann der Anwender andere Zwangsbedingungen definieren, die entweder erforderliche Kombinationen oder unzulässige Kombinationen sind, wobei die Beziehungen zwischen den Feldern eindeutige Kombinationen der Felder oder eine eindeutige Reihenfolge der Werte (z. B. steigend oder fallend) unter den Feldern sind. Diese Zwangsbedingungen werden von unserem System und Verfahren als Keim für den Züfallsalgorithmus verwendet.
- Ein weiterer Aspekt unseres Verfahrens besteht im Definieren einer Gruppe von Feldern als virtuelles Feld (im folgenden Verbünde genannt) und in der Verwendung dieser Verbünde mit anderen Feldern beim Definieren einer mit unserem Verfahren zu verarbeitenden Beziehung. Ein Verbund wird bei der Verarbeitung wie ein singuläres Feld behandelt. Diese Beziehungen mit Verbünden werden in der Datenbank 18 gespeichert und von dem System als in die Beziehungen einzubauendes singuläres Feld behandelt, wobei sie für unseren erfindungsgemäßen Prozeß als einzelnes Feld behandelt werden.
- Ein weiterer Aspekt unseres Systems besteht in der Anwendung in Bildschirm-basierten Softwaresystemen zum Definieren von Beziehungen als Forderungen für die Softwareentwicklung. Um sicherzustellen, daß das System in Übereinstimmung mit den definierten Anforderungen arbeitet, können diese Beziehungen daraufhin gesichert und zum Test der sich ergebenden entwickelten Software verwendet werden.
- Obgleich das hier beschriebene System und Verfahren in bezug auf seine Anwendung auf Software beschrieben worden ist, ist unsere Erfindung schließlich auf irgendein System oder irgendeinen Prozeß (d. h. auf die Herstellung, auf die Hardware-Wechselwirkung usw.) anwendbar, bei dem es mehrere Komponenten oder Elemente gibt, die wechselwirken müssen, während es unmöglich ist, sämtliche Wechselwirkungen zu testen. Jede der Komponenten ist analog zu den obenbeschriebenen Feldern und jede der Komponenten besitzt Eigenschaften oder Merkmale, die analog zu unseren Feldwerten sind. Unser System und Verfahren kann zum Erzeugen von Tabellentestfällen verwendet werden, die Kombinationen jener Komponenten, die wechselwirken, aufzählen. Somit ist selbstverständlich, daß das System und das Verfahren zum Schaffen einer automatischen Testfallerzeugung nicht auf die spezifischen offenbarten und gezeigten Formen beschränkt ist, sondern andere Ausführungsformen annehmen kann, die lediglich durch den Umfang der beigefügten Ansprüche beschränkt sind.
Claims (13)
1. Verfahren zum automatischen Erzeugen einer
minimalen Mehrzahl von Testfällen zum Testen von Software-
Systemen, wobei die Software mehrere Datenfelder mit
mehreren möglichen Werten und Abhängigkeiten zwischen den
Feldern und Werten besitzt, wobei das Verfahren
gekennzeichnet ist durch die folgenden Schritte:
Eingeben von Feldwerten und von vom Anwender
definierten Zwangsbedingungen in eine Datenbank für alle
Felder;
Definieren mehrerer Tabellen, die miteinander in
Beziehung stehende Feldwerte enthalten;
Erzeugen einer Tabelle von Testfällen für jede
der Tabellen von Feldwerten unter Verwendung eines vom
Anwender spezifizierten Wertes für den
Wechselwirkungsgrad zwischen Feldern (61 & 62);
Definieren mehrerer Tabellen von Feldwerten, die
nicht in. Wechselwirkung stehen (63);
Zusammenführen der Tabellen von Testfällen zu
einer einzelnen Tabelle von Testfällen (71); und
Zusammenführen der Tabelle von nicht in
Wechselwirkung stehenden Feldern mit der einzelnen Tabelle von
Testfällen (72).
2. Verfahren nach Anspruch 1, bei dem der Schritt
des Mischens der Tabellen von Testfällen umfaßt:
Erzeugen einer Vereinigung der Tabellen, falls
zwei oder mehr der Tabellen, die miteinander in Beziehung
stehende Felder enthalten, Felder gemeinsam haben; und
Falten einer kleineren Tabelle von Testfällen zu
einer größeren Tabelle von Testfällen, wann immer
irgendwelche zwei der Tabellen keine gemeinsamen Felder haben.
3. Verfahren nach Anspruch 2, bei dem der Schritt
des Erzeugens einer Tabelle von Testfällen umfaßt:
Verwenden eines deterministischen Algorithmus, um
zu versuchen, eine Tabelle zu erzeugen; und
Verwenden eines Zufallsalgorithmus, um die
Tabelle zu erzeugen, falls der deterministische Algorithmus
nicht verwendet werden kann, um eine Tabelle von
Testfällen zu erzeugen.
4. Verfahren nach Anspruch 3, bei dem der
deterministische Algorithmus ein Projektionsebenen-Algorithmus
ist, wann immer die Anzahl der Feldwerte für Felder mit
der größten Anzahl von Werten eine Primzahlpotenz ist und
die Anzahl der Felder kleiner oder größer als die
Primzahlpotenz ist.
5. Verfahren nach Anspruch 4, bei dem der
deterministische Algorithmus ferner einen Produktregel-Algorithmus
enthält.
6. Verfahren nach Anspruch 5, bei dem der
Zufallsalgorithmus umfaßt:
zufälliges Wählen eines Testfalls, der aus einer
Untermenge von Fällen mit einer Anzahl von Feldern, die
kleiner als die Gesamtzahl der Felder einer Tabelle ist,
aufgebaut ist und das Kriterium erfüllt, daß er die
größte Anzahl nicht überlappender Kombinationen besitzt;
Wählen der verbleibenden Felder, die nicht in den
Feldern enthalten sind, die in der Untermenge verwendet
werden, in einer zufälligen Reihenfolge;
Finden von Feldwerten, die bei der Bewertung
unter Verwendung einer Bewertungsfunktion das höchste
Ergebnis ergeben, für jedes der gewählten verbleibenden
Felder; und
Prüfen, ob der erzeugte Testfall alle vom
Anwender definierten Zwangsbedingungen erfüllt.
7. Verfahren nach Anspruch 6, bei dem die
Bewertungsfunktion eine Anzahl neuer überlappender n-Mengen-
Kombinationen lokal optimiert.
8. Verfahren nach Anspruch 6, bei dem die
Bewertungsfunktion eine Funktion ist, die eine Funktion mit
steilstem Abfall in einer Ebene von Graphen verwendet.
9. Verfahren nach Anspruch 1, bei dem der Schritt
des Definierens mehrerer Tabellen durch. Aufnehmen von von
den Anwendern erzeugten Bildschirmen erzeugt wird.
10. System zum automatischen Erzeugen einer minimalen
Mehrzahl von Testfällen zum Testen von Software-Systemen,
wobei die Software mehrere Datenfelder mit mehreren
möglichen Werten und. Abhängigkeiten zwischen den Feldern
und den Werten besitzt, wobei das System gekennzeichnet
ist durch:
ein Anzeigeendgerät (10) mit Bildschirmanzeigen
(28), die einem Anwender ermöglichen, Werte für Felder in
den Bildschirm einzugeben, um mehrere Beziehungen
zwischen den Feldern zu definieren, und vom Anwender
definierte Zwangsbedingungen einzugeben, um mehrere
Beziehungen der Feldwerte, die nicht in Wechselwirkung stehen, zu
definieren;
eine Datenbank (18) zum Speichern der mehreren
Beziehungen;
eine erste Computereinrichtung (14) zum Erzeugen
einer Menge von Testfällen für jede der Beziehungen
anhand eines vom Anwender spezifizierten Wertes zum
Identifizieren einer Anzahl von in Wechselwirkung
stehenden Feldern innerhalb der Beziehungen;
eine zweite Computereinrichtung (20) zum
Kombinieren der Testfälle für jede der mehreren Beziehungen
mit Wechselwirkungswerten zu einer einzigen Tabelle von
Testfällen und zum Kombinieren der Tabelle mit den
Beziehungen mit Nichtwechselwirkungswerten und zum Erzeugen
einer zusammengeführten Tabelle von Testfällen; und
eine Ausgabeeinrichtung zum Schreiben der
zusammengeführten Tabelle von Testfällen in eine Datenbank
(22).
11. System nach Anspruch 10, ferner mit einer
Testskript-Erzeugungseinrichtung, die die zusammengeführte
Tabelle von Testfällen von der Ausgabeeinrichtung
annimmt, um einen Testskript zu erzeugen, der ausgeführt
werden kann, um Software automatisch zu testen.
12. System nach Anspruch 10, wobei das System ferner
eine Aufnahmeeinrichtung (12) umfaßt, um
Anwenderaktivitäten auf einem Bildschirm aufzunehmen und eine Datenbank
von Beziehungen zu erzeugen.
13. System nach Anspruch 10, wobei die erste
Computereinrichtung zum Erzeugen einer Menge von Testfällen
umfaßt:
eine deterministische Einrichtung zum Erzeugen
von Tabellen von Testfällen aus Beziehungen; und
eine Zufallseinrichtung zum Erzeugen von Tabellen
von Testfällen aus Beziehungen, wenn die deterministische
Einrichtung nicht anwendbar ist.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/321,185 US5542043A (en) | 1994-10-11 | 1994-10-11 | Method and system for automatically generating efficient test cases for systems having interacting elements |
PCT/US1995/014283 WO1996011438A1 (en) | 1994-10-11 | 1995-10-10 | Method and system for automatically generating efficient test cases for systems having interacting elements |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69522114D1 DE69522114D1 (de) | 2001-09-13 |
DE69522114T2 true DE69522114T2 (de) | 2002-04-18 |
Family
ID=23249558
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69522114T Expired - Lifetime DE69522114T2 (de) | 1994-10-11 | 1995-10-10 | Verfahren und system zur automatischen erzeugung von effizienten testfällen zum testen von softwaresystemen |
Country Status (8)
Country | Link |
---|---|
US (1) | US5542043A (de) |
EP (1) | EP0786110B1 (de) |
JP (1) | JP2882687B2 (de) |
AT (1) | ATE204088T1 (de) |
CA (1) | CA2200557C (de) |
DE (1) | DE69522114T2 (de) |
ES (1) | ES2163533T3 (de) |
WO (1) | WO1996011438A1 (de) |
Families Citing this family (76)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5671351A (en) * | 1995-04-13 | 1997-09-23 | Texas Instruments Incorporated | System and method for automated testing and monitoring of software applications |
US5956478A (en) * | 1995-09-11 | 1999-09-21 | Digital Equipment Corporation | Method for generating random test cases without causing infinite loops |
US5675731A (en) * | 1995-09-22 | 1997-10-07 | Sun Microsystems, Inc. | Scatter load for system test |
US5740353A (en) * | 1995-12-14 | 1998-04-14 | International Business Machines Corporation | Method and apparatus for creating a multiprocessor verification environment |
US5864660A (en) * | 1996-03-12 | 1999-01-26 | Electronic Data Systems Corporation | Testing the integration of a plurality of elements in a computer system using a plurality of tests codes, each corresponding to an alternate product configuration for an associated element |
US5754760A (en) * | 1996-05-30 | 1998-05-19 | Integrity Qa Software, Inc. | Automatic software testing tool |
US5870539A (en) * | 1996-07-01 | 1999-02-09 | Sun Microsystems, Inc. | Method for generalized windows application install testing for use with an automated test tool |
US5831998A (en) * | 1996-12-13 | 1998-11-03 | Northern Telecom Limited | Method of testcase optimization |
US6263376B1 (en) | 1997-02-24 | 2001-07-17 | Novell, Inc. | Generic run-time binding interpreter |
US6002869A (en) * | 1997-02-26 | 1999-12-14 | Novell, Inc. | System and method for automatically testing software programs |
US5913023A (en) * | 1997-06-30 | 1999-06-15 | Siemens Corporate Research, Inc. | Method for automated generation of tests for software |
US6141630A (en) | 1997-08-07 | 2000-10-31 | Verisity Design, Inc. | System and method for automated design verification |
US6378088B1 (en) * | 1998-07-14 | 2002-04-23 | Discreet Logic Inc. | Automated test generator |
US6182245B1 (en) | 1998-08-31 | 2001-01-30 | Lsi Logic Corporation | Software test case client/server system and method |
GB2353610A (en) | 1999-08-21 | 2001-02-28 | Ibm | Computerised testcase management system |
US6826549B1 (en) * | 1999-11-04 | 2004-11-30 | Mitsubishi Electric Research Laboratories, Inc. | Interactive heuristic search and visualization for solving combinatorial optimization problems |
US6615163B1 (en) | 1999-12-13 | 2003-09-02 | Dell Usa, L.P. | System and method for developing testing configurations |
US6728641B1 (en) | 2000-01-21 | 2004-04-27 | General Electric Company | Method and system for selecting a best case set of factors for a chemical reaction |
US6957420B2 (en) * | 2001-08-30 | 2005-10-18 | E M Pirix Inc. | Method of generating test scripts for systems having dynamic behavior |
US7058857B2 (en) | 2001-10-10 | 2006-06-06 | International Business Machines Corporation | Method and system for testing a software product |
CA2366344A1 (en) * | 2001-12-27 | 2003-06-27 | Ibm Canada Limited - Ibm Canada Limitee | Organization of test cases |
US7024589B2 (en) * | 2002-06-14 | 2006-04-04 | International Business Machines Corporation | Reducing the complexity of finite state machine test generation using combinatorial designs |
US6918098B2 (en) * | 2002-07-16 | 2005-07-12 | Hewlett-Packard Development Company, L.P. | Random code generation using genetic algorithms |
JP4355525B2 (ja) * | 2002-10-09 | 2009-11-04 | 富士通マイクロエレクトロニクス株式会社 | 検証支援方法、検証支援プログラムおよび検証支援装置 |
US7237231B2 (en) * | 2003-03-10 | 2007-06-26 | Microsoft Corporation | Automatic identification of input values that expose output failures in a software object |
US20050144529A1 (en) * | 2003-10-01 | 2005-06-30 | Helmut Gotz | Method for defined derivation of software tests from use cases |
DE102004014290A1 (de) * | 2004-03-24 | 2005-10-06 | Iav Gmbh Ingenieurgesellschaft Auto Und Verkehr | Verfahren zur Erstellung von Abläufen zum Testen einer Software |
US20060010426A1 (en) * | 2004-07-09 | 2006-01-12 | Smartware Technologies, Inc. | System and method for generating optimized test cases using constraints based upon system requirements |
US7506211B2 (en) * | 2005-09-13 | 2009-03-17 | International Business Machines Corporation | Automated atomic system testing |
US7694181B2 (en) | 2005-12-12 | 2010-04-06 | Archivas, Inc. | Automated software testing framework |
US7844955B2 (en) * | 2005-12-24 | 2010-11-30 | International Business Machines Corporation | Performance computer program testing after source code modification using execution conditions |
US8473913B2 (en) * | 2006-01-11 | 2013-06-25 | Hitachi Data Systems Corporation | Method of and system for dynamic automated test case generation and execution |
US20080172651A1 (en) * | 2007-01-15 | 2008-07-17 | Microsoft Corporation | Applying Function Level Ownership to Test Metrics |
US20080172652A1 (en) * | 2007-01-15 | 2008-07-17 | Microsoft Corporation | Identifying Redundant Test Cases |
US20080172655A1 (en) * | 2007-01-15 | 2008-07-17 | Microsoft Corporation | Saving Code Coverage Data for Analysis |
US8019049B2 (en) * | 2007-03-27 | 2011-09-13 | Avaya Inc. | Method for generating reliability tests based on orthogonal arrays and field data |
US7805635B2 (en) * | 2007-04-09 | 2010-09-28 | International Business Machines Corporation | Constraint programming for reduction of system test-configuration-matrix complexity |
US8336102B2 (en) | 2007-06-01 | 2012-12-18 | Microsoft Corporation | Delivering malformed data for fuzz testing to software applications |
US7873945B2 (en) * | 2007-06-29 | 2011-01-18 | Microsoft Corporation | Automatically generating test cases for binary code |
US20090077538A1 (en) * | 2007-09-18 | 2009-03-19 | Michael Paul Keyes | Methods for testing software using orthogonal arrays |
US20090077537A1 (en) * | 2007-09-18 | 2009-03-19 | International Business Machines Corporation | method of automatically generating test cases to test command line interfaces |
US7865780B2 (en) * | 2007-10-05 | 2011-01-04 | Sap Ag | Method for test case generation |
US10877874B2 (en) * | 2007-12-28 | 2020-12-29 | Federal Home Loan Mortgage Corporation (Freddie Mac) | Systems and methods for modeling and generating test requirements for software applications |
FI20080095A0 (fi) * | 2008-02-11 | 2008-02-11 | Codenomicon Oy | Menetelmä ja järjestelmä testitapausten muodostamiseksi |
US20090300587A1 (en) * | 2008-05-27 | 2009-12-03 | Microsoft Corporation | Determining domain data coverage in testing database applications |
US20100070231A1 (en) * | 2008-09-05 | 2010-03-18 | Hanumant Patil Suhas | System and method for test case management |
US8069375B2 (en) * | 2008-12-08 | 2011-11-29 | Kreativtek Software Lund Ab | Cover lover |
US9141518B2 (en) * | 2008-12-10 | 2015-09-22 | Microsoft Technology Licensing, Llc | GUI testing |
US8458664B2 (en) * | 2009-02-23 | 2013-06-04 | International Business Machines Corporation | Command line interface permutation executor |
US20100257211A1 (en) * | 2009-04-07 | 2010-10-07 | International Business Machines Corporation | Generating semi-structured schemas from test automation artifacts for automating manual test cases |
US8271950B2 (en) | 2009-07-06 | 2012-09-18 | Microsoft Corporation | Test generation from captured user interface status |
US8549045B2 (en) * | 2010-12-30 | 2013-10-01 | International Business Machines Corporation | Test data generation and scale up for database testing using unique common factor sequencing |
US9104815B1 (en) * | 2011-05-08 | 2015-08-11 | Panaya Ltd. | Ranking runs of test scenarios based on unessential executed test steps |
US9239777B1 (en) * | 2011-05-08 | 2016-01-19 | Panaya Ltd. | Generating test scenario templates from clusters of test steps utilized by different organizations |
JP5648186B2 (ja) * | 2011-08-22 | 2015-01-07 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | トランザクションを再生するためのデータを生成する装置及び方法 |
US20130090911A1 (en) * | 2011-10-05 | 2013-04-11 | International Business Machines Corporation | Modeling Test Space for System Behavior Using Interchangeable Designations |
US9323650B2 (en) | 2012-07-23 | 2016-04-26 | Infosys Limited | Methods for generating software test input data and devices thereof |
US8938646B2 (en) * | 2012-10-24 | 2015-01-20 | International Business Machines Corporation | Mutations on input for test generation |
US8930767B2 (en) | 2012-12-07 | 2015-01-06 | Software Ag | Techniques for test automation in emergent systems |
US9561810B2 (en) | 2013-01-11 | 2017-02-07 | International Business Machines Corporation | Large-scale multi-detector predictive modeling |
WO2014117320A1 (en) * | 2013-01-29 | 2014-08-07 | Hewlett-Packard Development Company, L.P. | Generating test code to test executable code |
GB2508447B (en) | 2013-03-28 | 2014-10-22 | Randomize Ltd | Method and apparatus for testing electronic systems |
CN104346276B (zh) * | 2013-08-08 | 2018-12-11 | 腾讯科技(深圳)有限公司 | 软件测试的方法及装置 |
CN104407976B (zh) * | 2014-11-28 | 2018-08-07 | 联动优势电子商务有限公司 | 一种接口健壮性测试用例生成方法及装置 |
US10061685B1 (en) | 2016-08-31 | 2018-08-28 | Amdocs Development Limited | System, method, and computer program for high volume test automation (HVTA) utilizing recorded automation building blocks |
CN106407117A (zh) * | 2016-09-27 | 2017-02-15 | 浪潮软件集团有限公司 | 一种通用的接口测试方法 |
US10810111B2 (en) | 2016-11-02 | 2020-10-20 | Hitachi Automotive Systems, Ltd. | Computer system, test method, and recording medium |
US10248550B2 (en) | 2016-12-16 | 2019-04-02 | Oracle International Corporation | Selecting a set of test configurations associated with a particular coverage strength using a constraint solver |
US10204033B2 (en) * | 2017-03-11 | 2019-02-12 | Wipro Limited | Method and system for semantic test suite reduction |
KR102271857B1 (ko) * | 2019-06-21 | 2021-07-01 | 주식회사 엘지씨엔에스 | 테스트 자동화 시스템 |
US11436132B2 (en) | 2020-03-16 | 2022-09-06 | International Business Machines Corporation | Stress test impact isolation and mapping |
US11194703B2 (en) | 2020-03-16 | 2021-12-07 | International Business Machines Corporation | System testing infrastructure for analyzing soft failures in active environment |
US11593256B2 (en) | 2020-03-16 | 2023-02-28 | International Business Machines Corporation | System testing infrastructure for detecting soft failure in active environment |
US11194704B2 (en) | 2020-03-16 | 2021-12-07 | International Business Machines Corporation | System testing infrastructure using combinatorics |
US11609842B2 (en) | 2020-03-16 | 2023-03-21 | International Business Machines Corporation | System testing infrastructure for analyzing and preventing soft failure in active environment |
DE102021132827A1 (de) | 2021-12-13 | 2023-06-15 | Continental Automotive Technologies GmbH | Verfahren zur automatischen Untersuchung von Zuständen und Übergängen einer Mensch- Maschine-Schnittstelle ( HMI) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4231087A (en) * | 1978-10-18 | 1980-10-28 | Bell Telephone Laboratories, Incorporated | Microprocessor support system |
US4696003A (en) * | 1986-03-10 | 1987-09-22 | International Business Machines Corporation | System for testing interactive software |
US4819233A (en) * | 1987-04-08 | 1989-04-04 | Westinghouse Electric Corp. | Verification of computer software |
US5159600A (en) * | 1990-01-02 | 1992-10-27 | At&T Bell Laboratories | Arrangement for generating an optimal set of verification test cases |
US5390325A (en) * | 1992-12-23 | 1995-02-14 | Taligent, Inc. | Automated testing system |
US5394347A (en) * | 1993-07-29 | 1995-02-28 | Digital Equipment Corporation | Method and apparatus for generating tests for structures expressed as extended finite state machines |
-
1994
- 1994-10-11 US US08/321,185 patent/US5542043A/en not_active Expired - Lifetime
-
1995
- 1995-10-10 JP JP8512765A patent/JP2882687B2/ja not_active Expired - Fee Related
- 1995-10-10 CA CA002200557A patent/CA2200557C/en not_active Expired - Fee Related
- 1995-10-10 ES ES95940605T patent/ES2163533T3/es not_active Expired - Lifetime
- 1995-10-10 WO PCT/US1995/014283 patent/WO1996011438A1/en active IP Right Grant
- 1995-10-10 AT AT95940605T patent/ATE204088T1/de not_active IP Right Cessation
- 1995-10-10 EP EP95940605A patent/EP0786110B1/de not_active Expired - Lifetime
- 1995-10-10 DE DE69522114T patent/DE69522114T2/de not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2882687B2 (ja) | 1999-04-12 |
US5542043A (en) | 1996-07-30 |
ATE204088T1 (de) | 2001-08-15 |
EP0786110A1 (de) | 1997-07-30 |
ES2163533T3 (es) | 2002-02-01 |
JPH09511853A (ja) | 1997-11-25 |
WO1996011438A1 (en) | 1996-04-18 |
CA2200557A1 (en) | 1996-04-18 |
CA2200557C (en) | 2000-04-18 |
EP0786110B1 (de) | 2001-08-08 |
EP0786110A4 (de) | 1998-01-07 |
DE69522114D1 (de) | 2001-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69522114T2 (de) | Verfahren und system zur automatischen erzeugung von effizienten testfällen zum testen von softwaresystemen | |
DE69720353T2 (de) | System und Verfahren zum Erstellen eines Übersichtplanes zum Bereitstellen einer generischen Schnittstelle zwischen einer Anwendung und einem Prozess zum Erstellen eines Ausgabe-Übersichtplanes in einem Verwaltungssystem | |
DE3750492T2 (de) | Datenbanksystem für Parallelprozessor. | |
DE69322538T2 (de) | Methode und Prozessor zur Bearbeitung eines Programmes in Parallelbearbeitung | |
DE69704624T2 (de) | System und verfahren für dynamische datenreferenz in einer generischen datenaustauschumgebung | |
DE69511080T2 (de) | Schnittstellenanordnung und verfahren | |
DE69023420T2 (de) | Dienstprozessorprüfer. | |
DE10204657A1 (de) | Nachrichtenanalyseeinrichtung und Verfahren zum Anzeigen von Nachrichten | |
DE69532307T2 (de) | Ausdrucks-Propagierung für hierarchisches Netzlisten | |
DE3855494T2 (de) | Abfragevorrichtung und -methode | |
DE69224718T2 (de) | Klassifizierungsverfahren für Rechnerarchitekturen | |
DE112018002626T5 (de) | Verfahren und Systeme zur optimierten visuellen Zusammenfassung von Sequenzen mit zeitbezogenen Ereignisdaten | |
DE19513960A1 (de) | Abbildung eines Graphen in einen Speicher | |
DE69324742T2 (de) | Farbwerteverarbeitungsgerät zur Optimierung einer Verarbeitungsbeschreibung | |
DE69526165T2 (de) | Verfahren und Einrichtung für das Aufrufen von Objekten mit Schnittstellenvererbung | |
DE19933584A1 (de) | Verfahren zur kompakten Darstellung von Informationspaketen und deren Speicherung oder Übertragung | |
DE69213480T2 (de) | Verfahren und vorrichtung zur vereinfachung einer benutzererzeugung von entscheidungsfunktionen. | |
DE19538448A1 (de) | Datenbankmanagementsystem sowie Datenübertragungsverfahren | |
DE3876823T2 (de) | System zur verschliessungsverhuetung einer relationalen datenbank. | |
EP0664905B1 (de) | Verfahren zur durchfürhung von tests an auf einem rechner parallel ablauffähigen objekten eines objektorientierten programmes | |
DE10245530B4 (de) | Verfahren, Softwareprodukt und Computer zum Erzeugen eines IPDS-Datenstromes | |
DE69228165T2 (de) | Zeichenverarbeitung in einem Fenstersystem | |
DE60010491T2 (de) | Verfahren und vorrichtung zum erzeugen von halbtongerasterten farbauszügen für eine bildausgabevorrichtung | |
DE102009019442A1 (de) | Testdatengenerator | |
DE102004053605A1 (de) | Dynamische Signalverlaufsressourcenverwaltung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8327 | Change in the person/name/address of the patent owner |
Owner name: TELCORDIA LICENSING COMPANY LLC, PISCATAWAY, N, US |
|
R082 | Change of representative |
Ref document number: 786110 Country of ref document: EP Representative=s name: BETTEN & RESCH, DE |