! " #! $! % & ' ' (! " # # $



Ähnliche Dokumente
Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Some Software Engineering Principles

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Leitfaden zur Durchführung eines Jahreswechsels in BüroWARE 5.x

Anforderungen an die HIS

(1) Mit dem Administrator Modul werden die Datenbank, Gruppen, Benutzer, Projekte und sonstige Aufgaben verwaltet.

Fallbeispiel. Auswahl und Evaluierung eines Software- Lokalisierungstools. Tekom Herbsttagung 2004 Angelika Zerfaß

Kurzanleitung So geht s

Qualitätsmanagement im Projekt

Bearbeiten elektronische Rechnungen (Invoices)

arlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek

1 Einleitung. 1.1 Motivation und Zielsetzung der Untersuchung

Verwendung von OO-Metriken zur Vorhersage

Tipps und Tricks zu Netop Vision und Vision Pro

AUF LETZTER SEITE DIESER ANLEITUNG!!!

Nicht über uns ohne uns

The B Method. B ist eine Methode zur Spezifikation zum Entwurf zur Implementierung von Software Systemen. Bücher zur B-Methode

Anleitung BFV-Widget-Generator

Systemen im Wandel. Autor: Dr. Gerd Frenzen Coromell GmbH Seite 1 von 5

How-to: Webserver NAT. Securepoint Security System Version 2007nx

Barcodedatei importieren

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Komponententest. Testen von Software Systemen. Übung 02 SS 2009 Version:

Switching. Übung 7 Spanning Tree. 7.1 Szenario

Durchgängiger System-/Software- Entwicklungsprozess in der Luftfahrt

RIGGTEK. Dissolution Test Systems. DissoPrep Browser-Interface

SDD System Design Document

Kurzanleitung Verwendung von USB-Sticks

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

REQUIREMENTS ENGINEERING KONSTRUKTIVE QS REQUIREMENTS ENGINEERING 1

Erfolgreiche ITIL Assessments mit CMMI bei führender internationaler Bank

Leitfaden zur Durchführung eines Jahreswechsels in BüroWARE 5.x

SOZIALVORSCHRIFTEN IM STRAßENVERKEHR Verordnung (EG) Nr. 561/2006, Richtlinie 2006/22/EG, Verordnung (EU) Nr. 165/2014

Task: Nmap Skripte ausführen

PRÜFUNG FÜR ELEKTROINGENIEURE. Softwaretechnik I. Musterlösung SS Ohne Gewähr -

Das Projekt wird durchgeführt von den Bezirksregierungen in Nordrhein- Westfalen in ihrer Funktion als Fachstelle für die öffentlichen Bibliotheken

Hilfe zur Urlaubsplanung und Zeiterfassung

SEP 114. Design by Contract

Use Cases. Use Cases

Projektmanagement. Vorlesung von Thomas Patzelt 9. Vorlesung

Stammdaten Auftragserfassung Produktionsbearbeitung Bestellwesen Cloud Computing

Multichannel Challenge: Integration von Vertriebsorganisation und Contact Center in der Versicherung

IBM Software Demos WebSphere Dashboard Framework

Die Softwareentwicklungsphasen!

Wir erledigen alles sofort. Warum Qualität, Risikomanagement, Gebrauchstauglichkeit und Dokumentation nach jeder Iteration fertig sind.

Softwareentwicklungsprozess im Praktikum. 23. April 2015

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

3. Stored Procedures und PL/SQL

Skript Pilotphase für Arbeitsgelegenheiten

Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing

Studie über Umfassendes Qualitätsmanagement ( TQM ) und Verbindung zum EFQM Excellence Modell

Einführung in Subversion

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

SF-RB. Modul Provisionsabrechnung & Planung Reiseagentenprovisionsabrechnung & Planung. SF-Software Touristiksoftware

Professionelle Seminare im Bereich MS-Office

Informationssystemanalyse Problemstellung 2 1. Trotz aller Methoden, Techniken usw. zeigen Untersuchungen sehr negative Ergebnisse:

itestra Software Tuning Mehr Leistung. Weniger Kosten. Software Productivity

Lehrer: Einschreibemethoden

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Integration mit. Wie AristaFlow Sie in Ihrem Unternehmen unterstützen kann, zeigen wir Ihnen am nachfolgenden Beispiel einer Support-Anfrage.

Stapelverarbeitung Teil 1

Testplan. Hochschule Luzern Technik & Architektur. Software Komponenten FS13. Gruppe 03 Horw,

NEWSLETTER // AUGUST 2015

Whitebox-Tests: Allgemeines

white sheep GmbH Unternehmensberatung Schnittstellen Framework

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Hochschule Ravensburg-Weingarten. Technik Wirtschaft Sozialwesen. Projektarbeit

Software- Qualitätsmanagement

Abituraufgabe zur Stochastik, Hessen 2009, Grundkurs (TR)

Fragebogen: Abschlussbefragung

