Einsatz automatisierter Software-Tests im Bereich CRM-Entwicklung
Datum: Donnerstag, dem 01. Juli 2010
Thema: Testberichte Infos


Was sind automatisierte Software-Tests?

Bisher wurde bei itdesign fast ausschließlich manuell getestet. Dies bedeutet, ein Tester bekommt eine Software, muss diese auf einer Testumgebung installieren und anschließend einen Testplan abarbeiten. Dabei muss dokumentiert werden, welche Programmteile funktionieren und welche Fehler aufgetreten sind. Letztere werden dem jeweiligen Programmierer gemeldet, der sie beheben und anschließend wieder in den Test geben muss.

Automatisierung bedeutet, dass das Installieren der Software und das Durchführen der Tests automatisch ablaufen. Anschließend wird ebenfalls automatisch der Programmierer über Erfolg und Misserfolg der Tests benachrichtigt.

Motivation

Da die Tests automatisch ablaufen, wird für das eigentliche Testen keine Zeit von Mitarbeitern benötigt. Wie beim Einsatz jeder neuen Technologie muss jedoch erst einmal Zeit investiert werden, um sichtbare Erfolge und Arbeitserleichterung zu erzielen. Hierzu gehören die Evaluation einer geeigneten Test-Software, das Anpassen der ausgewählten Software sowie schließlich die Abbildung der Tests auf dieses System und die Integration in die bestehende Software-Landschaft (automatisiertes Build-System und Auswertung der Testergebnisse).

Ziel der Automatisierung ist einerseits die Arbeitserleichterung für Mitarbeiter und andererseits eine höhere Software-Qualität durch häufigere und umfangreichere Tests.

Testarten

Grundsätzlich lassen sich automatisierte Tests in statische sowie dynamische Tests gliedern.

Bei statischen Tests wird kein Code ausgeführt, sondern der Quelltext auf mögliche Fehler untersucht. In der Produktentwicklung arbeiten wir dabei eng mit der CAS Software AG zusammen.

Dynamische Tests hingegen führen den geschriebenen Code aus und vergleichen die erzielten Ergebnisse mit Soll-Werten. Hierbei gibt es im Wesentlichen drei Stufen: Komponententest, Integrationstest und Systemtest.

Komponententests, oft auch Unit-Tests genannt, testen die Software auf unterster Ebene. Hierzu muss ein zusätzlicher Code geschrieben, oft auch so genannte Mock-Objekte programmiert werden, welche die Funktionalität eines anderen Objektes simulieren. Durch den zusätzlichen Programmieraufwand sind diese Tests recht teuer und können auch selbst Fehler enthalten, die zu fehlerhaften Ergebnissen führen.

Integrationstests liegen eine Stufe über den Komponententests. Hier wird die Zusammenarbeit zwischen verschiedenen Komponenten des Systems getestet.

Der Systemtest schließlich testet das ganze System auf Fehler oder andere Anforderungen wie beispielsweise Leistungsfähigkeit.

Da wir bei itdesign eine gut funktionierende Codebasis haben und ein Integrationstest von nur wenigen Komponenten sich bei CAS genesisWorld schwierig gestaltet, haben wir unser Augenmerk hauptsächlich auf den Systemtest gerichtet.

Wann und was wird getestet?

Da durch die Tests schnellstmöglich neue Fehler gefunden werden sollen, wird bereits nach jeder internen Version ein automatischer Test durchgeführt. Da sich bei einer neuen Version jeweils höchstens ein paar Hundert Zeilen Code geändert haben oder hinzukommen, lassen sich Fehler schnell finden und korrigieren. Ein Problem ergibt sich aus der zuweilen hohen Anzahl von Versionen an einem Tag. Da der Testumfang und damit die Dauer der Tests mit der Zeit steigen, muss gewährleistet sein, dass die automatischen Tests für jede Version durchgeführt werden können. Deshalb wird zuerst ein so genannter Smoke-Test durchgeführt.

Dieser testet die Grundfunktionalität der Software. Bei CAS genesisWorld bedeutet dies, dass der Client sich registrieren lässt und die Masken sich öffnen. Ist dies nicht der Fall, werden die folgenden Tests erst gar nicht ausgeführt.

