Schmelz, D. (2012). Generic and reusable proof of concept implementation for automated test data generation based on XSD [Diploma Thesis, Technische Universität Wien]. reposiTUm. http://hdl.handle.net/20.500.12708/160572
Testautomatisierung; Software Testen; Testdaten Generierung; XSD; XML
de
Automated testing; software testing; testdata generator; XSD; XML
en
Abstract:
Der Bereich der Softwaretests gewinnt stetig an Bedeutung in der Softwareentwicklung. Je komplexer die Systeme werden, desto schwieriger ist es, sie effizient zu testen. Dies führt zu steigenden Testkosten und insgesamt zu höheren Entwicklungskosten. Je früher Softwaretests ausgeführt werden, desto früher können Fehler gefunden und ausgebessert werden. Dadurch werden geringere Kosten durch die Fehler verursacht. Folglich besteht ein Bedarf an generischen Testsystemen, die einfach konfiguriert und im Optimalfall in vielen Projekten wiederverwendet werden können, sodass Tests so früh und mit so wenig Aufwand wie möglich ausgeführt werden. Ohne effizientes Testsystem wird erfahrungsgemäß zu selten oder überhaupt nicht getestet, was mit hoher Wahrscheinlichkeit zu niedriger Qualität in dem resultierenden System führt. Manuelle Tests können auf einer bestimmten Version des Systems ausgeführt werden, um eine bestimmte Testabdeckung des Systems zu erreichen. Diese Tests sind jedoch teuer, wenn sie wiederholt ausgeführt werden. Um konstante Qualität auf effiziente Weise zu erreichen, müssen Tests während des Entwicklungsprozesses wiederholt durchgeführt werden. Dies fordert eine Automatisierung bei der Ausführung der Testfälle und der Erzeugung der benötigten Testdaten. Diese Arbeit stellt eine generische Methode zur Generierung von Testdaten vor, die verwendet werden kann, um verschiedene Software-Systeme zu testen. Eine Proof of Concept Software mit verschiedenen Strategien zur Generierung von Testdaten wurde im Zuge der Arbeit implementiert. Die Arbeit zeigt, wie auf Grundlage einer Schnittstellendefinition in Extensible Markup Language (XML) und Extensible Markup Language Schema Definition (XSD) wissenschaftliche und nicht-wissenschaftliche Ansätze zur Generierung von Testdaten kombiniert, verwendet und ausgeführt werden können. Diese Schnittstellendefinition macht die Methode konfigurierbar für verschiedene Arten von Schnittstellen und erlaubt dem Benutzer, die Menge der Testdaten zu minimieren. Diese Methode ermöglicht es, Schnittstellen eines spezifischen Systems zu definieren, um Testdaten für diese zu produzieren und gegen sie auszuführen. Da die Proof of Concept Software erweiterbar entwickelt wurde, kann sie mit neuen Strategien zur Testdatengenerierung erweitert werden und somit in der Zukunft dazu dienen, unterschiedliche Strategien zu vergleichen.<br />
de
The field of testing is constantly getting more important in software engineering. The more complex the systems get, the harder it is to test them efficiently. This results in rising testing costs and higher overall development costs. Numerous systems offer services using a variety of different technologies. Hence there is a need for a generic testing system that can easily be configured and ideally be reused in many other projects. Without an efficient testing system testing occurs seldom --- or not at all --- which leads to low quality of the resulting system. Manual tests can be executed on a certain version of the system to reach a certain test coverage of the system, but these tests are expensive when repeated multiple times. In order to achieve a constant quality in an efficient way, tests need to be executed repeatedly during the development process. This calls for an automation of the execution of the test cases and the generation of the test data they require. The thesis introduces an approach of generating test data that can be used to test multiple different software systems, since it is configurable and the test data is provided in a generic format. A proof of concept that can use various strategies for test data generation was implemented. The approach shows how scientific and non-scientific approaches for test data generation can be combined, used and executed based on an interface definition written in Extensible Markup Language (XML) and Extensible Markup Language Schema Definition (XSD) format. These interface definitions specifically make the approach configurable to different kinds of interfaces and allow the user to minimise the amount of test data. This approach makes it possible to define interfaces of a specific system in order to create test data that can be executed against it. Since the proof of concept was developed with extensibility in mind, it can be extended with new strategies for test data generation and thus may serve to compare different strategies in the future.