Folgeanleitung für Klassenlehrer

WinWerk. Prozess 4 Akonto. KMU Ratgeber AG. Inhaltsverzeichnis. Im Ifang Effretikon

Online Rechnung Die Online Rechnung der Brennercom

EasyWk DAS Schwimmwettkampfprogramm

GuiXT und mysap ERP. Regensdorf, April 2004 Dr.Gerhard Rodé, Synactive GmbH

etermin Einbindung in Outlook

Ihren Kundendienst effektiver machen

Grundfunktionen und Bedienung

Die Post hat eine Umfrage gemacht

HTML5. Wie funktioniert HTML5? Tags: Attribute:

Informationswirtschaft II Rational Unified Process (RUP)

Guide DynDNS und Portforwarding

Informationswirtschaft II

WELCOME TO SPHERE SECURITY SOLUTIONS

How to do? Projekte - Zeiterfassung

Neuerungen in ReviPS Version 12g

Leitfaden #1a. "zanox Publisher-Statistik" (next generation)

Handbuch. Artologik EZ-Equip. Plug-in für EZbooking version 3.2. Artisan Global Software

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

INTERNET SERVICES ONLINE

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

DAUERHAFTE ÄNDERUNG VON SCHRIFTART, SCHRIFTGRÖßE

Folgeanleitung für Fachlehrer

Die elektronische Signatur. Anleitung

Orderarten im Wertpapierhandel

HTBVIEWER INBETRIEBNAHME

Installation mit Lizenz-Server verbinden

Transkript:

! " #! $! % & ' ' (! " # # $

Abstract Software integration testing can be divided into three sections: The static analysis, the symbolic execution and the dynamic test. While the static analysis exposes the couplings between the modules and its anomalies, the symbolic execution uncovers runtime errors, which only might happen under certain conditions. The dynamic test checks the interface operation, as it is specified in the software architecture and in the module specifications. The software integration test is applied to a sample project of the body electronics domain. Here, oftenly no software architecture and no module specifications are used due to a small development team and the reuse of code from earlier projects. The interfaces between modules are commonly global variables. While the static analysis, couplings between modules are identified. Anomalies within these coupling can be found, like unreachable functions, dead variables or reading of undefined variables. With the symbolic execution, unreachable code can be identified, as well as operations, which might fail according to external input values. A dynamic test is hardly possible, due to the missing architecture and module specifications. A work-around method is introduced, which concentrates on the interaction of two functions via a global single variable. The meaning of a variable is taken out of the code, the module design or the module test specification of the writing function. A test then determines if the reading function is acting as the writing function aimed by its writing. Finally, recommendations are formulated to improve the integration testing process. Seite 1

Zusammenfassung und Ausblick Der Software-Integrationstest ist ein Abschnitt der Softwareentwicklung, der sich mit der Verifikation der Schnittstellen zwischen Softwaremodulen befasst. Er folgt auf den Modultest, bei dem die Funktionen und Module einzeln isoliert geprüft werden. Bei der Integration werden die Module gemäß einer Integrationstrategie zu einem Softwaresystem zusammengefügt. Nach jedem Integrationsschritt folgt ein Integrationstest, bei dem das neu hinzugefügte Modul (oder mehrere neu hinzugefügte Module) auf das wunschgemäße Zusammenarbeiten mit dem Rest des (teilintegrierten) Softwaresystems hin untersucht wird. Der Software-Integrationstest gliedert sich in drei Teile, eine statische Integrationsanalyse, eine symbolische Ausführung und einen dynamischen Integrationstest. Der Software-Integrationstest wurde an einem Beispielprojekt der Karosserieelektronik durchgeführt. Die Softwareentwicklung in diesem Bereich ist geprägt durch kleine Entwicklungsteams mit kurzen Kommunikationswegen. Deshalb wird häufig auf die Erstellung einer Modulspezifikation und einer Softwarearchitektur verzichtet. Weiterhin kommunizieren die Funktionen und Module zumeist über globale Variablen. Basis der Entwicklung ist die Systemspezifikation. Für den Modultest wird daher vom Testteam ein Reengineeringprozess durchlaufen, bei dem ein Verständnis für die Funktionalität der Funktionen und Module geschaffen wird und Anforderungen der Systemspezifikation auf einzelne Funktionsgruppen heruntergebrochen werden können. Aus diesem Grund kann das Testteam dann auch einen intramodularen Test durchführen, der jedoch auf offensichtlich zusammengehörige Funktionen als einen Block (als ein Modul) auf ihre Funktionalität hin testet. Um eine statische Software-Integrationsanalyse durchführen zu können, wurden die Kopplungen der Softwarefunktionen untereinander ermittelt. Hierzu wurden mit Hilfe des Tools QA-C auf Dateiebene die Funktionen und globalen Variablen ermittelt. Im Anschluss wurden mit einem selbst geschriebenen Programm die Bezüge der Funktionen und Variablen über Dateigrenzen hinweg ermittelt. Auf diese Weise konnten nicht korrekt genutzte Variablen und Funktionen ermittelt werden, sowie Variablen, die von unterschiedlichen Funktionen für verschiedene Zwecke eingesetzt werden. Durch eine anschließende symbolische Ausführung konnten Codebereiche aufgedeckt werden, die niemals durchlaufen werden und Bereiche, die aufgrund äußerer Eingabewerte einen Laufzeitfehler erzeugen können. Als Tool wurde hierbei Polyspace eingesetzt, das das komplett integrierte Softwaresystem symbolisch analysierte. Die Seite 2