Als nächstes folgen die Oberflächentests, bei der die Benutzerschnittstelle geprüft wird. Hier werden verschiedenste Anwendungsfälle durchgespielt und Ergebnisse mit Soll-Werten verglichen. Diese wurden beim Erstellen der Tests durch den Anwender einmal festgelegt. Oft sind dies schlicht Screenshots, es können aber auch Einträge in der Datenbank oder erstellte XML- oder andere Dateien sein, deren Inhalt miteinander verglichen wird. Zusätzlich zum Vergleich dieser Werte wird das CAS genesisWorld Error-Log ständig überwacht und dort eingetragene Fehler protokolliert, so dass Fehler, die nicht auf den Masken sichtbar sind, ebenfalls getestet werden.

Um eine konstante Datenbasis sicherzustellen, wird vor einem Testlauf immer dieselbe Datenbank wiederhergestellt. Dieses Backup wird nur verändert, wenn neue Tests aufgenommen werden.

Sind auch diese Tests bestanden, wird noch ein Performanztest durchgeführt. Hierbei werden verschiedene Masken mehrmals geöffnet und die Zeit, welche die Maske zum Öffnen braucht, protokolliert. Die Ergebnisse werden in CAS genesisWorld hinterlegt, wo sie mittels Berichten ausgewertet werden. Da zu jeder internen Version, bei der kein Fehler im Test auftrat, diese Werte vorhanden sind, lässt sich recht schnell herausfinden, welche Änderungen im Programmcode zusätzlich Zeit brauchen.

Womit wird getestet?

Bei der Evaluation hat sich die Software TestComplete von AutomatedQA recht gut bewährt. Hiermit können Maus- und Tastatureingaben recht einfach in so genannte Keyword-Tests umgesetzt werden, so dass zum Erstellen eines Tests keine Programmierkenntnisse erforderlich sind. Damit die Tests möglichst einfach zu erstellen sind, wurde die Software mittels Skripten und Plug-Ins um speziell auf CAS genesisWorld zugeschnittene Funktionen erweitert.

Hierzu zählen unter anderem Routinen zur Installation der zu testenden Server und Clients. Auch Funktionen zu wiederkehrenden Aufgaben wie das Wiederherstellen der Datenbank und Login und Logout wurden hinzugefügt. Da diese Funktionen auf dieselbe Weise wie die originär zur Verfügung stehenden auf der Oberfläche angeboten werden, lassen sich diese auch ohne große Einarbeitung nutzen.

Fazit

Gerade bei Performanzoptimierungen lohnen sich automatische Tests, da hierbei oft Nebeneffekte auftreten, die sonst erst spät bemerkt werden. Ansonsten lässt sich erst nach längerer Zeit sagen, in welchem Verhältnis der zusätzliche Aufwand durch das Aufnehmen der Tests zu Arbeitserleichterung und besserer Qualität stehen.

Wir können schon jetzt sagen, dass durch die bei uns laufenden Tests die CRM-Lösung genesisWorld qualitativ noch hochwertiger und vor allem spürbar schneller sein wird.
Die itdesign GmbH bietet Beratung und umfassende Software-Lösungen in den Bereichen Customer Relationship Management, CRM, und Project Portfolio Management, PPM.

Weit reichende Erfahrungen aus über 650 Projekten versetzen die itdesign GmbH in die Lage, ihre Kunden bei der Verbesserung ihrer Geschäftsprozesse kompetent zu unterstützen. Seit Gründung des Unternehmens im Jahr 1999 verzeichnet die itdesign GmbH ein kontinuierliches Wachstum. Das inhabergeführte Unternehmen beschäftigt heute bereits mehr als 45 Mitarbeiter.

Zahlreiche langfristige und direkte Beziehungen zu zufriedenen Kunden wie E.ON AG, DekaBank, T-Systems, Generali Versicherung AG, Flughafen München und Fraunhofer IPA sowie zahlreiche mittelständische Unternehmen belegen die Leistungsfähigkeit der itdesign GmbH in den Bereichen CRM und PPM.

Die Kunden der itdesign GmbH stellen sich aus dem Produktportfolio Beratung, Software und dauerhafte Betreuung die gewünschten Leistungspakete nach ihren individuellen Anforderungen zusammen.
itdesign GmbH
Lilli Wolf
Karlstr. 3
72072
Tübingen
lilli.wolf@itdesign.de
07071/3667-7104
http://itdesign.de



Was sind automatisierte Software-Tests?

