WO2007014874A2 - Method for automatic testing of a software configuration - Google Patents

Method for automatic testing of a software configuration Download PDF

Info

Publication number
WO2007014874A2
WO2007014874A2 PCT/EP2006/064611 EP2006064611W WO2007014874A2 WO 2007014874 A2 WO2007014874 A2 WO 2007014874A2 EP 2006064611 W EP2006064611 W EP 2006064611W WO 2007014874 A2 WO2007014874 A2 WO 2007014874A2
Authority
WO
WIPO (PCT)
Prior art keywords
software
configuration
swk
software configuration
swe
Prior art date
Application number
PCT/EP2006/064611
Other languages
German (de)
French (fr)
Other versions
WO2007014874A3 (en
Inventor
Horst Eckardt
Sieglinde Kranz
Reiner Müller
Original Assignee
Siemens Aktiengesellschaft
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens Aktiengesellschaft filed Critical Siemens Aktiengesellschaft
Priority to EP06777945A priority Critical patent/EP1913469A2/en
Publication of WO2007014874A2 publication Critical patent/WO2007014874A2/en
Publication of WO2007014874A3 publication Critical patent/WO2007014874A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/368Test management for test version control, e.g. updating test cases to a new software version
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Definitions

  • the invention relates to a method for automated testing of a software configuration consisting of several software elements.
  • a software configuration is an identified and formally approved set of software elements that are aligned and have a specific function.
  • Software configuration management identifies and manages software configurations.
  • Configuration management generally handles planning, configuration identification, configuration change, and configuration administration. When changing the configuration, a processing, tracking and monitoring of all changes takes place up to a documented conclusion.
  • CM systems such as CM-Synergy, Clear Case or CVS (Concurrent Version System) are used, among other things, as configuration management systems.
  • requirements are formulated for a software package or a project, and these requirements are correspondingly implemented in software management elements in a corresponding administration within the configuration management system.
  • the developers working on the project program the various software elements in a high-level programming language as source code.
  • the software elements which have been revised according to the requirements, are first tested individually for their ability to run in a single test. After a successful individual test of a software element, the software elements programmed in the source code are transferred to the administration of the configuration management system.
  • the assignment of the change requests transferred to the developer (change request) for changing a software element to the change made in the software element is the responsibility of each individual developer. As a result, incorrect releases of code programmed in the source code are frequently Goods elements. This endangers further steps in the software development process.
  • FIG. 1 shows a so-called build process and a software element according to the prior art.
  • a developer revises any software element in the source code (QC), such as a module, a file or a document, and enters it into an editor.
  • QC source code
  • a compiler translates the source code into a machine-readable object code.
  • a linker or a binding program then supplies an executable software element.
  • Each software element SWE is individually developed according to the required changes, as shown schematically in Figure 2. Based on an existing version V N of the software element, the developer changes the source code of the software element, thus creating a software element with an increased version number V N + 1 .
  • a revised software element is programmed in the source code QC and a machine-readable in a build process, as shown in FIG Software element generated in the object code.
  • This software element undergoes a test run and determines if the software element is self-executable in a local test environment. If this is the case, the executable software element is stored in a database or a repository for further use. If the revised software item is not executable or functional, the developer must revise the programmed software item to reflect the requested change requests until the software item proves to be executable and functional in the test run.
  • Figure 4 shows the structure of a software configuration as used in a conventional configuration management system.
  • Such a software configuration SWK consists of several data fields for the software elements contained in the software configuration.
  • the software configuration of three software elements SWE namely SWEi, SWEj, SWE K is.
  • the version number V of the associated software element is stored.
  • the version number V of the associated software element is stored.
  • Version V x for the software element SWEi, the version number V ⁇ for the software element SWEj and the version number V z for the software element SWE K stored.
  • Figure 5 shows schematically the evolutionary evolution over time of the various software element versions stored in a database of the configuration management system.
  • the current most recently successfully tested software configuration of the present day SWK day comprises the software element SWEi in the version V x , the software element SWE-, in the version V ⁇ the software element SWE k in the version V 2 .
  • FIG. 6 shows the procedure for testing a software configuration SWK consisting of several software elements SWE according to the prior art.
  • the current software configuration SWK day which is programmed in the source code, is compiled and tested in a build process to an executable configuration SWK dayEXE .
  • the current software configuration is functional, it will be marked as successfully tested and stored in a database or repository. If, however, during the test run, the software configuration revised in the source code shows that it is not executable or does not function, a manual procedure takes place on the basis of the error logs generated in the build process and in the test run. Quick troubleshooting by the developer. The test is performed until the test run indicates that the revised software configuration is executable.
  • FIG. 7 shows an example for explaining the problem occurring in this case.
  • a software configuration V3, V3, V4 of a software configuration SWK consisting of three software elements SWE 1 , SWE 11 , SWE k was successfully tested at a previous time, for example on the previous day DAY- 1 .
  • the developers programmed a revised version V4 for the SWE 1 software element and a revised version V5 for the SWE R software element according to the change requests received while the software element SWE- was not reprogrammed has been.
  • the version V4 of the software element SWE 1 and the version V5 of the software element SWE k are first tested for their operational capability.
  • the invention provides a method for the automated testing of a software configuration (SWK) consisting of a number of software elements (SWE), starting from a formed initial software configuration which contains the current executable versions (V N ) of all software elements (SWE). includes, the software elements (SWE) respectively by the previous version (V N _i) of the respective software element iteratively replaced until the tested software configuration (SWK) is an executable software configuration.
  • SWK software configuration
  • SWE software elements
  • an up-to-date version of the software element is generated in response to an incoming change request for a software element (change request) based on an existing version of the software element.
  • the current version of the software element is individually tested for its operational capability.
  • each change request of a software element has a description of the change to be made to the software element and a status field for indicating a state of the change request.
  • each change request takes one of four different states, namely a first state indicating that the change request is in progress, a second state indicating that the change request has changed Software element successfully tested and executable by itself, a third state indicating that the software element modified to the change request has been successfully tested in the software configuration under test, and a fourth state indicating that the change has occurred - Requested changed software element in the software configuration to be tested has not been tested successfully.
  • the iterative replacements of the software element versions made in order to Software configuration to arrive at an executable software configuration logged and stored.
  • the change request which has led to a non-executable software configuration is determined on the basis of the logged replacements.
  • the software configuration (SWK) has data fields which specify the version number of the software elements contained therein.
  • the software configuration additionally has a status field which indicates whether the software configuration is executable.
  • FIG. 1 shows a build process for a software element according to the prior art
  • FIG. 2 shows the development of various software element versions according to the prior art
  • FIG. 3 shows a build process and a test procedure for a
  • FIG. 4 shows the data structure of a conventional software configuration (SWK) according to the prior art
  • Figure 5 is a diagram for explaining the stored in a conventional configuration management system
  • FIG. 6 shows a flow chart for illustrating a conventional procedure for checking the functional capability of a software configuration according to the prior art
  • Figure 7 is an example for explaining the problem underlying the invention.
  • FIG. 8 shows a flow diagram of a preferred embodiment of the method according to the invention for the automated process
  • FIG. 9 shows the data structure of a software element change request used in the method according to the invention (change request).
  • FIG. 10 shows the data structure of a software configuration used in the method according to the invention.
  • FIG. 11 shows an example for explaining the mode of operation of the method according to the invention for testing a software configuration.
  • the method according to the invention for testing a software configuration SWK is an automatic method which requires no manual troubleshooting by a developer.
  • the inventive method includes an automatic rollback mechanism that provides a current executable software configuration.
  • an initial software configuration is generated.
  • SWK day : SWK day . i
  • Non-integratable change requests CR are change requests for changing a software element SWE that lead to a non-executable software configuration SWK.
  • step S3 the initial software configuration is first subjected to a build process and tested.
  • step S4 it is checked whether the last tested software configuration SWK is executable or functional or not.
  • the change request entries are updated in a step S5, i. H. the status field of the change requests is updated.
  • the change request CR can take one of four different states.
  • a change request CR or a software element change request consists, on the one hand, of a description of the changes to the software element SWE to be made by the developer and of a status field for indicating a state of the change requests.
  • the change request content is the current description of the software element change to be made by the developer in a high level programming language.
  • each software element change request CR additionally has a status field for indicating a state of the change requests.
  • each change request takes one of four different states.
  • a first state indicates that the change request CR is in progress.
  • a second state indicates that the software element SWE changed in response to the change request CR has been sent to a
  • a third state of the change request CR indicates that the software element changed in response to the change request has been successfully tested in the software configuration SWK under test.
  • a fourth state indicates that the software element SWE changed to the change request CR has not been successfully tested in the software configuration SWK to be tested.
  • step S5 after successful tests of the software configuration SWK, the status fields of all software element change requests of those software elements SWE contained in the successfully tested software configuration SWK are transferred to the third state.
  • FIG. 10 shows the data structure of a software configuration SWK.
  • the software configuration SWK comprises the version numbers V of the software elements SWE contained therein.
  • an identification of the change request (CR) or software element change request that led to the associated version V is stored for the version number V.
  • the software configuration data record SWK contains a status field which indicates the state of the software configuration.
  • the software configuration SWK assumes three different states, namely a first state indicating that the software configuration SWK has not yet been tested, a second state indicating that the software configuration SWK is tested but still has errors, and a third state indicating that the software configuration SWK has been successfully tested.
  • a step S6 the status field of the successfully tested software configuration is set to the status "successfully tested" and the software configuration SWK is stored in a database of the software configuration management.
  • step S7 a list of the nonintegratable change requests CR is additionally stored. If it is determined in step S4 that the initial software configuration generated in step S1 is not functional after the build process, an automatic rollback occurs in step S8. For this purpose, based on the initial software configuration formed, which includes the current self-executable versions of all software elements SWE, each software element is iteratively replaced by a previous version until the tested software configuration is executable.
  • step S3 After each iterative replacement of a software element with a previous version, a new build process and a new test run occur in step S3.
  • the initial software configuration consists of:
  • the software configuration is set to SWK D i in a first iteration step:
  • SWK D1 V4, V3, V4.
  • the iteration process, d. H. the loop with the steps S3, S4, S8 is run through until a successful test run can be carried out. This is the case at the latest when the status of the last successful build or the last successfully completed test run is reached. In this case, all newly introduced changes to the software elements, i. H. all new versions, withdrawn. In the example shown in FIG. 11, this is the case when all three software elements have been taken back to the version V3. However, this represents the exceptional case. Usually, after a few iterative replacements of software elements by previous versions, an executable software configuration is achieved, which can be delivered from the initial software configuration.
  • the iterative replacements of the software element versions that are required in order to move from the initial software constellation to a finally executable software constellation are logged and buffered. Based on the logged replacements, those change requests or change requests CR are determined which have led to a non-executable SWK software constellation.
  • the developer responsible for the software element SWEi can then program a new version V5 goal-oriented, which possibly leads to an executable software constellation SWK.
  • SWE software components actually meet or meet the requirements formulated in the specifications.
  • the errors occurring during the build process can be recognized at an early point in time and can thus be remedied by the developer at an early stage.

Abstract

The invention relates to a method for automatic testing of software configurations (SWK) comprising several software elements (SWE). Starting with an initial software configuration, comprising the current independently-executable versions (V<SUB>N</SUB>) of all software elements in the software configuration, the software elements (SWE) are each iteratively replaced by a previous version (VN <SUB>N-1</SUB>) of said software element until the software configuration (SEK) under test is an executable software configuration (SWK).

Description

Beschreibungdescription
Verfahren zum automatisierten Testen einer SoftwarekonfigurationMethod for automated testing of a software configuration
Die Erfindung betrifft ein Verfahren zum automatisierten Testen einer aus mehreren Softwareelementen bestehenden Softwarekonfiguration .The invention relates to a method for automated testing of a software configuration consisting of several software elements.
Komplexe Software-Produkte bestehen aus einer Vielzahl von einzelnen Softwareelementen, wie beispielsweise Module, Klassen, Dateien oder Dokumente. Diese Vielzahl von Softwareelementen erhöht sich weiterhin dadurch, dass im Laufe der Zeit bei der Software-Produktentwicklung für jedes Soft- wareelement mehrere Softwareversionen entstehen, die sich durch Änderungen bzw. Ergänzungen von den ursprünglichen Softwareelementversionen unterscheiden. Weiterhin kann es für unterschiedliche Länder oder Kunden spezifische Versionen der Softwareelemente geben.Complex software products consist of a multitude of individual software elements, such as modules, classes, files or documents. This multiplicity of software elements is further increased by the fact that over the course of time in software product development, several software versions are created for each software element, which differ from the original software element versions due to changes or additions. Furthermore, there may be specific versions of the software elements for different countries or customers.
Für die Wartung und Pflege eines Softwarepakets bzw. einer Softwarekonfiguration, die aus mehreren Softwareelementen besteht, sind Informationen darüber zur Verfügung zu stellen, welche Versionen bzw. Varianten innerhalb der Software- konfiguration enthalten sind.For the maintenance and care of a software package or a software configuration consisting of several software elements, information is to be provided on which versions or variants are contained within the software configuration.
Unter einer Softwarekonfiguration versteht man eine identifizierte und formal freigegebene Menge von Softwareelementen, die aufeinander abgestimmt sind und eine bestimmte Funktion erfüllen. Das Softwarekonfigurationsmanagement i- dentifiziert und verwaltet Softwarekonfigurationen. Das Konfigurationsmanagement übernimmt im Allgemeinen die Planung, die Konfigurationsidentifikation, die Konfigurationsänderung und die Konfigurationsadministration. Bei der Konfigurati- onsänderung erfolgt eine Bearbeitung, Verfolgung und Überwachung aller Änderungen bis zu einem dokumentierten Ab- schluss . Beim heutigen Software-Entwicklungsprozess werden unter Anderem so genannte Konfigurationsmanagementsysteme CM-Systeme wie CM-Synergy, Clear Case oder CVS (Concurrent Version Sys- tem) eingesetzt. Diese Software-Tools dienen dazu, alle projektrelevanten Dokumente, Dokumentationen, Anforderungen sowie Änderungen, Kommentare, Softwarequellen jederzeit und für jeden zurückliegenden Zeitpunkt zugänglich zu machen. Darüber hinaus dienen diese Software-Tools zur Sicherung al- ler Projektdokumente und dazu, den Zugriff auf verschiedene Release-Versionen zu ermöglichen, sei es zu Dokumentationszwecken oder auch für den Fall von Gewährleistungsansprüchen. Die Konfigurationsmanagementsysteme bieten zudem dem Entwickler die Möglichkeit, individuelle nicht freigegebene bzw. private Versionen der Softwareelemente als Back-up zur Sicherung abzuspeichern.A software configuration is an identified and formally approved set of software elements that are aligned and have a specific function. Software configuration management identifies and manages software configurations. Configuration management generally handles planning, configuration identification, configuration change, and configuration administration. When changing the configuration, a processing, tracking and monitoring of all changes takes place up to a documented conclusion. In today's software development process, CM systems such as CM-Synergy, Clear Case or CVS (Concurrent Version System) are used, among other things, as configuration management systems. These software tools are used to make all project-relevant documents, documentation, requirements as well as changes, comments, software sources accessible at any time and for any time in the past. In addition, these software tools are used to back up all project documents and to allow access to various release versions, either for documentation purposes or in the case of warranty claims. The configuration management systems also offer the developer the option of saving individual non-released or private versions of the software elements as backups for back-up purposes.
Während der Software-Entwicklung werden Anforderungen an ein Softwarepaket bzw. ein Projekt formuliert und diese Anforde- rungen werden in einer entsprechenden Verwaltung innerhalb des Konfigurationsmanagementsystems in Softwareelementen entsprechend umgesetzt. Die an dem Projekt arbeitenden Entwickler programmieren die verschiedenen Softwareelemente in einer höheren Programmiersprache als Quellcode. Die entspre- chend den Anforderungen überarbeiteten Softwareelemente werden zunächst für sich alleine auf ihre Ablauffähigkeit hin in einem Einzeltest getestet. Nach einem erfolgreichen Einzeltest eines Softwareelementes werden die im Quellcode programmierten Softwareelemente der Verwaltung des Konfigurati- onsmanagementsystems übergeben. Dabei liegt bei herkömmlichen Konfigurationsmanagementsystemen die Zuordnung der dem Entwickler übergebenen Änderungsanforderungen (Change Re- quest) zur Änderung eines Softwareelementes zu der in dem Softwareelement durchgeführten Änderung in der Verantwortung jeden einzelnen Entwicklers. Es kommt daher häufig zu fehlerhaften Freigaben von im Quellcode programmierten Soft- Wareelementen. Hierdurch werden weitere Schritte im Soft- ware-Entwicklungsprozess gefährdet .During software development, requirements are formulated for a software package or a project, and these requirements are correspondingly implemented in software management elements in a corresponding administration within the configuration management system. The developers working on the project program the various software elements in a high-level programming language as source code. The software elements, which have been revised according to the requirements, are first tested individually for their ability to run in a single test. After a successful individual test of a software element, the software elements programmed in the source code are transferred to the administration of the configuration management system. In the case of conventional configuration management systems, the assignment of the change requests transferred to the developer (change request) for changing a software element to the change made in the software element is the responsibility of each individual developer. As a result, incorrect releases of code programmed in the source code are frequently Goods elements. This endangers further steps in the software development process.
Figur 1 zeigt einen so genannten Buildprozess und ein Soft- wareelement nach dem Stand der Technik. Auf eine Änderungsanforderung bzw. auf einen Change Request hin überarbeitet ein Entwickler im Quellcode (QC) ein beliebiges Softwareelement, wie beispielsweise ein Modul, eine Datei oder ein Dokument und gibt diese in einen Editor ein. Ein Compiler ü- bersetzt den Quellcode in einen maschinenlesbaren Objektcode. Ein Linker bzw. ein Bindeprogramm liefert dann ein ausführbares Softwareelement.FIG. 1 shows a so-called build process and a software element according to the prior art. In response to a change request or a change request, a developer revises any software element in the source code (QC), such as a module, a file or a document, and enters it into an editor. A compiler translates the source code into a machine-readable object code. A linker or a binding program then supplies an executable software element.
Jedes Softwareelement SWE wird für sich einzeln entsprechend den geforderten Änderungen weiterentwickelt, wie dies schematisch in Figur 2 dargestellt ist. Basierend auf einer bestehenden Version VN des Softwareelements ändert der Entwickler den Quellcode des Softwareelementes und schafft so ein Softwareelement mit einer erhöhten Versionsnummer VN+1.Each software element SWE is individually developed according to the required changes, as shown schematically in Figure 2. Based on an existing version V N of the software element, the developer changes the source code of the software element, thus creating a software element with an increased version number V N + 1 .
Wie in Figur 3 dargestellt ist, wird auf einen Change Request (CR) bzw. auf eine Änderungsanforderung hin durch einen Programmierer bzw. Entwickler ein überarbeitetes Softwareelement im Quellcode QC programmiert und daraus in einem Buildprozess, wie er in Figur 1 dargestellt ist, ein maschinenlesbares Softwareelement im Objektcode generiert. Dieses Softwareelement wird einem Testlauf unterzogen und es wird festgestellt, ob das Softwareelement für sich allein in einer lokalen Testumgebung ablauffähig ist. Ist dies der Fall, wird das ablauffähige Softwareelement in einer Datenbank bzw. einem Repository zur weiteren Verwendung gespeichert. Ist das überarbeitete Softwareelement nicht ablauffähig bzw. funktionsfähig, muss der Entwickler das programmierte Softwareelement im Hinblick auf die gestellte Änderungsanforde- rungen überarbeiten, bis sich das Softwareelement im Testlauf als ablauffähig und funktionsfähig erweist. Figur 4 zeigt die Struktur einer Softwarekonfiguration, wie sie in einem herkömmlichen Konfigurationsmanagementsystem verwendet wird. Eine solche Softwarekonfiguration SWK besteht aus mehreren Datenfeldern für die in der Softwarekon- figuration enthaltenen Softwareelemente. Bei dem in Figur 4 dargestellten Beispiel besteht die Softwarekonfiguration aus drei Softwareelementen SWE, nämlich SWEi, SWEj, SWEK. Für jedes Softwareelement SWE der Softwarekonfiguration ist die Versionsnummer V des zugehörigen Softwareelementes gespei- chert. Bei dem in Figur 4 dargestellten Beispiel ist dieAs shown in FIG. 3, on a change request (CR) or on a change request by a programmer or developer, a revised software element is programmed in the source code QC and a machine-readable in a build process, as shown in FIG Software element generated in the object code. This software element undergoes a test run and determines if the software element is self-executable in a local test environment. If this is the case, the executable software element is stored in a database or a repository for further use. If the revised software item is not executable or functional, the developer must revise the programmed software item to reflect the requested change requests until the software item proves to be executable and functional in the test run. Figure 4 shows the structure of a software configuration as used in a conventional configuration management system. Such a software configuration SWK consists of several data fields for the software elements contained in the software configuration. In the example shown in Figure 4, the software configuration of three software elements SWE, namely SWEi, SWEj, SWE K is. For each software element SWE of the software configuration, the version number V of the associated software element is stored. In the example shown in Figure 4 is the
Version Vx für das Softwareelement SWEi, die Versionsnummer Vγ für das Softwareelement SWEj und die Versionsnummer Vz für das Softwareelement SWEK gespeichert.Version V x for the software element SWEi, the version number V γ for the software element SWEj and the version number V z for the software element SWE K stored.
Figur 5 zeigt schematisch die evolutionäre Entwicklung der verschiedenen Softwareelement-Versionen im Zeitverlauf, die in einer Datenbank des Konfigurationsmanagementsystems gespeichert sind. Bei dem in Figur 5 dargestellten Beispiel umfasst die aktuelle zuletzt erfolgreich getestete Software- konfiguration des heutigen Tages SWKday das Softwareelement SWEi in der Version Vx, das Softwareelement SWE-, in der Version Vγ das Softwareelement SWEk in der Version V2.Figure 5 shows schematically the evolutionary evolution over time of the various software element versions stored in a database of the configuration management system. In the example shown in FIG. 5, the current most recently successfully tested software configuration of the present day SWK day comprises the software element SWEi in the version V x , the software element SWE-, in the version V γ the software element SWE k in the version V 2 .
Figur 6 zeigt die Vorgehensweise zum Testen einer aus mehre- ren Softwareelementen SWE bestehenden Softwarekonfigurationen SWK nach dem Stand der Technik.FIG. 6 shows the procedure for testing a software configuration SWK consisting of several software elements SWE according to the prior art.
Die aktuelle Softwarekonfiguration SWKday, die im Quellcode programmiert ist, wird in einem Buildprozess zu einer ab- lauffähigen Konfiguration SWKdayEXE kompiliert und getestet.The current software configuration SWK day , which is programmed in the source code, is compiled and tested in a build process to an executable configuration SWK dayEXE .
Ist die aktuelle Softwarekonfiguration funktionsfähig, wird sie als erfolgreich getestet gekennzeichnet und in einer Datenbank bzw. Repository gespeichert. Ergibt sich bei dem Testlauf der im Quellcode überarbeiteten Softwarekonfigura- tion allerdings, dass diese nicht ablauffähig bzw. nicht funktionsfähig ist, erfolgt auf Grundlage der im Buildprozess und im Testlauf generierten Fehlerprotokolle eine manu- eile Fehlersuche durch den Entwickler. Der Test wird so lange durchgeführt, bis der Testlauf angibt, dass die überarbeitete Softwarekonfiguration ablauffähig ist.If the current software configuration is functional, it will be marked as successfully tested and stored in a database or repository. If, however, during the test run, the software configuration revised in the source code shows that it is not executable or does not function, a manual procedure takes place on the basis of the error logs generated in the build process and in the test run. Quick troubleshooting by the developer. The test is performed until the test run indicates that the revised software configuration is executable.
Figur 7 zeigt ein Beispiel zur Erläuterung der dabei auftretenden Problematik. Bei dem in Figur 7 dargestellten Beispiel wurde zu einem vorherigen Zeitpunkt, beispielsweise am vorherigen Tag DAY-I eine Softwarekonfiguration V3, V3, V4 einer aus drei Softwareelementen SWE1, SWE11, SWEk bestehenden Softwarekonfiguration SWK erfolgreich getestet. Im Laufe einer bestimmten Entwicklungszeit, beispielsweise im Laufe eines Tages, haben die Entwickler für das Softwareelement SWE1 eine überarbeitete Version V4 und für das Softwareelement SWER eine überarbeitete Version V5 entsprechend den erhalte- nen Änderungsanforderungen programmiert, während das Softwareelement SWE-, nicht umprogrammiert worden ist. Die Version V4 des Softwareelementes SWE1 und die Version V5 des Softwareelementes SWEk werden zunächst für sich auf ihre Ablauffähigkeit hin getestet.FIG. 7 shows an example for explaining the problem occurring in this case. In the example shown in FIG. 7, a software configuration V3, V3, V4 of a software configuration SWK consisting of three software elements SWE 1 , SWE 11 , SWE k was successfully tested at a previous time, for example on the previous day DAY- 1 . Over a period of development, for example, over the course of a day, the developers programmed a revised version V4 for the SWE 1 software element and a revised version V5 for the SWE R software element according to the change requests received while the software element SWE- was not reprogrammed has been. The version V4 of the software element SWE 1 and the version V5 of the software element SWE k are first tested for their operational capability.
Nachdem feststeht, dass alle Softwareelemente SWE1, SWE11, SWEk in ihrer letzten Version für sich alleine ablauffähig sind, wird die aktuellste Softwarekonfiguration SWKday = V4, V3, V5 in ihrer Gesamtheit auf ihre Ablauffähigkeit hin, wie in Figur 6 dargestellt, getestet. Ergibt sich bei diesemAfter it has been established that all software elements SWE 1 , SWE 11 , SWE k in their last version can run on their own, the most up-to-date software configuration SWK day = V4, V3, V5 in their entirety is checked for their runnability, as shown in FIG. tested. Results in this
Test, dass die aktuellste Softwarekonfiguration SWKday nicht funktionsfähig ist, erfolgt manuell eine Fehlersuche auf Grundlage der erzeugten Fehlerprotokolle durch die verschiedenen Entwickler, wie es in Figur 6 dargestellt ist.Test that the most recent software configuration SWK day is not functional, manually troubleshooting based on the generated error logs by the various developers, as shown in Figure 6.
Die in Figur 6 dargestellte Vorgehensweise bei einem herkömmlichen Konfigurationsmanagementsystem nach dem Stand der Technik weist einige gravierende Nachteile auf.The procedure shown in Figure 6 in a conventional configuration management system according to the prior art has some serious disadvantages.
Das Auswerten der Fehlerprotokolle durch den Entwickler ist naturgemäß sehr zeitaufwändig. Darüber hinaus ist die Vorgehensweise sehr unsicher und führt zu einer fehlerhaften Freigabe einer Softwarekonfiguration, die nicht fehlerfrei funktioniert bzw. den geforderten Änderungen nicht entspricht. Darüber hinaus erfordert die in Figur 6 dargestellte herkömmliche Vorgehensweise eine aufwändige Abstimmung bzw. Koordination zwischen den verschiedenen Entwicklern, die die verschiedenen Softwareelemente bearbeiten.The evaluation of the error logs by the developer is naturally very time consuming. In addition, the procedure is very uncertain and leads to a faulty Release of a software configuration that does not work properly or does not meet the required changes. In addition, the conventional approach shown in Figure 6 requires elaborate coordination between the various developers handling the various software elements.
Es ist daher die Aufgabe der vorliegenden Erfindung, ein Verfahren zum Testen einer aus mehreren Softwareelementen bestehenden Softwarekonfiguration zu schaffen, welches automatisch ohne manuelle Fehlersuche durch einen Entwickler durchführbar ist.It is therefore the object of the present invention to provide a method for testing a software configuration consisting of multiple software elements, which is automatically feasible without manual debugging by a developer.
Diese Aufgabe wird erfindungsgemäß durch ein Verfahren mit den im Patentanspruch 1 angegebenen Merkmalen gelöst.This object is achieved by a method having the features specified in claim 1.
Die Erfindung schafft ein Verfahren zum automatisierten Testen einer aus mehreren Softwareelementen (SWE) bestehenden Softwarekonfigurationen (SWK) , wobei ausgehend von einer ge- bildeten Anfangs-Softwarekonfiguration, welche die aktuellen für sich allein jeweils ablauffähigen Versionen (VN) aller Softwareelemente (SWE) umfasst, die Softwareelemente (SWE) jeweils durch die vorhergehende Version (VN_i) des jeweiligen Softwareelementes iterativ so lange ersetzt werden, bis die getestete Softwarekonfiguration (SWK) eine ablauffähige Softwarekonfiguration ist.The invention provides a method for the automated testing of a software configuration (SWK) consisting of a number of software elements (SWE), starting from a formed initial software configuration which contains the current executable versions (V N ) of all software elements (SWE). includes, the software elements (SWE) respectively by the previous version (V N _i) of the respective software element iteratively replaced until the tested software configuration (SWK) is an executable software configuration.
Durch den bei dem erfindungsgemäßen Verfahren eingesetzten automatisierten Roll-back-Mechanismus, d. h. durch die ite- rative Ersetzung der Softwareelemente durch die zugehörige Vorgängerversion so lange, bis die getestete Softwarekonfiguration eine ablauffähige Softwarekonfiguration ist, ist zu jedem Zeitpunkt gewährleistet, dass eine auslieferbare Softwarekonfiguration zur Verfügung steht, ohne dass es einer lästigen, kostspieligen und nervenaufreibenden manuellen Fehlerbehandlung durch die Entwickler bedarf. Bei einer bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens wird in Reaktion auf eine eingehende Änderungsanforderung für ein Softwareelement (Change Request) basierend auf einer bestehenden Version des Softwareelementes eine ak- tuelle Version des Softwareelementes erzeugt.Due to the automated roll-back mechanism used in the method according to the invention, ie by the iterative replacement of the software elements by the associated previous version until the tested software configuration is an executable software configuration, it is ensured at all times that a software configuration that can be delivered for Is available without the hassle, costly and nerve-wracking manual error handling by the developer. In a preferred embodiment of the method according to the invention, an up-to-date version of the software element is generated in response to an incoming change request for a software element (change request) based on an existing version of the software element.
Bei einer bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens wird die aktuelle Version des Softwareelementes jeweils für sich auf ihre Ablauffähigkeit hin getestet.In a preferred embodiment of the method according to the invention, the current version of the software element is individually tested for its operational capability.
Bei einer bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens weist jede Änderungsanforderung (Change Request) eines Softwareelementes (SWE) eine Beschreibung der durchzuführenden Änderung des Softwareelementes und ein Statusfeld zur Angabe eines Zustands der Änderungsanforderung auf.In a preferred embodiment of the method according to the invention, each change request of a software element (SWE) has a description of the change to be made to the software element and a status field for indicating a state of the change request.
Bei einer bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens nimmt jede Änderungsanforderung (Change Request) einen von vier verschiedenen Zuständen ein, nämlich einen ersten Zustand, der anzeigt, dass die Änderungsanforderung in Bearbeitung ist, einen zweiten Zustand, der anzeigt, dass das auf die Änderungsanforderung hin geänderte Softwareelement erfolgreich getestet worden ist und für sich alleine ablauffähig ist, einen dritten Zustand, der anzeigt, dass das auf die Änderungsanforderung hin geänderte Softwareelement in der zu testenden Softwarekonfiguration erfolgreich getestet worden ist, und einen vierten Zustand, der anzeigt, dass das auf die Ände- rungsanforderung hin geänderte Softwareelement in der zu testenden Softwarekonfiguration nicht erfolgreich getestet worden ist.In a preferred embodiment of the method according to the invention, each change request takes one of four different states, namely a first state indicating that the change request is in progress, a second state indicating that the change request has changed Software element successfully tested and executable by itself, a third state indicating that the software element modified to the change request has been successfully tested in the software configuration under test, and a fourth state indicating that the change has occurred - Requested changed software element in the software configuration to be tested has not been tested successfully.
Bei einer bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens werden die vorgenommenen iterativen Ersetzungen der Softwareelement-Versionen, um von der Anfangs- Softwarekonfiguration zu einer ablauffähigen Softwarekonfiguration zu gelangen, protokolliert und gespeichert.In a preferred embodiment of the method according to the invention, the iterative replacements of the software element versions made in order to Software configuration to arrive at an executable software configuration, logged and stored.
Bei einer bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens wird auf Grundlage der protokollierten Ersetzungen diejenige Änderungsanforderung (Change Request) ermittelt, die zu einer nicht ablauffähigen Softwarekonfiguration geführt hat.In a preferred embodiment of the method according to the invention, the change request which has led to a non-executable software configuration is determined on the basis of the logged replacements.
Bei einer bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens weist die Softwarekonfiguration (SWK) Datenfelder auf, welche die Versionsnummer der darin enthaltenen Softwareelemente angeben.In a preferred embodiment of the method according to the invention, the software configuration (SWK) has data fields which specify the version number of the software elements contained therein.
Bei einer bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens weist die Softwarekonfiguration zusätzlich ein Statusfeld auf, welches anzeigt, ob die Softwarekonfiguration ablauffähig ist.In a preferred embodiment of the method according to the invention, the software configuration additionally has a status field which indicates whether the software configuration is executable.
Im Weiteren werden bevorzugte Ausführungsformen des erfindungsgemäßen Verfahrens unter Bezugnahme auf die beigefügten Figuren zur Erläuterung erfindungswesentlicher Merkmale beschrieben.In addition, preferred embodiments of the method according to the invention will be described with reference to the attached figures to explain features essential to the invention.
Es zeigen:Show it:
Figur 1 einen Buildprozess für ein Softwareelement nach dem Stand der Technik;FIG. 1 shows a build process for a software element according to the prior art;
Figur 2 die Entstehung verschiedener Softwareelement- Versionen nach dem Stand der Technik;FIG. 2 shows the development of various software element versions according to the prior art;
Figur 3 einen Buildprozess und einen Testvorgang für einFIG. 3 shows a build process and a test procedure for a
Softwareelement nach dem Stand der Technik; Figur 4 die Datenstruktur einer herkömmlichen Softwarekonfiguration (SWK) nach dem Stand der Technik;Software element according to the prior art; Figure 4 shows the data structure of a conventional software configuration (SWK) according to the prior art;
Figur 5 ein Diagramm zur Erläuterung der in einem herkömmli- chen Konfigurationsmanagementsystem gespeichertenFigure 5 is a diagram for explaining the stored in a conventional configuration management system
Daten zur Beschreibung einer Softwarekonfiguration;Data describing a software configuration;
Figur 6 ein Ablaufdiagramm zur Darstellung eines herkömmlichen Vorgehensweise beim Überprüfen der Funktionsfä- higkeit einer Softwarekonfiguration nach dem Stand der Technik;FIG. 6 shows a flow chart for illustrating a conventional procedure for checking the functional capability of a software configuration according to the prior art;
Figur 7 ein Beispiel zur Erläuterung der der Erfindung zugrunde liegende Problematik;Figure 7 is an example for explaining the problem underlying the invention;
Figur 8 ein Ablaufdiagramm einer bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens zum automatisiertenFIG. 8 shows a flow diagram of a preferred embodiment of the method according to the invention for the automated process
Testen einer Softwarekonfiguration;Testing a software configuration;
Figur 9 die Datenstruktur einer bei dem erfindungsgemäßen Verfahren eingesetzten Softwareelement- Änderungsanforderungen (Change Request) ;FIG. 9 shows the data structure of a software element change request used in the method according to the invention (change request);
Figur 10 die Datenstruktur einer bei dem erfindungsgemäßen Verfahren eingesetzten Softwarekonfiguration;FIG. 10 shows the data structure of a software configuration used in the method according to the invention;
Figur 11 in Beispiel zur Erläuterung der Funktionsweise des erfindungsgemäßen Verfahrens zum Testen einer Softwarekonfiguration .FIG. 11 shows an example for explaining the mode of operation of the method according to the invention for testing a software configuration.
Wie man aus Figur 8 erkennen kann, handelt es sich bei dem erfindungsgemäßen Verfahren zum Testen einer Softwarekonfiguration SWK um ein automatisches Verfahren, welches keine manuelle Fehlersuche durch einen Entwickler erfordert. Das erfindungsgemäße Verfahren enthält einen automatischen Rollback-Mechanismus, der eine aktuelle ablauffähige Softwarekonfiguration liefert. Zunächst wird nach einem Startschritt SO in einem Schritt Sl eine Anfangs-Softwarekonfiguration erzeugt. Hierzu wird die Softwarekonfiguration auf die beispielsweise am Tag zuvor bereits erfolgreich getestete Softwarekonfiguration gesetzt, beispielsweise auf die in Figur 11 dargestellte Softwarekonfiguration SWKD-! = V3, V3, V3.As can be seen from FIG. 8, the method according to the invention for testing a software configuration SWK is an automatic method which requires no manual troubleshooting by a developer. The inventive method includes an automatic rollback mechanism that provides a current executable software configuration. First, after a start step SO in a step Sl, an initial software configuration is generated. For this purpose, the software configuration is set to the software configuration that has already been successfully tested the day before, for example to the software configuration SWK D shown in FIG. 11 ! = V3, V3, V3.
SWKday : = SWKday . iSWK day : = SWK day . i
Anschließend werden für alle Softwareelemente SWE, die in der zu testenden Softwarekonfiguration SWE enthalten sind, geprüft, ob eine Nachfolgeversion des Softwareelementes e- xistiert. Sofern dies der Fall ist, wird das Softwareelement durch die überarbeitet Nachfolgeversion ersetzt:Subsequently, for all software elements SWE which are contained in the software configuration SWE to be tested, it is checked whether a subsequent version of the software element exists. If this is the case, the software element is replaced by the revised successor version:
Für alle SWEQC aus SWKday falls Nachfolgeversion von SWE 'QnCc istiert ersetzen SWΕ 'QC durch i SJW f f JE-J QTCFor all SWE QC from SWK day if successor version of SWE 'Q n C c e χ is substituted, replace SW Ε Q C with i SJW ff JE-J QTC
Man gelangt so zu der Anfangs-Softwarekonfiguration SWKdayo . Bei dem in Figur 11 dargestellten Beispiel beträgt diese Anfangs-Softwarekonfiguration SWKdayo = V5, V3, V4.This leads to the initial software configuration SWKdayo. In the example shown in Figure 11, this initial software configuration is SWKdayo = V5, V3, V4.
In einem Schritt S2 wird eine Liste der nicht integrierbaren Änderungsanforderungen bzw. Change Requests initialisiert, wie in Figur 8 dargestellt ist. Nicht integrierbare Änderungsanforderungen CR sind Änderungsanforderungen zur Änderung eines Softwareelementes SWE, die zu einer nicht ablauf- fähigen Softwarekonfiguration SWK führen.In a step S2, a list of the nonintegratable change requests or change requests is initialized, as shown in FIG. Non-integratable change requests CR are change requests for changing a software element SWE that lead to a non-executable software configuration SWK.
In einem Schritt S3 wird zunächst die Anfangs- Softwarekonfiguration einem Buildprozess unterzogen und getestet . In einem Schritt S4 wird geprüft, ob die zuletzt getestete Softwarekonfiguration SWK ablauffähig bzw. funktionsfähig ist oder nicht.In a step S3, the initial software configuration is first subjected to a build process and tested. In a step S4 it is checked whether the last tested software configuration SWK is executable or functional or not.
Ist dies der Fall, werden in einem Schritt S5 die Change Re- quest-Einträge aktualisiert, d. h. das Statusfeld der Änderungsanforderungen wird aktualisiert. Die Änderungsanforderung bzw. Change Request CR kann einen von vier verschiedenen Zuständen einnehmen.If this is the case, the change request entries are updated in a step S5, i. H. the status field of the change requests is updated. The change request CR can take one of four different states.
Wie in Figur 9 dargestellt, besteht ein Change Request CR bzw. eine Softwareelement-Änderungsanforderung einerseits aus einer Beschreibung der durch den Entwickler durchzuführenden Änderungen des Softwareelementes SWE und aus einem Statusfeld zur Angabe eines Zustandes der Änderungsanforderungen (Change Request Status) . Der Change Request-Inhalt ist die aktuelle Beschreibung der durch den Entwickler in einer höheren Programmiersprache durchzuführenden Änderung des Softwareelementes. Bei einer bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens weist jede Softwareelement- Änderungsanforderung CR zusätzlich ein Statusfeld zur Angabe eines Zustandes der Änderungsanforderungen auf. Bei einer besonders bevorzugten Ausführungsform nimmt jede Änderungsanforderung einen von vier verschiedenen Zuständen ein.As shown in FIG. 9, a change request CR or a software element change request consists, on the one hand, of a description of the changes to the software element SWE to be made by the developer and of a status field for indicating a state of the change requests. The change request content is the current description of the software element change to be made by the developer in a high level programming language. In a preferred embodiment of the method according to the invention, each software element change request CR additionally has a status field for indicating a state of the change requests. In a particularly preferred embodiment, each change request takes one of four different states.
Ein erster Zustand zeigt an, dass die Änderungsanforderung CR in Bearbeitung ist.A first state indicates that the change request CR is in progress.
Ein zweiter Zustand zeigt an, dass das auf die Änderungsan- forderung CR hin geänderte Softwareelement SWE bei einemA second state indicates that the software element SWE changed in response to the change request CR has been sent to a
Einzeltest erfolgreich getestet worden ist und für sich alleine implementierbar bzw. ablauffähig ist.Single test has been tested successfully and can be implemented or executed on its own.
Ein dritter Zustand der Änderungsanforderung CR zeigt an, dass das auf die Änderungsanforderung hin geänderte Softwareelement in der zu testenden Softwarekonfiguration SWK erfolgreich getestet worden ist. Ein vierter Zustand zeigt an, dass das auf die Änderungsanforderung CR hin geänderte Softwareelement SWE in der zu testenden Softwarekonfiguration SWK nicht erfolgreich getes- tet worden ist.A third state of the change request CR indicates that the software element changed in response to the change request has been successfully tested in the software configuration SWK under test. A fourth state indicates that the software element SWE changed to the change request CR has not been successfully tested in the software configuration SWK to be tested.
Im Schritt S5 werden nach erfolgreichen Tests der Softwarekonfiguration SWK die Statusfelder aller Softwareelement- Änderungsanforderungen derjenigen Softwareelemente SWE, die in der erfolgreich getesteten Softwarekonfiguration SWK enthalten sind, in den dritten Zustand überführt.In step S5, after successful tests of the software configuration SWK, the status fields of all software element change requests of those software elements SWE contained in the successfully tested software configuration SWK are transferred to the third state.
Figur 10 zeigt die Datenstruktur einer Softwarekonfiguration SWK. Die Softwarekonfiguration SWK umfasst die Versionsnum- mern V der darin enthaltenen Softwareelemente SWE. Zusätzlich wird zu der Versionsnummer V eine Identifizierung desjenigen Change Requests (CR) bzw. derjenigen Softwareelement-Änderungsanforderung gespeichert, die zu der zugehörigen Version V geführt hat. Darüber hinaus enthält der Soft- warekonfigurationsdatensatz SWK ein Statusfeld, welches den Zustand der Softwarekonfiguration angibt. Bei einer bevorzugten Ausführungsform nimmt die Softwarekonfiguration SWK drei verschiedene Zustände an, nämlich einen ersten Zustand, der anzeigt, dass die Softwarekonfiguration SWK noch nicht getestet ist, einen zweiten Zustand, der anzeigt, dass die Softwarekonfiguration SWK zwar getestet ist, aber noch Fehler aufweist, und einen dritten Zustand, der anzeigt, dass die Softwarekonfiguration SWK erfolgreich getestet worden ist bzw. funktionsfähig ist.FIG. 10 shows the data structure of a software configuration SWK. The software configuration SWK comprises the version numbers V of the software elements SWE contained therein. In addition, an identification of the change request (CR) or software element change request that led to the associated version V is stored for the version number V. In addition, the software configuration data record SWK contains a status field which indicates the state of the software configuration. In a preferred embodiment, the software configuration SWK assumes three different states, namely a first state indicating that the software configuration SWK has not yet been tested, a second state indicating that the software configuration SWK is tested but still has errors, and a third state indicating that the software configuration SWK has been successfully tested.
In einem Schritt S6 wird das Statusfeld der erfolgreich getesteten Softwarekonfiguration auf den Zustand "erfolgreich getestet" gesetzt und die Softwarekonfiguration SWK in einer Datenbank des Softwarekonfigurationsmanagements gespeichert.In a step S6, the status field of the successfully tested software configuration is set to the status "successfully tested" and the software configuration SWK is stored in a database of the software configuration management.
In einem Schritt S7 wird zusätzlich eine Liste der nicht integrierbaren Änderungsanforderungen CR gespeichert. Falls im Schritt S4 festgestellt wird, dass die Anfangs- Softwarekonfiguration, die im Schritt Sl erzeugt worden ist, nach dem Buildprozess nicht funktionsfähig ist, erfolgt in einem Schritt S8 ein automatischer Roll-back. Hierzu wird ausgehend von der gebildeten Anfangs-Softwarekonfiguration, welche die aktuellen für sich alleine ablauffähigen Versionen aller Softwareelemente SWE umfasst, jedes Softwareelement durch eine Vorgängerversion iterativ so lange ersetzt, bis die getestete Softwarekonfiguration ablauffähig ist.In a step S7, a list of the nonintegratable change requests CR is additionally stored. If it is determined in step S4 that the initial software configuration generated in step S1 is not functional after the build process, an automatic rollback occurs in step S8. For this purpose, based on the initial software configuration formed, which includes the current self-executable versions of all software elements SWE, each software element is iteratively replaced by a previous version until the tested software configuration is executable.
Nach jeder iterativen Ersetzung eines Softwareelements durch eine vorhergehende Version erfolgt ein erneuter Buildprozess und ein erneuter Testlauf im Schritt S3.After each iterative replacement of a software element with a previous version, a new build process and a new test run occur in step S3.
Wie aus dem in Figur 11 dargestellten Beispiel ersichtlich, besteht die Anfangs-Softwarekonfiguration aus:As can be seen from the example shown in Figure 11, the initial software configuration consists of:
SWKdayo = V5, V3, V4SWKdayo = V5, V3, V4
Ergibt der erste Testlauf, dass die Anfangs- Softwarekonfiguration nicht ablauffähig wird, wird in einem ersten Iterationsschritt die Softwarekonfiguration auf die SWKDi gesetzt:If the first test run indicates that the initial software configuration does not become executable, the software configuration is set to SWK D i in a first iteration step:
SWKD1 = V4, V3, V4.SWK D1 = V4, V3, V4.
Ergibt sich bei einem weiteren Testlauf, dass auch diese Softwarekonfiguration nicht funktionsfähig ist, wird die aktuelle Version V4 des Softwareelements SWEK durch die Vorgän- gerversion V3 des Softwareelementes SWEK ersetzt.If a further test run reveals that this software configuration is also inoperable, the current version V4 of the software element SWE K is replaced by the predecessor version V3 of the software element SWE K.
SWED2 = V4, V3, V3SWE D2 = V4, V3, V3
Ergibt sich bei dem in Figur 11 dargestellten Beispiel auch nach diesem Testlauf, dass die Softwarekonfiguration SWK noch nicht funktionsfähig ist, wird schließlich die Version V4 des Softwareelementes SWEi durch die Vorgängerversion V3 des Softwareelementes SWEi ersetzt.If, in the example shown in FIG. 11, even after this test run that the software configuration SWK is not yet functional, the version finally becomes V4 of the software element SWEi replaced by the previous version V3 of the software element SWEi.
SWKD3 = V3, V3, V3SWK D3 = V3, V3, V3
Der Iterationsprozess, d. h. die Schleife mit den Schritten S3, S4, S8 wird so lange durchlaufen, bis ein erfolgreicher Testlauf durchgeführt werden kann. Dies ist spätestens dann der Fall, wenn der Stand des letzten erfolgreichen Builds bzw. des zuletzt erfolgreich abgelaufenen Testlaufs erreicht wird. In diesem Falle werden alle neu eingebrachten Änderungen der Softwareelemente, d. h. alle neuen Versionen, zurückgenommen. Bei dem in Figur 11 dargestellten Beispiel ist dies der Fall, wenn alle drei Softwareelemente auf die Ver- sion V3 zurückgenommen worden sind. Dies stellt allerdings den Ausnahmefall dar. In der Regel wird ausgehend von der Anfangs-Softwarekonfiguration nach einigen iterativen Ersetzungen von Softwareelementen durch Vorgängerversionen eine ablauffähige Softwarekonfiguration erreicht, die ausliefer- bar ist.The iteration process, d. H. the loop with the steps S3, S4, S8 is run through until a successful test run can be carried out. This is the case at the latest when the status of the last successful build or the last successfully completed test run is reached. In this case, all newly introduced changes to the software elements, i. H. all new versions, withdrawn. In the example shown in FIG. 11, this is the case when all three software elements have been taken back to the version V3. However, this represents the exceptional case. Usually, after a few iterative replacements of software elements by previous versions, an executable software configuration is achieved, which can be delivered from the initial software configuration.
Bei einer bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens werden die vorgenommenen iterativen Ersetzungen der Softwareelement-Versionen, die man benötigt, um von der Anfangs-Software-Konstellation zu einer schließlich ablauffähigen Software-Konstellation zu gelangen, protokolliert und zwischengespeichert. Auf der Grundlage der protokollierten Ersetzungen werden diejenigen Änderungsanforderungen bzw. Change Requests CR ermittelt, die zu einer nicht ab- lauffähigen Software-Konstellation SWK geführt haben.In a preferred embodiment of the method according to the invention, the iterative replacements of the software element versions that are required in order to move from the initial software constellation to a finally executable software constellation are logged and buffered. Based on the logged replacements, those change requests or change requests CR are determined which have led to a non-executable SWK software constellation.
Ist bei dem in Figur 11 dargestellten Beispiel die Anfangs- Software-Konstellation SWKD0 = V5, V3, V4 nicht ablauffähig und ergibt der Testlauf, dass die nach einer iterativen Er- Setzung entstandene Software-Konstellation SWKDi = V4, V3, V4 ablauffähig ist, wird festgestellt, dass der Change Request CR bzw. die Änderungsanforderung für die Änderungen der Ver- sion V4 des Softwareelementes SWEi zur Erzeugung der Version V5 des gleichen Softwareelementes SWEi zu dem Ablauffehler bzw. zu dem Integrationsfehler geführt hat, d. h. es wird festgestellt, dass die für sich alleine ablauffähige Version V5 das Softwareelement SWEi mit den Versionen V3 des Softwareelements SWEj und der Version V4 des Softwareelements SWER nicht kompatibel ist und zu einem Integrationsfehler führt. Der für das Softwareelement SWEi zuständige Entwickler kann dann zielorientiert eine neue Version V5 programmieren, die möglicherweise zu einer ablauffähigen Software- Konstellation SWK führt.In the example illustrated in FIG. 11, the initial software constellation SWKD 0 = V5, V3, V4 can not be executed and the test run results in the software constellation SWK D i = V4, V3, V4 created after an iterative replacement is executable, it is determined that the change request CR or the change request for the changes in the sion V4 of the software element SWEi for generating the version V5 of the same software element SWEi has led to the execution error or to the integration error, ie it is determined that the self-executable version V5 the software element SWEi with the versions V3 of the software element SWEJ and the Version V4 of the software element SWE R is incompatible and leads to an integration error. The developer responsible for the software element SWEi can then program a new version V5 goal-oriented, which possibly leads to an executable software constellation SWK.
Bei einer bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens werden automatisch ablaufende formale Prüfungen, die die Einhaltung von Coding Guidelines prüfen, durchgeführt.In a preferred embodiment of the method according to the invention, automatic formal checks that check compliance with coding guidelines are carried out.
Alle Änderungsanforderungen bzw. Change Request CR, die zu einer ablauffähigen Softwarekonfiguration SWK geführt haben, erhalten einen entsprechenden Status bzw. Zustand. Dadurch kann die erfolgreiche Umsetzung aller Change Requests CR automatisch überwacht werden. In dem erfindungsgemäßen Verfahren werden die vorgenommenen iterativen Ersetzungen protokolliert und gespeichert. Auf Grundlage der Ersetzungen wird automatisch ein Report erstellt, sodass die an dem Software- Entwicklungsprojekt beteiligten Entwickler ständig über den aktuellen Stand der Entwicklung informiert werden können. Durch automatisches Berichten der abgearbeiteten Change Requests wird gewährleistet, dass die in dem erfindungsgemäßen Konfigurationsmanagementsystem verfügbaren programmiertenAll change requests or change requests CR, which have led to an executable software configuration SWK, receive a corresponding status or state. As a result, the successful implementation of all CR change requests can be automatically monitored. In the method according to the invention, the iterative substitutions made are logged and stored. Based on the replacements, a report is automatically generated so that developers involved in the software development project can be kept up to date with the latest developments. By automatically reporting the processed change requests, it is ensured that the programmed available in the configuration management system according to the invention
Softwareelemente SWE tatsächlich den in den Vorgaben formulierten Anforderungen entsprechen bzw. diese erfüllen. Bei dem erfindungsgemäßen Verfahren lassen sich die bei Buildprozess auftretenden Fehler zu einem frühen Zeitpunkt erkennen und sind somit durch den Entwickler frühzeitig behebbar. SWE software components actually meet or meet the requirements formulated in the specifications. In the method according to the invention, the errors occurring during the build process can be recognized at an early point in time and can thus be remedied by the developer at an early stage.

Claims

Patentansprüche claims
1. Verfahren zum automatisierten Testen einer aus mehreren Softwareelementen (SWE) bestehenden Softwarekonfigu- ration (SWK) , wobei ausgehend von einer gebildeten Anfangs- Softwarekonfiguration, welche die aktuellen für sich alleine ablauffähigen Versionen (VN) aller Softwareelemente der Softwarekonfiguration umfasst, die Softwareelemente (SWE) jeweils durch eine vorhergehende Version (VN _ i) des jeweiligen Softwareelements iterativ so lange ersetzt werden, bis die getestete Softwarekonfiguration (SWK) eine ablauffähige Softwarekonfiguration ist.1. Method for the automated testing of a software configuration (SWK) consisting of a number of software elements (SWE), the software elements being based on an initial software configuration that forms the current self-executable versions (V N ) of all software elements of the software configuration (SWE) are each iteratively replaced by a previous version (V N _ i) of the respective software element until the tested software configuration (SWK) is an executable software configuration.
2. Verfahren nach Anspruch 1, wobei auf eine eingehende Änderungsanforderung (Change Request) für ein Softwareelement (SWE) hin basierend auf einer bestehenden Version des Softwareelements SWE eine aktuelle Version des Softwareelements erzeugt wird.2. The method of claim 1, wherein upon an incoming change request for a software element based on an existing version of the software element SWE, a current version of the software element is generated.
3. Verfahren nach Anspruch 2, wobei die aktuelle Version jedes Softwareelements (SWE) jeweils für sich in einem Einzeltest auf ihre Ablauffähigkeit hin getestet wird.3. The method of claim 2, wherein the current version of each software element (SWE) is tested in each case in a single test for their runnability out.
4. Verfahren nach Anspruch 2, wobei jede Änderungsanforderung (Change Request) eines Softwareelements SWE eine Beschreibung der durchzuführenden Änderungen des Softwareelements und ein Statusfeld zur Angabe eines Zustan- des der Änderungsanforderungen aufweist.4. The method of claim 2, wherein each change request of a software element SWE comprises a description of the changes to be made to the software element and a status field for indicating a state of the change requests.
5. Verfahren nach Anspruch 4, wobei jede Änderungsanforderung (Change Request) einen von vier Zuständen einnimmt, nämlich einen ersten Zustand, der anzeigt, dass die Änderungsanforderung in Bearbeitung ist, einen zweiten Zustand, der anzeigt, dass das auf die Änderungsanforderung hin geänderte Softwareelement erfolgreich getestet worden ist und es für sich alleine ab- lauffähig ist, einen dritten Zustand, der anzeigt, dass das auf die Änderungsanforderungen hin geänderte Softwareelement in der zu testenden Softwarekonfiguration (SWK) erfolgreich getestet worden ist, und einen vierten Zustand, der anzeigt, dass das auf die Änderungsanforderungen hin das geänderte Softwareelement in der zu testenden Softwarekonfiguration (SWK) nicht erfolgreich getestet worden ist.5. The method of claim 4, wherein each change request takes one of four states, namely, a first state indicating that the change request is in progress, a second state indicating that the software element changed in response to the change request has been tested successfully and is executable, a third state indicating that the software element modified for the change requests has been successfully tested in the software configuration under test (SWK), and a fourth state indicating that the changed software element is responsive to the change requests software configuration to be tested (SWK) has not been successfully tested.
6. Verfahren nach Anspruch 1, wobei die vorgenommenen iterativen Ersetzungen als Softwareelement-Versionen, um von der Anfangs-Software-Konstellation zu einer ablauffähigen Software-Konstellation zu gelangen, protokol- liert und gespeichert werden.6. The method of claim 1, wherein the iterative replacements performed are logged and stored as software item versions to go from the initial software constellation to an executable software constellation.
7. Verfahren nach Anspruch 6, wobei auf Grundlage der protokollierten Ersetzungen diejenige Änderungsanforderung (Change Request) ermittelt wird, die zu einer nicht ablauffähigen Software-Konstellation (SWK) geführt hat.7. The method of claim 6, wherein based on the logged replacements that change request is determined, which has led to a non-executable software constellation (SWK).
8. Verfahren nach Anspruch 1, wobei die Softwarekonfiguration (SWK) Datenfelder aufweist, welche die Versionsnummern der darin enthaltenen Softwareelemente (SWE) an- geben.8. The method of claim 1, wherein the software configuration (SWK) comprises data fields indicating the version numbers of the software elements (SWE) contained therein.
9. Verfahren nach Anspruch 8, wobei die Softwarekonfiguration (SWK) ein Statusfeld aufweist, welches anzeigt, ob die Softwarekonfiguration ablauffähig ist.The method of claim 8, wherein the software configuration (SWK) comprises a status field indicating whether the software configuration is executable.
10. Konfigurationsmanagementsystem zum automatisierten Testen einer aus mehreren Softwareelementen (SWE) bestehenden Softwarekonfiguration (SWK) , bei dem ausgehend von einer Anfangs-Softwarekonfiguration, welche die ak- tuellen für sich alleine ablauffähigen Versionen aller10. A configuration management system for automated testing of a multiple software element (SWK) software configuration based on an initial software configuration that includes the current self-executable versions of all of them
Softwareelemente (SWE) der zu testenden Softwarekonfiguration (SWK) umfasst, die Softwareelemente jeweils durch die vorhergehende Version des jeweiligen Softwareelements iterativ so lange ersetzt werden, bis die getestete Softwarekonfiguration (SWK) eine ablauffähige Softwarekonfiguration ist. Software elements (SWE) of the software configuration to be tested (SWK) comprises, the software elements by the previous version of each software item is iteratively replaced until the software configuration being tested (SWK) is an executable software configuration.
PCT/EP2006/064611 2005-08-03 2006-07-25 Method for automatic testing of a software configuration WO2007014874A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP06777945A EP1913469A2 (en) 2005-08-03 2006-07-25 Method for automatic testing of a software configuration

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE200510036524 DE102005036524A1 (en) 2005-08-03 2005-08-03 Method for automated testing of a software configuration
DE102005036524.8 2005-08-03

Publications (2)

Publication Number Publication Date
WO2007014874A2 true WO2007014874A2 (en) 2007-02-08
WO2007014874A3 WO2007014874A3 (en) 2007-10-25

Family

ID=37680864

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2006/064611 WO2007014874A2 (en) 2005-08-03 2006-07-25 Method for automatic testing of a software configuration

Country Status (3)

Country Link
EP (1) EP1913469A2 (en)
DE (1) DE102005036524A1 (en)
WO (1) WO2007014874A2 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0240663A2 (en) 1986-03-10 1987-10-14 International Business Machines Corporation System for testing interactive software
GB2353610A (en) 1999-08-21 2001-02-28 Ibm Computerised testcase management system
EP1443400A1 (en) 2003-01-29 2004-08-04 Sun Microsystems, Inc. Automated test execution framework with central management

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0240663A2 (en) 1986-03-10 1987-10-14 International Business Machines Corporation System for testing interactive software
GB2353610A (en) 1999-08-21 2001-02-28 Ibm Computerised testcase management system
EP1443400A1 (en) 2003-01-29 2004-08-04 Sun Microsystems, Inc. Automated test execution framework with central management

Also Published As

Publication number Publication date
WO2007014874A3 (en) 2007-10-25
EP1913469A2 (en) 2008-04-23
DE102005036524A1 (en) 2007-02-15

Similar Documents

Publication Publication Date Title
DE4235193C2 (en) Network system and associated software management process
EP0852759B1 (en) Drafting method for industrial and building systems and computer-controlled planning system for use in said method
DE19836381C2 (en) Device for installing software on a computer system
WO2008040664A1 (en) Method for the computer-assisted analysis of a software source code
DE19717716C5 (en) Method for the automatic diagnosis of technical systems
DE60017457T2 (en) PROCEDURE FOR ISOLATING AN ERROR IN ERROR MESSAGES
DE19836333A1 (en) Software installation and testing for a computer system built to order
WO2005033934A2 (en) Flexible software update for automation systems via internet
EP3523703B1 (en) Method for updating software in cloud gateways, computer program with an implementation of the method and processing unit for executing the method
DE4305522C2 (en) Device for computer-aided diagnosis of a technical system consisting of modules
EP1701266A1 (en) Test apparatus for verification of a batch processing
EP2433189B1 (en) Method for analyzing message archives and corresponding computer program to generate a finite states machine
WO2007014874A2 (en) Method for automatic testing of a software configuration
EP1241570A2 (en) Automated version analysis of software components belonging to a software application
DE19922767A1 (en) Software installation method and/or test method for computer system, by following sequence of steps in accordance with component descriptors read from file
EP1019808B1 (en) Responsive system and method for processing digital signals and operating method for a responsive system
DE10017708B4 (en) Method for controlling mechanisms and technical systems, equipment and control software
WO2008132063A2 (en) Method for the quantitative evaluation of modifications in a software system and the effects thereof
DE102008048862A1 (en) Test module and method for testing an O / R imaging middleware
EP1593007A2 (en) Method for determining the processing sequence of function blocks of an automated system and corresponding automated system
EP1746499A1 (en) System and method for developping a software or softwarecomponent and method for operating such a software
DE10228142B4 (en) System for securing software components and / or computer programs
EP3948449B1 (en) Method and engineering system for changing a program of an industrial automation component
EP4227800A1 (en) Computer-implemented method for verifying a plurality of commits
WO2012013203A1 (en) System and method for distributing and exchanging elements for planning and/or for operating automation operating equipment

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 2006777945

Country of ref document: EP

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 06777945

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase

Ref country code: DE

WWP Wipo information: published in national office

Ref document number: 2006777945

Country of ref document: EP