externen Schnittstellen des Softwaresystems, wie z.b. Interruptquellen und externe Parameter wurden dabei simuliert. Die gefunden Laufzeitfehler können weder durch eine statische Analyse, noch durch einen dynamischen Test gefunden werden, da sie nur unter bestimmten Bedingungen auftreten. Der dynamische Integrationstest kann nur stark eingeschränkt durchgeführt werden, weil keine Spezifikation der Softwarearchitektur, Module und Funktionen vorhanden ist. Die Möglichkeiten beschränken sich auf den funktionalen Integrationstest, ein Test des modulübergreifenden Kontroll- und Datenflusses, sowie der wertbezogene Test kann nicht durchgeführt werden. Es wurde ein Verfahren erarbeitet, dass durch Analyse des Codes, des Moduldesigns oder der Modultestspezifikation die Bedeutung einzelner globaler Variablen ermittelt und darauf testet, ob das gewünschte Verhalten, dass eine schreibende Funktion mit der Wertzuweisung auf eine Variable äußert, durch die lesende Funktion auch eingehalten wird. Zur Erstellung der Testfälle können die bereits ausgeführten Modultestfälle herangezogen und kombiniert werden. Als unterstützendes Tool eignet sich wie auch für den Modultest Rational Test Realtime. Das Verfahren wurde an mehreren Beispielen durchgeführt. Dabei wurden keine funktionalen Fehler gefunden, aber einige Schwächen, wie z.b. parallel genutzte globale Variablen oder identische Funktionalitäten mehrerer Funktionen. Zur Priorisierung der dynamischen Tests wurden zwei Metriken untersucht, die die Komplexität der mittels globaler Variablen realisierten Schnittstellen messen. Während eine Metrik die Schnittstellenkomplexität einer Funktion misst (Global variables read), misst die andere Metrik die Verwendungshäufigkeit einer globalen Variablen (Functions reading + Functions writing). Durch die beispielhaft durchgeführten Tests zeigte sich, dass Funktionen, die viele globale Variablen verwenden eher fehleranfällig sind als Funktionen, die wenige globale Variablen verwenden. Variablen, die nur von wenigen Funktionen verwendet werden, sind mitunter überflüssig. Abschließend wurden Empfehlungen für eine Verbesserung der Prozessbeschreibung gegeben, um die Entwicklung und das Testteam bei der Durchführung von Software- Integrationstest besser zu unterstützen. Um eine wirkliche Verbesserung herbeizuführen, die neben dem Integrationstest den gesamten Entwicklungsablauf verbessert, ist eine spezifizierte, den Projekten angepasste, schlanke Softwarearchitektur mit wenig Kopplung zwischen den Modulen unabdingbar. Generell muss daher für die Softwareentwurfsphase mehr Aufwand eingeplant werden. Gleiches gilt für eine detailliertere Dokumentation der Arbeitsergebnisse. Mit einer Erstellung der Dokumentation, insbesondere der entstandenen Architektur und der Moduldesigns, durch die Entwickler selbst, kann die Seite 3

erarbeitete Softwarestruktur bereits kritisch hinterfragt werden, ohne dass ein Test durchgeführt wird. Bislang werden in erster Linie aus Zeitgründen die Entwurfsphasen abgekürzt und direkt mit der Implementierung begonnen, um den Kunden so schnell wie möglich ein Muster zur Verfügung stellen zu können. Somit liegt ein Grund für die aktuelle Vorgehensweise auch bei den Kunden, die immer kürzere Entwicklungszeiten fordern, bei steigender Funktionalität und sinkenden Kostenvorstellungen. Da von dieser Seite aber kaum eine Entspannung der Situation erwartet werden kann, muss die Strategie bei der Produktentwicklung angepasst werden. Durch eine kundenunabhängige Plattformentwicklung können die Rahmenbedingungen (Architektur, Grundfunktionalität) geschaffen werden, um viele Kunden mit einem System beliefern zu können, dass die Anforderungen an Testbarkeit und Wartbarkeit erfüllt und gleichzeitig zügig an unterschiedliche Kundenanforderungen angepasst werden kann. Ansätze hierzu gibt es bereits in der Praxis wie die Herstellerinitiative Software, AUTOSAR und die kürzlich entwickelte Referenzarchitektur für EB-Softwareprodukte zeigen. Seite 4