Bisher wurde bei itdesign fast ausschließlich manuell getestet. Dies bedeutet, ein Tester bekommt eine Software, muss diese auf einer Testumgebung installieren und anschließend einen Testplan abarbeiten. Dabei muss dokumentiert werden, welche Programmteile funktionieren und welche Fehler aufgetreten sind. Letztere werden dem jeweiligen Programmierer gemeldet, der sie beheben und anschließend wieder in den Test geben muss.

Automatisierung bedeutet, dass das Installieren der Software und das Durchführen der Tests automatisch ablaufen. Anschließend wird ebenfalls automatisch der Programmierer über Erfolg und Misserfolg der Tests benachrichtigt.

Motivation

Da die Tests automatisch ablaufen, wird für das eigentliche Testen keine Zeit von Mitarbeitern benötigt. Wie beim Einsatz jeder neuen Technologie muss jedoch erst einmal Zeit investiert werden, um sichtbare Erfolge und Arbeitserleichterung zu erzielen. Hierzu gehören die Evaluation einer geeigneten Test-Software, das Anpassen der ausgewählten Software sowie schließlich die Abbildung der Tests auf dieses System und die Integration in die bestehende Software-Landschaft (automatisiertes Build-System und Auswertung der Testergebnisse).

Ziel der Automatisierung ist einerseits die Arbeitserleichterung für Mitarbeiter und andererseits eine höhere Software-Qualität durch häufigere und umfangreichere Tests.

Testarten

Grundsätzlich lassen sich automatisierte Tests in statische sowie dynamische Tests gliedern.

Bei statischen Tests wird kein Code ausgeführt, sondern der Quelltext auf mögliche Fehler untersucht. In der Produktentwicklung arbeiten wir dabei eng mit der CAS Software AG zusammen.

Dynamische Tests hingegen führen den geschriebenen Code aus und vergleichen die erzielten Ergebnisse mit Soll-Werten. Hierbei gibt es im Wesentlichen drei Stufen: Komponententest, Integrationstest und Systemtest.

Komponententests, oft auch Unit-Tests genannt, testen die Software auf unterster Ebene. Hierzu muss ein zusätzlicher Code geschrieben, oft auch so genannte Mock-Objekte programmiert werden, welche die Funktionalität eines anderen Objektes simulieren. Durch den zusätzlichen Programmieraufwand sind diese Tests recht teuer und können auch selbst Fehler enthalten, die zu fehlerhaften Ergebnissen führen.

Integrationstests liegen eine Stufe über den Komponententests. Hier wird die Zusammenarbeit zwischen verschiedenen Komponenten des Systems getestet.

Der Systemtest schließlich testet das ganze System auf Fehler oder andere Anforderungen wie beispielsweise Leistungsfähigkeit.

Da wir bei itdesign eine gut funktionierende Codebasis haben und ein Integrationstest von nur wenigen Komponenten sich bei CAS genesisWorld schwierig gestaltet, haben wir unser Augenmerk hauptsächlich auf den Systemtest gerichtet.

Wann und was wird getestet?

Da durch die Tests schnellstmöglich neue Fehler gefunden werden sollen, wird bereits nach jeder internen Version ein automatischer Test durchgeführt. Da sich bei einer neuen Version jeweils höchstens ein paar Hundert Zeilen Code geändert haben oder hinzukommen, lassen sich Fehler schnell finden und korrigieren. Ein Problem ergibt sich aus der zuweilen hohen Anzahl von Versionen an einem Tag. Da der Testumfang und damit die Dauer der Tests mit der Zeit steigen, muss gewährleistet sein, dass die automatischen Tests für jede Version durchgeführt werden können. Deshalb wird zuerst ein so genannter Smoke-Test durchgeführt.

Dieser testet die Grundfunktionalität der Software. Bei CAS genesisWorld bedeutet dies, dass der Client sich registrieren lässt und die Masken sich öffnen. Ist dies nicht der Fall, werden die folgenden Tests erst gar nicht ausgeführt.

Als nächstes folgen die Oberflächentests, bei der die Benutzerschnittstelle geprüft wird. Hier werden verschiedenste Anwendungsfälle durchgespielt und Ergebnisse mit Soll-Werten verglichen. Diese wurden beim Erstellen der Tests durch den Anwender einmal festgelegt. Oft sind dies schlicht Screenshots, es können aber auch Einträge in der Datenbank oder erstellte XML- oder andere Dateien sein, deren Inhalt miteinander verglichen wird. Zusätzlich zum Vergleich dieser Werte wird das CAS genesisWorld Error-Log ständig überwacht und dort eingetragene Fehler protokolliert, so dass Fehler, die nicht auf den Masken sichtbar sind, ebenfalls getestet werden.

Um eine konstante Datenbasis sicherzustellen, wird vor einem Testlauf immer dieselbe Datenbank wiederhergestellt. Dieses Backup wird nur verändert, wenn neue Tests aufgenommen werden.

Sind auch diese Tests bestanden, wird noch ein Performanztest durchgeführt. Hierbei werden verschiedene Masken mehrmals geöffnet und die Zeit, welche die Maske zum Öffnen braucht, protokolliert. Die Ergebnisse werden in CAS genesisWorld hinterlegt, wo sie mittels Berichten ausgewertet werden. Da zu jeder internen Version, bei der kein Fehler im Test auftrat, diese Werte vorhanden sind, lässt sich recht schnell herausfinden, welche Änderungen im Programmcode zusätzlich Zeit brauchen.

Womit wird getestet?

Bei der Evaluation hat sich die Software TestComplete von AutomatedQA recht gut bewährt. Hiermit können Maus- und Tastatureingaben recht einfach in so genannte Keyword-Tests umgesetzt werden, so dass zum Erstellen eines Tests keine Programmierkenntnisse erforderlich sind. Damit die Tests möglichst einfach zu erstellen sind, wurde die Software mittels Skripten und Plug-Ins um speziell auf CAS genesisWorld zugeschnittene Funktionen erweitert.

Hierzu zählen unter anderem Routinen zur Installation der zu testenden Server und Clients. Auch Funktionen zu wiederkehrenden Aufgaben wie das Wiederherstellen der Datenbank und Login und Logout wurden hinzugefügt. Da diese Funktionen auf dieselbe Weise wie die originär zur Verfügung stehenden auf der Oberfläche angeboten werden, lassen sich diese auch ohne große Einarbeitung nutzen.

Fazit

Gerade bei Performanzoptimierungen lohnen sich automatische Tests, da hierbei oft Nebeneffekte auftreten, die sonst erst spät bemerkt werden. Ansonsten lässt sich erst nach längerer Zeit sagen, in welchem Verhältnis der zusätzliche Aufwand durch das Aufnehmen der Tests zu Arbeitserleichterung und besserer Qualität stehen.

Wir können schon jetzt sagen, dass durch die bei uns laufenden Tests die CRM-Lösung genesisWorld qualitativ noch hochwertiger und vor allem spürbar schneller sein wird.
Die itdesign GmbH bietet Beratung und umfassende Software-Lösungen in den Bereichen Customer Relationship Management, CRM, und Project Portfolio Management, PPM.

Weit reichende Erfahrungen aus über 650 Projekten versetzen die itdesign GmbH in die Lage, ihre Kunden bei der Verbesserung ihrer Geschäftsprozesse kompetent zu unterstützen. Seit Gründung des Unternehmens im Jahr 1999 verzeichnet die itdesign GmbH ein kontinuierliches Wachstum. Das inhabergeführte Unternehmen beschäftigt heute bereits mehr als 45 Mitarbeiter.

Zahlreiche langfristige und direkte Beziehungen zu zufriedenen Kunden wie E.ON AG, DekaBank, T-Systems, Generali Versicherung AG, Flughafen München und Fraunhofer IPA sowie zahlreiche mittelständische Unternehmen belegen die Leistungsfähigkeit der itdesign GmbH in den Bereichen CRM und PPM.

Die Kunden der itdesign GmbH stellen sich aus dem Produktportfolio Beratung, Software und dauerhafte Betreuung die gewünschten Leistungspakete nach ihren individuellen Anforderungen zusammen.
itdesign GmbH
Lilli Wolf
Karlstr. 3
72072
Tübingen
lilli.wolf@itdesign.de
07071/3667-7104
http://itdesign.de







Dieser Artikel kommt von Testberichte News & Testberichte Infos & Testberichte Tipps !
http://www.testberichte-central.de

Die URL für diesen Artikel ist:
http://www.testberichte-central.de/modules.php?name=News&file=article&sid=306