Dieser Vortrag zeigt die Vorteile moderner Ansätze für den Test von Java-Anwendungen auf. Die für eine erfolgreiche Testautomatisierung einzusetzenden Java-Test-Frameworks und -Werkzeuge werden exemplarisch vorgestellt (z.B. JUnit, Abbot, JETM). Die Verwaltung von Testdaten und der Einsatz von dedizierten Testdatenbanken werden behandelt. Herr Seekamp veranschaulicht den praktischen Einsatz von automatisierten Testverfahren anhand von zwei JavaEE-Projekten. Er geht außerdem auf den Begriff des Testmanagement und das Konzept der testgetriebenen Software-Entwicklung ein. Die für die Durchführung von automatisierten Software-Tests notwendigen Bausteine werden zusammengefasst. Der Ausblick benennt die Problemfelder und das Potenzial der Testautomatisierung.
* Grundlagen und Ziele des Software-Tests
* Manueller Software-Test und dessen Nachteile
* Übergang zu automatisierten Testverfahren und deren Vorteile
* Frameworks und Werkzeuge für die Testautomatisierung
* Verwaltung von Testdaten und Einsatz von Testdatenbanken
* Beispiele für Testautomatisierung in JavaEE-Projekten
* Notwendigkeit des Testmanagement
* Konzept der testgetriebenen Entwicklung und Vorteile für den Entwickler
* Bausteine für automatisierte Software-Tests
* Problemfelder und Potenzial der Testautomatisierung
Häufig kommt in der Anwendungsentwicklung das Testen zu kurz. Dabei bietet sich ein enormes Einsparpotenzial, wenn Fehler bereits während der Entwicklungsphase und nicht erst nach Inbetriebnahme erkannt und behoben werden.
Weitere Vorträge, die wir auch gern in Ihrem Unternehmen halten, finden Sie unter: https://www.iks-gmbh.com/impulsvortraege
Unit Tests gelten als das Mittel der Wahl wenn es darum geht die Erstellung qualitativ hochwertiger Software zu unterstützten. Je wichtiger diese Tests jedoch sind, desto wichtiger ist auch die Betrachtung was sich eigentlich dahinter verbirgt. Was genau ist eine Unit, wie beeinflusst unsere Definition des Begriffs das erzielte Ergebnis und wo ordnen sich diese Tests ein wenn es um bestimmte Vorgehen wie TDD oder BDD geht?
Häufig kommt in der Anwendungsentwicklung das Testen zu kurz. Dabei bietet sich ein enormes Einsparpotenzial, wenn Fehler bereits während der Entwicklungsphase und nicht erst nach Inbetriebnahme erkannt und behoben werden.
Weitere Vorträge, die wir auch gern in Ihrem Unternehmen halten, finden Sie unter: https://www.iks-gmbh.com/impulsvortraege
Unit Tests gelten als das Mittel der Wahl wenn es darum geht die Erstellung qualitativ hochwertiger Software zu unterstützten. Je wichtiger diese Tests jedoch sind, desto wichtiger ist auch die Betrachtung was sich eigentlich dahinter verbirgt. Was genau ist eine Unit, wie beeinflusst unsere Definition des Begriffs das erzielte Ergebnis und wo ordnen sich diese Tests ein wenn es um bestimmte Vorgehen wie TDD oder BDD geht?
Presentation - Test Automation in Digital Transformation - IITPSA SIGIST 2016042Wayne Sinclair
This document discusses test automation in the context of a successful digital transformation journey. It introduces the speakers and outlines some of the top technical challenges in application development. Digital transformation is defined as realigning technology and business models around the customer experience. Test automation is proposed as a solution to support faster software delivery without becoming a bottleneck during digital transformation. The benefits of test automation include improved time to market, increased efficiency and quality, and decreased costs. Cross-skilling teams and evolving QA roles can facilitate successful test automation. In conclusion, relying too heavily on manual testing is a challenge, and adopting a full test automation strategy can help achieve the goals of digital transformation.
Open Source Software: Reif für den typischen CH KMU?Matthias Stürmer
Agenda
1) Was ist Open Source Software?
2) Vorteile von Open Source Software
3) Branchen-Studien
4) Die Schweizer Sicht auf Open Source
5) Beispiele aus der Schweiz
6) Sichtweise der KMUs
7) Fazit
El documento habla sobre la importancia de la usabilidad del software. Explica que la usabilidad debe ser considerada como una norma de calidad del software y parte integral del proceso de desarrollo, aunque a menudo es omitida. También define la usabilidad como el resultado de aplicar técnicas que toman en cuenta al factor humano en la interacción con sistemas computacionales a lo largo de todo el ciclo de desarrollo.
Das Potential von Open Source Software nutzen und die Risiken minimierenMatthias Stürmer
Laut der Open Source Studie Schweiz 2012 setzen 93% aller Unternehmen und Behörden bewusst Open Source Software ein. Dies zeigt, dass Open Source Technologien längst im Geschäftsalltag der Informatik angekommen sind. Allerdings setzen erst wenige Firmen und Verwaltungen Open Source Software auf eine strategische Art und Weise ein. Das Potential wird dadurch nicht ausgenutzt und die Risiken werden nicht adressiert. Dieser Vortrag zeigt auf, welche Vorteile der Einsatz von Open Source Software bringt und mit welchen konkreten Massnahmen diese genutzt werden können. Gleichzeitig werden auch die Herausforderungen im Umgang mit Open Source Software beleuchtet und Vorgehensweisen aufgezeigt, wie die Nachteile überwunden werden. Durch Einbezug von zahlreichen Praxis-Beispielen aus Wirtschaft und öffentlicher Hand werden die Umsetzungsmöglichkeiten illustriert.
Matthias Stürmer ist Manager bei Ernst & Young Schweiz mit Spezialisierung auf Open Source Software, Open Government Data und Social Media Governance. Er studierte an der Universität Bern Betriebswirtschaft und Informatik und schloss 2005 mit einer Lizenziatsarbeit zu «Open Source Community Building» ab. Bis 2009 doktorierte er an der ETH Zürich am Lehrstuhl für Strategisches Management und Innovation und erforschte die Zusammenarbeit zwischen Open Source Communities und Technologie-Unternehmen. Danach arbeitete er beim Schweizer Software-Unternehmen Liip AG und ist seit 2010 bei Ernst & Young in Bern tätig. Matthias Stürmer ist Vorstandsmitglied von /ch/open, Geschäftsleiter der Parlamentarischen Gruppe Digitale Nachhaltigkeit und Mitgründer des Open Government Data Vereins Opendata.ch. Zudem ist er Leiter der Working Group Office Interoperability bei der Open Source Business Alliance OSBA und gehört als Stadtrat dem Parlament der Stadt Bern an.
Branchen‐ und produktspezifische Erfassungsmasken:
Jede Branche hat ihre Produkte und Gesetzmäßigkeiten. Eine qualifizierte Kundenbetreuung wird dann durch Software unterstützt, wenn die diese Produkte adäquat abzubilden sind.
Um Sie optimal zu unterstützen, sind in der FABIS‐Vertriebsserie Funktionen für die Gestaltung von Produkt ‐ Masken integriert. Diese Funktionen versetzen uns in die Lage innerhalb von 2 Tagen für ein völlig neues Produkt die entsprechende Eingabemaske zur erstellen.
Selbstverständlich ist diese Maske dann mit den Modulen Provisionsabrechnung, Zielvereinbarungen und Kampagnenmanagement verknüpft. Setzen Sie eines oder alle dieser Module ein, steht Ihnen der gesamte Funktionsumfang dieser Module für das neue Produkt zur Verfügung.
Kann FABIS die neue Maske auf Basis einer bereits bestehenden Produkt ‐ Maske erzeugen, verkürzt sich die Dauer für die Erstellung entsprechend.
Sämtliche Produkt ‐ Masken sind zusätzlich mit einer Reihe von Funktionen versehen.
• Je nach Branche und Produkt kann die Produktlebensdauer, Vertragslaufzeit und
Zahlungsdauer erfasst werden. Auf Basis dieser Daten überwacht die Software den
errechneten Abläufe. Im Rahmen dieser Überwachung berücksichtigt die Software die
von Ihnen vorgegebene Fristen. Mit Hilfe dieser Funktion können Sie sich
Wiedervorlagen für Servicetermine vom System erzeugen lassen.
• Pflege des Produkt‐ oder Vertragszustands. Mit Hilfe dieser Information ermittelt die
Software den aktiven Produkt‐ oder Vertragsbestand. Dies hilft Ihnen z.B bei der
Ermittlung des Risikos bei länger laufenden Verträgen oder potentiellen
Provisionsrückbelastungen (Finanzdienstleistung).
Für folgende Branchen existieren bereits spezifische Masken:
• Energie / Strom
• Energie
• Fertighaus
• Fertighaus
• Handel / Dienstleistungen
• Dienstleistungen
• Dienstleistungen (Minimum)
• Gebrauchsgüter
• Investitionsgüter
• Verbrauchsgüter
Individuelle Masken
Provisionsanbindung
Schnelle Maskenerstellung
Produktlebensdauer,
Vertragslaufzeit
Produktzustand,
Vertragszustand
Vorhandene Masken
Energie / Strom
Fertighaus
Handel / Dienstleistungen
Produktmanagement
Branchen‐ und produktspezifische
2009 Wikimanagement: Neue Denkansätze für die Wissensnutzung im Geschäftsproz...Ayelt Komus
Angebote wie Wikipedia, flickr, twitter u.v.a. zeigen, die großen Potenziale von Social Software. Der Vortrag zeigt, wie die Wikimanagement-Erfolgsmuster im Business Process Management genutzt werden können.
Vortrag »Freie Software und ihre Unentbehrlichkeit in der modernen Informationsgesellschaft« von Torsten Grote (FSFE), gehalten beim Treffen der AG Digitale Demokratie am 10.10.2009 in Berlin
Solutions en mode SaaS (Software as a Service) : les PME accèdent-elles à des...Club Alliances
Diapositives préparées par Loic Simon [IBM - Club Alliances - www.cluballiances.com] à l'occasion d'une table ronde organisée dans le cadre du Forum Opti'Cost [http://www.opticost-paris.com] sur le thème : "Solutions en mode SaaS (Software as a Service) : les PME accèdent-elles à des offres plus souples et plus performantes ?"
(In)Segurança De Software, Quebrando CódigosRafael Rosa
O documento discute princípios de segurança de software, causas de falhas em software, consequências quando o software falha, e técnicas para analisar software, incluindo ferramentas como depuradores, disassemblers e fuzzers.
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)Florian Wolters
German slides that give a overview about developer tests in the C++ programming language. It tries to underline the dependencies between software design, clean code, software quality and the software testing activity itself.
Presentation - Test Automation in Digital Transformation - IITPSA SIGIST 2016042Wayne Sinclair
This document discusses test automation in the context of a successful digital transformation journey. It introduces the speakers and outlines some of the top technical challenges in application development. Digital transformation is defined as realigning technology and business models around the customer experience. Test automation is proposed as a solution to support faster software delivery without becoming a bottleneck during digital transformation. The benefits of test automation include improved time to market, increased efficiency and quality, and decreased costs. Cross-skilling teams and evolving QA roles can facilitate successful test automation. In conclusion, relying too heavily on manual testing is a challenge, and adopting a full test automation strategy can help achieve the goals of digital transformation.
Open Source Software: Reif für den typischen CH KMU?Matthias Stürmer
Agenda
1) Was ist Open Source Software?
2) Vorteile von Open Source Software
3) Branchen-Studien
4) Die Schweizer Sicht auf Open Source
5) Beispiele aus der Schweiz
6) Sichtweise der KMUs
7) Fazit
El documento habla sobre la importancia de la usabilidad del software. Explica que la usabilidad debe ser considerada como una norma de calidad del software y parte integral del proceso de desarrollo, aunque a menudo es omitida. También define la usabilidad como el resultado de aplicar técnicas que toman en cuenta al factor humano en la interacción con sistemas computacionales a lo largo de todo el ciclo de desarrollo.
Das Potential von Open Source Software nutzen und die Risiken minimierenMatthias Stürmer
Laut der Open Source Studie Schweiz 2012 setzen 93% aller Unternehmen und Behörden bewusst Open Source Software ein. Dies zeigt, dass Open Source Technologien längst im Geschäftsalltag der Informatik angekommen sind. Allerdings setzen erst wenige Firmen und Verwaltungen Open Source Software auf eine strategische Art und Weise ein. Das Potential wird dadurch nicht ausgenutzt und die Risiken werden nicht adressiert. Dieser Vortrag zeigt auf, welche Vorteile der Einsatz von Open Source Software bringt und mit welchen konkreten Massnahmen diese genutzt werden können. Gleichzeitig werden auch die Herausforderungen im Umgang mit Open Source Software beleuchtet und Vorgehensweisen aufgezeigt, wie die Nachteile überwunden werden. Durch Einbezug von zahlreichen Praxis-Beispielen aus Wirtschaft und öffentlicher Hand werden die Umsetzungsmöglichkeiten illustriert.
Matthias Stürmer ist Manager bei Ernst & Young Schweiz mit Spezialisierung auf Open Source Software, Open Government Data und Social Media Governance. Er studierte an der Universität Bern Betriebswirtschaft und Informatik und schloss 2005 mit einer Lizenziatsarbeit zu «Open Source Community Building» ab. Bis 2009 doktorierte er an der ETH Zürich am Lehrstuhl für Strategisches Management und Innovation und erforschte die Zusammenarbeit zwischen Open Source Communities und Technologie-Unternehmen. Danach arbeitete er beim Schweizer Software-Unternehmen Liip AG und ist seit 2010 bei Ernst & Young in Bern tätig. Matthias Stürmer ist Vorstandsmitglied von /ch/open, Geschäftsleiter der Parlamentarischen Gruppe Digitale Nachhaltigkeit und Mitgründer des Open Government Data Vereins Opendata.ch. Zudem ist er Leiter der Working Group Office Interoperability bei der Open Source Business Alliance OSBA und gehört als Stadtrat dem Parlament der Stadt Bern an.
Branchen‐ und produktspezifische Erfassungsmasken:
Jede Branche hat ihre Produkte und Gesetzmäßigkeiten. Eine qualifizierte Kundenbetreuung wird dann durch Software unterstützt, wenn die diese Produkte adäquat abzubilden sind.
Um Sie optimal zu unterstützen, sind in der FABIS‐Vertriebsserie Funktionen für die Gestaltung von Produkt ‐ Masken integriert. Diese Funktionen versetzen uns in die Lage innerhalb von 2 Tagen für ein völlig neues Produkt die entsprechende Eingabemaske zur erstellen.
Selbstverständlich ist diese Maske dann mit den Modulen Provisionsabrechnung, Zielvereinbarungen und Kampagnenmanagement verknüpft. Setzen Sie eines oder alle dieser Module ein, steht Ihnen der gesamte Funktionsumfang dieser Module für das neue Produkt zur Verfügung.
Kann FABIS die neue Maske auf Basis einer bereits bestehenden Produkt ‐ Maske erzeugen, verkürzt sich die Dauer für die Erstellung entsprechend.
Sämtliche Produkt ‐ Masken sind zusätzlich mit einer Reihe von Funktionen versehen.
• Je nach Branche und Produkt kann die Produktlebensdauer, Vertragslaufzeit und
Zahlungsdauer erfasst werden. Auf Basis dieser Daten überwacht die Software den
errechneten Abläufe. Im Rahmen dieser Überwachung berücksichtigt die Software die
von Ihnen vorgegebene Fristen. Mit Hilfe dieser Funktion können Sie sich
Wiedervorlagen für Servicetermine vom System erzeugen lassen.
• Pflege des Produkt‐ oder Vertragszustands. Mit Hilfe dieser Information ermittelt die
Software den aktiven Produkt‐ oder Vertragsbestand. Dies hilft Ihnen z.B bei der
Ermittlung des Risikos bei länger laufenden Verträgen oder potentiellen
Provisionsrückbelastungen (Finanzdienstleistung).
Für folgende Branchen existieren bereits spezifische Masken:
• Energie / Strom
• Energie
• Fertighaus
• Fertighaus
• Handel / Dienstleistungen
• Dienstleistungen
• Dienstleistungen (Minimum)
• Gebrauchsgüter
• Investitionsgüter
• Verbrauchsgüter
Individuelle Masken
Provisionsanbindung
Schnelle Maskenerstellung
Produktlebensdauer,
Vertragslaufzeit
Produktzustand,
Vertragszustand
Vorhandene Masken
Energie / Strom
Fertighaus
Handel / Dienstleistungen
Produktmanagement
Branchen‐ und produktspezifische
2009 Wikimanagement: Neue Denkansätze für die Wissensnutzung im Geschäftsproz...Ayelt Komus
Angebote wie Wikipedia, flickr, twitter u.v.a. zeigen, die großen Potenziale von Social Software. Der Vortrag zeigt, wie die Wikimanagement-Erfolgsmuster im Business Process Management genutzt werden können.
Vortrag »Freie Software und ihre Unentbehrlichkeit in der modernen Informationsgesellschaft« von Torsten Grote (FSFE), gehalten beim Treffen der AG Digitale Demokratie am 10.10.2009 in Berlin
Solutions en mode SaaS (Software as a Service) : les PME accèdent-elles à des...Club Alliances
Diapositives préparées par Loic Simon [IBM - Club Alliances - www.cluballiances.com] à l'occasion d'une table ronde organisée dans le cadre du Forum Opti'Cost [http://www.opticost-paris.com] sur le thème : "Solutions en mode SaaS (Software as a Service) : les PME accèdent-elles à des offres plus souples et plus performantes ?"
(In)Segurança De Software, Quebrando CódigosRafael Rosa
O documento discute princípios de segurança de software, causas de falhas em software, consequências quando o software falha, e técnicas para analisar software, incluindo ferramentas como depuradores, disassemblers e fuzzers.
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)Florian Wolters
German slides that give a overview about developer tests in the C++ programming language. It tries to underline the dependencies between software design, clean code, software quality and the software testing activity itself.
eCATT & OpenSource - Automatisierter Test in heterogenen SystemlandschaftenChristoph Menke
Nur in den seltensten Fälle besteht eine Systemlandschaft rein aus SAP Systeme. Meistens spielen auch Non-SAP Anwendungen innerhalb der IT-Landschaft eine wichtige Rolle. Das etablieren einer Testautomatisierung, welche der Systemlandschaft entspricht und diese bedienen kann ist herausfordernd. Ich berichte in diesem Vortrag darüber, wie wir bei einem Kunden ein Framework eingeführt haben aus welchen sich unterschiedliche Testautomatisierungswerkzeuge einheitlich und wiederverwendbar ansteuern und nutzen lassen und wie wir auch eCATT in dieses Framework integriert haben.
Zum Testen von Software gehören sowohl das Aufspüren von Fehlern während der Entwicklung, als auch die Überprüfung des Gesamtproduktes. Das heißt, man sucht zunächst in einzelnen Codefragmenten nach Fehlern, und überprüft dann das Gesamtpaket auf seine Vollständigkeit und Korrektheit hin. Unzureichende oder unvollständige Dokumentationen führen häufig zu einer unzulänglichen Erfassung von fehlerfhaften Anforderungen. Dies fällt besonders bei sich wiederholenden und sich schnell verändernden PHP-Entwicklungen ins Gewicht. Der Grund dafür ist, dass PHP als nicht typisierte Sprache die Möglichkeit bietet, in hohem Tempo neue Funktionalitäten zu bestehender Software hinzuzufügen und zu ändern. Anwendungsteile, die mit PHP implementiert wurden, bedürfen keiner Neukompilierung. Die Genauigkeit des Gesamtkontextes kann noch während der Laufzeit des Prozesses geprüft werden. Des Weiteren muss auch sichergestellt werden, dass die Rückgabewerte von Methoden der Quellcode-Dokumentation bzw. dem erwarteten Typ entsprechen. In Projekten mit größeren Teams wird es häufig zur Wiederverwendung von Komponenten – oft auch in einem vom Software-Autor nicht erwarteten Kontext – kommen. Somit ist immer noch das Wichtigste nicht genannt: Sind neue Funktionen korrekt umgesetzt, und funktioniert die alte Funktionalität noch?
Testen in agilen Projekten, Swiss Testing Day Zürich 2013
Agile Projekte verursachen massive Probleme im klassischen Testvorgehen: Detailspezifikationen sind erst (wenn überhaupt) kurz vor der Implementierung verfügbar und der Test soll gleichzeitig mit der Entwicklung am Ende jeder Iteration abgeschlossen sein. Bei Iterationslängen von wenigen Wochen verursacht das beträchtlichen Mehraufwand für den Test, der sich noch dazu am Ende der Iteration konzentriert, wodurch das Ziel eines voll getesteten Systems am Ende jeder Iteration oft nicht erreicht werden kann.
Der Vortrag stellt drei wichtige Erfolgsrezepte für Testen in agilen Projekten vor (1. Multifunktionale Teams, 2. Testautomatisierung und 3. Spezifikation mit Beispielen) und zeigt, welche Änderungen notwendig sind, damit Test und Entwicklung effizient in agilen Projekten zusammenarbeiten. Neben der Vorstellung von wichtigen Konzepten für agiles Testen (agile Testquadranten, Testautomatisierungspyramide und Specification-By-Example) zeigt der Vortrag auch, wie diese Methoden mit Werkzeugen unterstützt werden können, und berichtet von deren praktischer Anwendung in unterschiedlichen Projekten.
Video: http://www.youtube.com/watch?v=LL2kOToKUF0
Agiles Testen (z.B. in Scrum, Kanban, XP) ist zu einem unverzichtbaren Bestandteil agiler Softwareentwicklung geworden.
Testen in agilen Entwicklungsprojekten unterscheidet sich vom klassischen Testen in erster Linie dadurch, dass Testen eine präventive Maßnahme ist und dass die Tests viel häufiger ausgeführt werden müssen. Der Fokus liegt dabei in der Einbindung von Testern unter Beachtung des agilen Manifests und der Anwendung agiler Prinzipien auf das Testen, wie beispielsweise schnelles Feedback, hoher Automatisierungsgrad, Auflösung starrer Teststufen, enge Zusammenarbeit in selbstorganisierten Teams.
Inhalt
- Definition
- Agiles Testen im Team
- Testkategorien
- Unit-Tests
- TDD/ATDD/BDD
- 3 Amigo
- Akzeptanztests
- Exploratives Testen
- Continuous Integration, Delivery & Deployment
- Integration in Scrum
- Genereller Umgang mit Bugs
Der Vortrag zeigt auf, wie Risikominimierung bei Änderungen im Oracle Datenbank-Umfeld betrieben werden kann. Es wird ein allgemeiner Überblick über mögliche Änderungen gegeben, sowie auf das Werkzeug Real Application Testing eingegangen. Zudem werden Stolperfallen und mögliche Probleme aufgezeigt. Diesen Beitrag präsentierte OPITZ CONSULTING Berater Simon Dickmeiß im Rahmen der Special DOAG Interest Group Database am 12. Oktober 2010 in Frankfurt/Kaiserei.
A power workshop during JAX 2007 on advanced techniques of test-driven development. It deals with acceptance tests using FIT as well as with mock objects, GUI testing and Groovy as a testing language for Java.
Wann lohnt sich Software Testautomatisierung?Claudia Baur
Bei der Umstellung vom manuellen auf automatisiertes Tests ist der ROI eine wichtige Entscheidungsgrundlage: ➽Wann lohnt sich Testautomatiserung? ➽Wann sollte automatisiert werden? ➽Manuelles vs. Automatisiertes Software Testen.
In diesem Referat erhalten Sie eine kurze Einführung zu Scrum und gehen auf die Möglichkeiten ein, wie Testing in agilen Projekten angewendet und verbessert werden kann. Besonderes Augenmerk gilt dabei dem Einsatz eines Embedded Scrum Testers, der explorativen Testmethodik und dem Session Based Testing.
Kurzbeschreibung
Über 16 Mio. Facebook User in Deutschland - alleine diese Zahl macht deutlich, dass Unternehmen mittlerweile am Web 2.0 und den Sozialen Medien nicht mehr vorbeikommen. Aber wie steigt man in das Thema ein und was muss man bedenken, wenn man mit seiner Firma, Marke oder Produkt in den Sozialen Medien aktiv werden will? Fragen, die Bert Branahl, Geschäftsführer ConsultM, Bielefeld in seinem Vortrag beantwortet. Dabei werden Beispiele aus der Praxis zeigen, was heute im Web 2.0 möglich ist.
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...GFU Cyrus AG
Kurzbeschreibung
Softwarequalität ist keine Spracheigenschaft. In jeder noch so guten Programmiersprache kann man schlechte Programme schreiben – sogar in Java. Herr Seekamp, Senior Consultant bei der GEDOPLAN GmbH, macht in diesem Vortrag anhand von Fallbeispielen aus seinen Projekten deutlich, was verständlichen und wartbaren Code ausmacht, welche Regeln man dafür beherzigen sollte und welche Analysewerkzeuge dabei unterstützen können.
Inhalt
Regeln für guten Java-Code
Statische Code-Analyse
Refactoring
Werkzeuge zur Sicherung der Qualität
Kurzbeschreibung
Softwareentwicklung braucht Profis. Wie aber definiert man einen "professionellen" Software-Entwickler ? Clean Code Development ist eine der ersten "Versuche", um diese Frage möglichst umfassend, technologieunabhängig und über die Bedürfnisse des Kunden hinaus zu beantworten.
Inhalt
Was ist ein professioneller Software-Entwickler
Professionlität
Qualität
Das CCD Werte-System
Prinzipien und Praktiken
Das Grad-System
Cross-Apps-Entwicklung für iPhone, Android und Co.GFU Cyrus AG
Kurzbeschreibung
Beschreibung: Mit der Veröffentlichung von iPhone, iPod Touch sowie iPad und dem iPhone OS hat Apple den Markt für mobile Endgeräte massenfähig gemacht. Google liefert mit dem Android-Betriebssystem ebenfalls eine stetig wachsende Plattform. Einer der Erfolgsfaktoren ist der auf beiden Systemen verfügbaren Browser "Mobile Safari" bzw. die technologische Basis WebKit. Diese freie HTML-Rendering-Bibliothek wird nicht nur von Apple und Google eingesetzt, sondern auch von anderen Unternehmen, wie Nokia, Adobe und Blackberry verwendet. Dozent: Peter Hecker, GFU Cyrus AG
Inhalt
- Einführung und Motivation
- Die WebKit-Plattform
- Überblick "mobile" Frameworks
- Zusammenfassung und Fazit
Softwarequalitätssicherung mit Continuous Integration ToolsGFU Cyrus AG
Kurzbeschreibung
Automatische Softwaretests rücken immer mehr in den Mittelpunkt. Gerade die derzeit vielfach eingesetzten agilen Vorgehensweisen benötigen ein teamübergreifendes und reproduzierbares Verfahren zur Sicherung der Softwarequalität. In diesem Vortrag legt Dirk Weil, Geschäftsführer der GEDOPLAN GmbH aus Bielefeld, das Augenmerk auf die Werkzeuge, die in Java-Projekten zum fortlaufenden Build und Test von Software genutzt werden können. Anhand einiger Praxisbeispiele zeigt er den Aufbau und Betrieb einer Continuous-Integration-Umgebung, die GEDOPALN für Softwareprojekte betreibt. Dozent: Dirk Weil, Gedoplan
Inhalt
- Grundlagen und Motivation automatischer Softwaretests
- Testziele und Verfahren (Unit-Tests, Regressionstests, Akzeptanztests etc.)
- Build- und Testautomatisierung
- Beispielumgebung auf Basis von Ant, Maven, Subversion und Hudson
- Code-Analyse
- Extreme Feedback
Datenschutz bei Facebook & Co. - Wie schütze ich meine persönlichen Daten im ...GFU Cyrus AG
Kurzbeschreibung
Der Vortrag geht darauf ein, was Facebook & Co. mit den ihnen anvertrauten Daten macht. Er schafft ein Bewusstsein dafür, wie man selbst am besten mit seinen Daten im Internet umgeht.
Inhalt
Unendlich viele persönliche Daten werden heute bei Facebook und Co. eingegeben und dieses wird fast immer noch mit reichlich Bildmaterial untermauert.
Hier gibt es Fotos von Partys, aus dem Büro oder dem eigenen Garten.
Wir erzählen jedem der es Wissen will oder auch nicht dass wir ab nächste Woche im Urlaub, Offline oder untergetaucht sind.
Wozu werden diese Informationen eigentlich verwandt?
Wer kann sieaußerhalb der eigenen Community noch gebrauchen und warum?
Stehen wir somit häufig nicht vollkommen "nackt" in der Öffentlichkeit?
Der Vortrag zeigt Risiken aber auch Chancen des "Social Webs" auf und soll primär sensibilisieren, verantwortungsvoll mit persönlichen Daten umzugehen, egal ob es die Eigenen oder die von Dritten sind.
Requirements Engineering in agilen Projekten - Flexibilität ist gefordertGFU Cyrus AG
In agilen Projekten ist funktionierende Software wichtiger als ausufernde Dokumentation. Durch kurze Entwicklungszyklen (Iterationen) werden den Anwendern schon während der Entwicklung Teilpakete der geplanten Softwarelösung mit einem sinnvollen Funktionsumfang bereit gestellt. In agilen Projekten ist die flexible Reaktion auf Änderungen der Anforderungen wichtiger als ein starrer Projektplan. Agilität bei der Entwicklung erfordert aber auch Agilität bei der Beschreibung der funktionalen Anforderungen (Requirements Engineering). Use Case-Modelle eignen sich hervorragend für diese Aufgabe. Durch dieses Vorgehen ist es möglich, Wünsche der Anwender, geänderte Rahmenbedingungen und Erfahrungen aus der bisherigen Entwicklung in der Realisierung zu berücksichtigen. Reinhard Brüggemeyer, Dozent dieses "Treffpunkt Semicolon", zeigt, warum in agilen Projekten der Anwender und seine Aufgaben im Mittelpunkt stehen. Pro und Contra des agilen Vorgehens gegenüber dem klassischen Requirements Engineering werden diskutiert.
SharePoint 2010 - Was ist neu, was wird besser!GFU Cyrus AG
Microsoft Office SharePoint Server (MOSS) 2007 hat sich als ernstzunehmende Plattform für Portale, Collaboration und Content Management System (CMS) am Markt etabliert und gehört laut Gartner Group neben IBM WebSphere Portal Server und SAP NetWeaver Portal zu den Marktführer dieser Kategorie Software. Ab Mitte 2010 wird die nächste Version der Microsoft SharePoint Server (MSS) 2010 erscheinen. Nach dem schon hohen Grad Alltagstauglichkeit der Version 2007 folgt der Server 2010 mit vielen produktiven Verbesserungen. Diese sind im Bereich der Bedienbarkeit (Usability), der Administration und auch der Entwicklung zu finden.
* Vorstellung der neuen SharePoint Produktpalette (Server, Suche, Designer, Visio, InfoPath, Excel, Oberfläche, Workspace)
* Demonstration der neuen Administration - Konzeptionelle Änderungen zum Vorgänger
* Demonstration der neuen Web-Oberfläche (Ribbons)
* Demonstration des neuen SharePoint Designers (Wiederverwendbarkeit von Anpassungen)
* Zusammenfassung der weiteren Neuerungen
Pragmatische Einführung von IT-Servicemanagement - ITIL im Unternehmen - Erfa...GFU Cyrus AG
Viele Unternehmen scheuen sich gerade in wirtschaftlich angespannten Zeiten verständlicherweise, eine Optimierung Ihres IT-Service Managements anzugehen. Diese paradoxe Situation liegt u.a. daran, dass die in der Praxis etablierten Methoden -aufgrund Ihres Umfangs und Ihrer scheinbaren Komplexität- als nahezu unüberwindbare Hindernisse empfunden werden. Gerne möchten wir Ihnen vorstellen, wie Sie durch schlanke und ergebnisorientierte Strukturen einen wertschöpfenden Betrieb Ihrer IT-Services sicherstellen und gerade in der heißen Phase der Implementierung organisatorische oder personelle Störungen vermeiden. Ergänzend möchten wir Ihnen einen Überblick zum Thema ISO 20.000 und die damit verbundene mögliche Erhöhung der Wettbewerbsfähigkeit Ihrer Organisation bieten.
Liferay Portal - ein Webportal für viele UnternehmensanforderungenGFU Cyrus AG
Liferay Portal ist eines der führenden Open Source Portalsysteme und wird verwendet, um eine Vielzahl innovativer Unternehmenslösungen zu betreiben, z.B. Mitarbeiter-, Vertriebs- Kunden- und Partnerportale, soziale Netzwerke, Workspaces zur Teamarbeit, Unternehmensintranets und öffentliche Websites - zu einem Bruchteil der Kosten properitärer Systeme. Darüber hinaus ermöglicht Liferay die innovative und einfache Integration von Backend-Systemen wie Finanzlösungen, CRM und ERP- Software in Kombination mit den bereits eingebauten Social, Collaboration und Web 2.0 Funktionen. Zahlreiche nationale und internationale Unternehmen setzen Liferay bereits ein (u.a. Lufthansa, Deutsche Post, Deutsche Telekom, BMW, Sparkasse KölnBonn, RWE, Vodafone, HanseMerkur Versicherungen) und es werden täglich mehr. Liferay - ein System auch für ihre Unternehmensanforderungen?
Webportale - Konzept, Vision und Realität. Eine Geschichte von Erfolg und Scheitern.
Liferay - ein Portal für alles? Der Herausforderer aus dem Open Source Lager.
Einsatzszenarien - Was geht? Was nicht? Und was auf gar keinen Fall?
Lifepräsentation - Ein Klick sagt mehr als 1000 Folien. Ein Walk-through durch die Keyfeatures von Liferay
1996 hat PostgreSQL seinen Kampf gegen kommerzielle Datenbanksysteme aufgenommen. Als Erbe des Datenbank Management Systems Ingres ist PostgreSQL (daher auch der Name, Post=nach, (in-)"gres") auf dem Weg immer mehr kommerzielle Datenbanksysteme auch im Highlevel Segment zu verdrängen. Mit dem Zusatz SQL verdeutlich PostgreSQL sein bestreben die SQL-ANSI-Normen umzusetzen. Vor allem im Hochschulbereich wird PostgreSQL Entwickelt und auch eingesetzt. Datenmengen von mehreren Milliarden Datensätzen pro Tabelle bewältigt PostgreSQL mit Leichtigkeit denn gerade im GIS (Geografischen Information Systemen) Umfeld sind solche Datenmengen unabdingbar.
PostgreSQL im Überblick
Einsatzgebiete
Erfahrungsberichte
Grenzen und Ausblicke
Erweiterungen rund um PostgreSQL
PostgreSQL im Einsatz (Praxisberichte)
Java Server Faces 2.0 - Der Standard für moderne und komponentenbasierte Weba...GFU Cyrus AG
JSF (JavaServer Faces) ist seit 2004 der Standard für komponentenbasierte Webanwendungen. Anfangs nur belächelt und als Intranetlösung abgetan, ist JSF heute eine stabile Grundlage, auch für Webanwendungen im Internet. Seit Juni 2009 ist mit JSR 314 die Version 2.0 fertig spezifiziert. Dieser Vortrag von Robert Reiz gibt eine kurze Einführung in die Grundlagen, einen kurzen geschichtlichen Rückblick und eine Einführung in die neuen Features von JSF 2.0.
Grundlagen und Rückblick
Vorstellung von JSF 2.0
Fazit
Wieviel Web2.0 braucht Ihr Unternehmen?GFU Cyrus AG
Für die Generation Y (ab Ende der 1970er Jahre geborene) ist der Einsatz von Web2.0 Tools wie Blogs, Twitter, Wikis, Social Networks etc. eine absolute Selbstverständlichkeit. Wie aber können Unternehmen vom Social Web profitieren? Ist die Investition in Web2.0 bereits ein Muss, oder geht es auch Ohne? Wo sind die Risiken und wie kann ich Ihnen begegnen?
Übersicht und Kurzeinführung
Anwendungspotentiale
Herausforderungen
Fazit
Die Version 6 der Java Enterprise Edition steht kurz vor der Verabschiedung. Viele Stimmen sagen, dass die darin enthaltenen Technologien nunmehr nahezu ausgereift und alle Erwartungen erfüllt seien. Es werden die neuen Features insbesondere in den Bereichen Enterprise JavaBeans, Webanwendungen, Java Persistence und Webservices beleuchtet. Die anschließende Diskussion kann zeigen, ob die anfangs angesprochenen Vorschusslorbeeren gerechtfertigt sind und ob die Wunschliste tatsächlich vollständig abgearbeitet wurde.
EJB 3.1
- Session Beans ohne local Interface
- Singletons, Timer
- Session Bean Methoden asynchron
Servlet 3.0
- Ease of Development
JSF 2.0
- Ohne faces-config.xml?
JPA 2.0
- Weitere Mapping-Optionen
- Relationsfelder im Primärschlüssel
Das Java-Spring-Framework in der PraxisGFU Cyrus AG
Die Java EE Plattform hat sich in der server-seitigen Anwendungsentwicklung mit Java durchgesetzt. Doch dieses Standardmodell basiert auf den Enterprise JavaBeans, die einen schwergewichtigten Ansatz darstellen.
Mit dem Spring Framework gibt es jetzt eine so genannte "leichtgewichtige" Alternative.
Hierbei werden ausschließlich POJO (Plain Old Java Object) Objekte verwendet und die verwendeten Dienste der Java EE Plattform wie z.B. der Transaktionsdienst nur deskriptiv konfiguriert.
Der Vorteil liegt in der einfachen Entwicklung sowie der robusten Testbarkeit der Anwendung.
Einsatzmöglichkeiten des Spring Frameworks
Das Spring Framework
Tool Unterstützung für die Anwendungsentwicklung
Spring AOP
Spring und JDBC
Testen mit Spring
Spring und Java Standards
Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer SeminarverwaltungGFU Cyrus AG
In einer Vielzahl von GFU-Kursen wurde bereits die UML-Notation vermittelt. Von praktischem Interesse ist jedoch die Umsetzung im Rahmen einer GPA/OOA/OOD, um eine Umsetzung in modernen objektorientierten Programmiersprachen zu ermöglichen.
Im Rahmen dieses Vortrages wird die Anwendung der UML am Fallbeispiel einer Software zur Seminarverwaltung unter Verwendung von agilen Methoden beschrieben. Im Fokus steht dabei, den objektorientierten Ansatz der Softwareentwicklung zu verdeutlichen. Ausserdem soll die spezielle Sichtweise jedes UML-Diagramms auf die zu entwickelnde Software sowie die Zusammenhänge der Diagramme betont werden. Behandelt werden soll:
GPA/OOA mit Use Cases
GPA/OOA mit Aktivitätsdiagrammen
OOA Objekt- und Klassendiagramme
OOD Klassendiagramme
OOD Zustandsdiagramme
OOD Sequenzdiagramme
Damit in Zusammenhang werden agile Konzepte vorgestellt:
der ideale Kunde & der ideale Programmierer
Methoden der Entwicklung: Scrum, TDD, FDD
OOA Anwendungsfälle mit Story Cards
OOA Risk/Value Priorisierung und Planning Poker
OOA/D Ermittlung der Klassen mittels CRC-Kartenmethode
OOP Pair-Programming
OOP Continuous Integration
Unternehmen entwickeln, produzieren und vertreiben ihre Produkte weltweit. Somit ist auch die Entstehung und Nutzung von Wissen in Unternehmens nicht mehr auf einen Standort beschränkt. Wissensmanagement hilft hohe Reisekosten zu reduzieren, indem die Experten des Unternehmens in Wissensnetzwerken organisiert werden und standortverteilt koordiniert zusammenarbeiten können. Innovative lokale Lösungen werden im ganzen Unternehmen weitergegeben. Informationen zu neuen Verfahren oder erkannten Problemen werden schnell an alle betroffenen Mitarbeiter weitergeleitet. So können z.B. teure Rückrufaktionen vermieden und die damit verbundenen Imageschäden abgewendet werden.
Ein hoher Ausbildungsstand und lebenslanges Lernen der Mitarbeiter sind entscheidend für die erfolgreiche Erzeugung komplexer Produkte und Dienstleistungen. Wechseln jedoch hochqualifizierte Mitarbeiter in eine andere Abteilung oder verlassen das Unternehmen, kann dies problematisch werden. Wissensmanagement hilft, das Wissen wechselnder oder ausscheidender Mitarbeiter zu bewahren.
Was ist Wissensmanagement
Wissensbasen
Wissenswegweiser
Wissensstafette
Wissensnetzwerke
Kompetenzmanagement
Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betri...GFU Cyrus AG
Der Erfolg von Softwareentwicklungsprojekten hängt maßgeblich von einer guten Anforderungsanalyse ab. Je später Konzeptionsfehler erkannt werden, desto höher sind die Kosten der erforderlichen Korrekturen. Wir stellen in diesem Vortrag dar, wie durch eine strukturierte und dabei nicht zu formale Vorgehensweise frühzeitig sichergestellt werden kann, dass die später entwickelte Anwendung den Wünschen des Auftraggebers entspricht und zudem eine verlässliche Basis für die Einschätzung des Entwicklungsaufwands entsteht.
Im Vortrag verdeutlichen wir die Vorgehensweise an dem Beispiel einer Konzeption eines Systems zur Betriebsdatenerfassung und Leistungsentlohnung. Mit einem Mix aus Office- und UML-Werkzeugen konnte hier in kurzer Zeit ein gemeinsames Verständnis mit der Fachabteilung des Kunden erreicht werden und die formale Basis für die nachfolgende Realisierung des Systems geschaffen werden.
Auswahl von Werkzeugen aus dem Office- und Modellierungsumfeld
Halbformale Beschreibung von Anwendungsfällen
Erstellung eines fachlichen und technischen Glossars
Komponentenmodellierung mit UML
Entwicklung eines Anwendungs-Prototyps
Grenzüberschreitende Geschäftsprozesse mit Microsoft SharePoint und BizTalkGFU Cyrus AG
Microsoft Office SharePoint Server und Co. sind in der Unternehmens-IT angekommen. Kein anderes Produkt und Technologie der Firma Microsoft wird zurzeit so stark nachgefragt, evaluiert und natürlich auch eingesetzt.
Die Gründe dafür sind vielseitig: Angefangen von der zentralisierten Dokumentablage (DMS), über webbasierte Zusammenarbeit (Collaboration) oder auch als Internet-/Intranetplattform (CMS) bietet er ein Menge Grundfunktionalität.
Aber SharePoint kann noch mehr. In der Kombination mit BizTalk lassen sich die existierenden IT-Systeme integrieren und Geschäftsprozesse automatisieren.
Automatisierung von Geschäftsprozessen mit IT
Herausforderungen verteilter Systeme
Anforderungen zum Einbinden von Menschen
BizTalk: Prozess- und Integrationsplattform
Vorteile von BizTalk
"Dream-Team" Sharepoint, InfoPath, BizTalk
Lösung für verschiedene Herausforderungen
2. Inhalt
1. Motivation und Ziele von automatisierten Software-Tests
2. Manuelle Software-Tests und deren Nachteile
3. Grundbegriffe der Testautomatisierung
4. Bausteine für automatisierte Software-Tests
5. Anwendungsbeispiele
6. Problemfelder der Testautomatisierung und Gegenmaßnahmen
7. Potenzial von automatisierten Software-Tests
1
3. Thema
Software-
1. Motivation und Ziele von automatisierten Software-
Tests
2. Manuelle Software-Tests und deren Nachteile
3. Grundbegriffe der Testautomatisierung
4. Bausteine für automatisierte Software-Tests
5. Anwendungsbeispiele
6. Problemfelder der Testautomatisierung und Gegenmaßnahmen
7. Potenzial von automatisierten Software-Tests
2
4. Motivation für den automatisierten Software-Test
Test einer Anwendung (SUT = system under test) ist experimentelles
Verfahren mit zwei Zielsetzungen:
destruktives Testen: innerhalb des SUT möglichst viele Fehler aufdecken
demonstratives Testen: Korrektheit des SUT unter definierten
Bedingungen demonstrieren
effiziente und kostensparende Test-Durchführung:
möglichst viele Test-Aktivitäten durch Werkzeuge unterstützen
Test-Aktivitäten automatisiert ablaufen lassen
3
5. Ziele der Testautomatisierung
explizite und detaillierte Beschreibung des Testwissens: benötigte
Testdaten, notwendige Programmabläufe
effiziente Testdurchführung: Zeit für einen Testzyklus
reproduzierbare Testergebnisse: exakt gleiche Testläufe
beliebige Wiederholbarkeit von Testläufen ohne Mehraufwand: Lasttests
zu verschiedenen Tageszeiten
Erhöhung der Software-Qualität: Regressionstests
Einsparung von Personal- und Sachkosten: Fachtester, Testlabore
Zukunftsinvestition: automatisierte Testverfahren für mehrere SUT's
4
6. Thema
1. Motivation und Ziele von automatisierten Software-Tests
Software-
2. Manuelle Software-Tests und deren Nachteile
3. Grundbegriffe der Testautomatisierung
4. Bausteine für automatisierte Software-Tests
5. Anwendungsbeispiele
6. Problemfelder der Testautomatisierung und Gegenmaßnahmen
7. Potenzial von automatisierten Software-Tests
5
7. Herkömmliche, manuelle Software-Tests
Grundlage bilden nicht ausführbare Testfall-Beschreibungen (z.B.
fachlicher Testkatalog bestehend aus MS Office Excel Dateien).
Ausführung durch Test-Team, Fachtester oder "Power-User"
Testdaten werden manuell selektiert oder in den benötigten
Anfangszustand gebracht.
Spezifizierte Testfälle werden manuell auf dem SUT ausgeführt.
Durchführung der Testläufe und das Testergebnis wird manuell
protokolliert und ausgewertet.
Testprozess wird manuell koordiniert und überwacht.
6
9. Nachteile der manuellen Testausführung (1)
1. Nachteil:
• beansprucht viel Arbeitszeit
• wird von Menschen durchgeführt
• wird als lästig empfunden
=> seltene Durchführung, ggf. unvollständig, lange Testzyklen
2. Nachteil:
• Testdaten sind entweder vorhandene Objekte oder über SUT-Dialoge
"konfigurierte" Objekte.
• Testläufe werden nicht jedesmal exakt wiederholt.
• Ergebnisprüfung durch Datenbank-select oder Sichtprüfung von Ausgabe-
/Protokoll-Dateien
=> schlechte Reproduzierbarkeit des Teststatus
8
10. Nachteile der manuellen Testausführung (2)
3. Nachteil:
• Fach-/Anwendungswissen der Mitarbeiter fließt implizit in die Testläufe ein
• Fehlerdetails werden in der Masse der Testläufe übersehen
=> geringe Aussagekraft
4. Nachteil:
Jede Test-Wiederholung verursacht in etwa gleichbleibende Aufwände.
Fazit:
Manuelle Testausführung verursacht hohe Aufwände (Arbeitszeitkosten,
Projektlaufzeit) bei zu hinterfragender Testqualität.
9
11. Thema
1. Motivation und Ziele von automatisierten Software-Tests
2. Manuelle Software-Tests und deren Nachteile
3. Grundbegriffe der Testautomatisierung
4. Bausteine für automatisierte Software-Tests
5. Anwendungsbeispiele
6. Problemfelder der Testautomatisierung und Gegenmaßnahmen
7. Potenzial von automatisierten Software-Tests
10
12. Testfall
Testfall:
Beschreibung einer Menge von Software-Tests
Attribute einer Testfall-Beschreibung:
Identifikation, Kurzbeschreibung, Testschritte, Kritikalität, erwartetes
Ergebnis, Versionierungs-Informationen, ...
Testlauf:
• konkrete Ausführung eines Testfalles
• Anfangszustand => Programmablauf => Endzustand
• Überprüfung einer bestimmten fachlichen Funktionalität oder
technischen Eigenschaft des SUT
11
13. Kategorisierung von Testfällen
Testfälle werden anhand von zwei Dimensionen kategorisiert:
abstrakt vs. konkret
• Beschreibung von bestimmten Programmabläufen und Testdaten
Spezifikation vs. Implementierung
• Formalisierung und Ausführbarkeit
Die folgenden Ausprägungen von Testfällen sind häufig anzutreffen:
• Testszenario (z.B. Word-Dokument)
• Testfall (z.B. strukturiertes Excel-Template)
• interpretiertes Testskript (z.B. GUI-Testskript im XML-Format)
• kompiliertes Testprogramm (z.B. JUnit-Testklasse)
12
14. Testautomatisierung
Durchführung der vier Schritte eines SUT-Testlaufes
(1) Herstellen eines definierten Anfangszustandes des SUT und der Datenbasis (set
up)
(2) Ausführen der zu testenden SUT-Funktionalität (execute)
(3) Sicherstellen eines SUT-Zustands (assert) bzw. Prüfen des Testergebnisses
(check)
(4) Herstellen eines definierten Endzustandes des SUT und der Datenbasis (tear
down)
teilweise oder voll automatisiert durch Testwerkzeuge/-Frameworks.
13
15. Automatisierte Testauswertung und -protokollierung
Testergebnis: tatsächlicher Rückgabewert der ausgeführten Funktionalität bzw.
geänderter SUT-Zustand
Erwartete Ergebnis: spezifizierter Rückgabewert der ausgeführten
Funktionalität bzw. geforderter SUT-Zustand bei Korrektheit
Ergebnisprüfung: automatisierter Vergleich des Testergebnisses mit dem
erwarteten Ergebnis auf Gleichheit
Automatisierte Ermittlung und Protokollierung der möglichen Teststatus:
Fehler aufgedeckt = negative Ergebnisprüfung = "rot"
kein Fehler gefunden = positive Ergebnisprüfung = "grün"
14
16. Vorteile der automatisierten Testausführung (1)
Automatisierte Testausführung belastet die Mitarbeiter nicht und kostet
keine direkte Arbeitszeit.
Testläufe werden beschleunigt durchgeführt, wodurch sich kürzere
Testzyklen ergeben.
Auch umfangreiche Ergebnisprüfungen sind mit einem verlässlichen
Resultat möglich (z.B. Datenbank- oder Dateiinhalte).
Automatisierte Testfälle sind unabhängig vom Fach-/ Anwendungswissen
der Mitarbeiter ausführbar und somit auch langfristig wiederholbar.
15
17. Vorteile der automatisierten Testausführung (2)
Testläufe können beliebig oft wiederholt werden.
Testläufe werden bei jeder Wiederholung exakt gleich sowie vollständig
ausgeführt.
Jede Wiederholung eines automatisierten Tests verursacht nur sehr
geringe Aufwände.
Regressionstest: Nach Änderung oder Erweiterung des SUT können alle
Testfälle einfach und vollständig ausgeführt werden.
16
18. Thema
1. Motivation und Ziele von automatisierten Software-Tests
2. Manuelle Software-Tests und deren Nachteile
3. Grundbegriffe der Testautomatisierung
fü Software-
4. Bausteine für automatisierte Software-Tests
5. Anwendungsbeispiele
6. Problemfelder der Testautomatisierung und Gegenmaßnahmen
7. Potenzial von automatisierten Software-Tests
17
19. Baustein 1: Testfall-Implementierungen (1)
Begriff der Testfall-Implementierung:
Testfälle als Skript oder Java-Klasse "programmieren"
Testfälle interpretieren oder kompilieren
Testfall-Implementierungen zu Test-Bibliotheken zusammenfassen
18
20. Baustein 1: Testfall-Implementierungen (2)
Einige zu beachtende Punkte:
Auswahl von automatisierbaren Testfällen:
• fachliche Komplexität
• technische Machbarkeit
Umfang der Ergebnisprüfung:
• technische Gesamtprüfung
• fachlogische Minimumprüfung
Zeitpunkt der Ergebnisprüfung:
• dynamisch (während Testlaufzeit)
• nachgelagert (nach dem Testlauf)
"Software-Qualität":
• Abgeschlossenheit, Wiederholbarkeit, Wartbarkeit usw.
19
21. Baustein 2: dedizierte Testdatenbanken - Grundbegriffe (1)
3 Arten von Testdaten:
Ausgangsdaten, Ergebnisdaten (Ist), Vergleichsdaten (Soll)
Test-Fixture:
definierte Menge von Objekten, die als Datenbasis für die Ausführung von
Testfällen dient
=> definierter Zustand der relationalen Datenbank
Testläufe werden stets gegen eine separate Test-Datenbank ausgeführt:
• DB-Schema entspricht dem Entwicklungsstand
• DB-Ausprägung variiert nach Test-Anforderung
• Testdaten müssen als Datenbankinhalte dargestellt und manipuliert werden
können:
• Laden eines Test-Fixture beim set up
• Entfernen von neu angelegten Ergebnisdaten beim tear down
20
22. Baustein 2: dedizierte Testdatenbanken - Ausprägungen (2)
leere Testdatenbank, d.h. nur DB-Schema vorhanden:
• Test-Fixture muss für jeden Testlauf stets vollständig erzeugt werden.
Extraktions-Test-Datenbank als verkleinerte Version der SUT-Produktions-
Datenbank enthält:
• sämtliche Stammdaten
• Bewegungsdaten
• keinerlei Bewegungsdaten => müssen stets vollständig erzeugt werden
• einen definierten Stand der Bewegungsdaten => als Test-Fixture verwenden
• Extraktionsprogramm notwendig
Test-Datenbank ist eine vollständige Kopie der Produktions-Datenbank.
21
23. Baustein 2: dedizierte Testdatenbanken - Rücksetzen (3)
komplettes Rücksetzen der Test-Datenbank:
• Wiedereinspielen von DB-Abzügen
Nutzung eines Flashback-Mechanismus (z.B. bei Oracle):
• Rücksetzen der Test-Datenbank auf einen definierten Flashback-
Punkt nach jedem Testlauf
Transaktions-Steuerung:
• Testlauf innerhalb einer Transaktion durchführen
• nach einem fehlerfreien und / oder gescheiterten Testlauf
Transaktion rücksetzen
• Vorsicht: geschachtelte Transaktionen wegen SUT-eigener
Transaktionssteuerung
22
24. Baustein 3: Test-Werkzeuge / -Frameworks (1)
Einige gewünschte Funktionalitäten:
Erstellung und Wartung von Testfällen / -Implementierungen
Erfassung und Pflege von Testdaten
Automatisierte Durchführung von Testfällen
Laden / Entladen von Testdaten
Test-Durchführung wird überwacht, ausgewertet und protokolliert
Vorteile von Open Source Lösungen:
kostenneutral verfügbar
individuell anpassbar
maßgeschneidert für spezielle Test-Anforderungen
auch für geschäftskritische SUT's einsetzbar
23
25. Baustein 3: Open Source Test-Werkzeuge / -Frameworks (2)
JUnit: www.junit.org
• "Standard"-Java-Framework für den White-Box-Test von Methoden
Abbot: abbot.sourceforge.net
• Simulations-Werkzeug für den Black-Box-Test der SUT-GUI
DBUnit: www.dbunit.org
• Framework für DB-nahe Tests und Testdatenverwaltung
XMLUnit: xmlunit.sourceforge.net
• Framework für Tests bzgl. XML-Dateien
24
26. Baustein 3: Open Source Test-Werkzeuge / -Frameworks (3)
JUnitPerf: www.clarkware.com/software/JUnitPerf.html
• Framework für Performanz- und Lasttests
JETM: jetm.void.fm (Java Execution Time Measurement)
• Framework zur Laufzeitmessung
• Messpunkte können per AOP deklarativ definiert werden
AOP:aspectwerkz.codehaus.org (aspect oriented programming)
• Test-Aspekte können überall in SUT eingebaut werden
25
27. Baustein 4: Werkzeug-gestütztes Testmanagement
Management aller Tätigkeiten des Software-Testprozesses:
Strategie und Konzeption des SUT-Tests
konventionelle Projektplanung (durchzuführende Tests, Mitarbeiter, Termine)
Organisation des Software-Test (Hardware, Software, Testräume)
Test-Durchführung (Testdatenbereitstellung, Testläufe, Testprotokollierung)
Kontrolle und Steuerung des Software-Test (Test- und Fehlerstatistik, Bug-
Tracking)
ordnungsgemäßer Abschluß des Software-Test (Abnahmekriterien)
durchgängige Werkzeug-Unterstützung?
26
29. Thema
1. Motivation und Ziele von automatisierten Software-Tests
2. Manuelle Software-Tests und deren Nachteile
3. Grundbegriffe der Testautomatisierung
4. Bausteine für automatisierte Software-Tests
5. Anwendungsbeispiele
6. Problemfelder der Testautomatisierung und Gegenmaßnahmen
7. Potenzial von automatisierten Software-Tests
28
30. (1) Automatisierter Dialog-Test eines Warenwirtschaftssystems
Rahmenbedingungen:
Test der gesamten Neuentwicklung einer Anwendung für die
Warenwirtschaft
Neuentwicklung erfolgt in mehreren Stufen, jede Stufe muss einen
Abnahmetest bestehen:
Entwicklung/Test in Mikro-Phasen
Test erfolgt als Black-Box-Test über die Dialogoberfläche:
GUI-getriebener Test
Test basiert auf Anwendungsfällen der Anwendung:
Use Case-basierter Test
Excel-Testszenarien für die Anwendungsfälle sind vorhanden
29
31. Nutzung des Java-GUI-Test-Framework Abbot für Swing/SWT
SUT-Dialogabläufe werden während ihrer Durchführung aufgenommen
("record").
Dialogabläufe werden als GUI-Testskript gespeichert (XML-Datei).
grafischer Testskript-Editor: GUI-Testskripte werden nachbearbeitet, verändert
und inkrementell weiterentwickelt.
GUI-Testskripte können zu einem späteren Zeitpunkt und beliebig oft
ausgeführt werden ("play").
GUI-Testskripte beinhalten Prüfungen auf Dialogebene ("assert").
Aus GUI-Testskripten heraus werden Java-Methoden des SUT aufgerufen:
• Testdaten verwalten
• fachliche Prüfungen durchführen
30
32. Potenzial von Abbot
Aufbau einer GUI-Testbibliothek mit mehreren hundert Testskripten
strukturierter, modularer Aufbau von Testskripten:
Unterskripte, Wiederverwendung
Entkopplung von Testskripten und verwendeten Testdaten:
Einlesen von Testdaten dynamisch zur Testlaufzeit
in den nächtlichen Build-Prozess integrierter Regressionstest
Nutzung für Performanz- und Lasttests in einer 3-tier-Testumgebung
vielfältige weitere Anwendungsmöglichkeiten:
• aus GUI-Testskripten HTML-Testbeschreibungen generieren
• GUI-Testskripte für Schulungen / Produkt-Präsentationen
31
33. (2) Automatisierter Batch-Test eines Inkassomanagementsystems
Rahmenbedingungen:
Test der Batch-Verarbeitung einer Anwendung für das
Inkassomanagement
Prüfung der Äquivalenz nach der automatischen Plattform-Migration
von UDS/Forte nach Java für > 2 Millionen LOC
keine Informationen über die interne Logik der Batch-Verarbeitung
verfügbar, d.h. Black-Box-Test unumgänglich
aufgrund des Testumfanges (90 Batch-Programme mit massiver DB-
Verarbeitung innerhalb von knapp 3 Monaten) nur automatisiert
möglich
32
35. Implementierung eines intelligenten DB-/File-Diff-Werkzeuges
Funktionsumfang eines Vergleichswerkzeuges für Batch-Programme:
Automatischer Abgleich der geänderten DB-Inhalte und / oder der erzeugten Ausgabedateien
auf Differenzen.
Das Werkzeug kann parametrisiert werden, z.B.:
• beim DB-Diff Beziehungen verfolgen
• beim Datei-Diff das Zeilenumbruchformat (UNIX vs. Windows) berücksichtigen
Je Testfall (= Batch) kann konfiguriert werden, z.B.:
• beim DB-Diff Spalten (Timestamp) ausblenden
• beim Datei-Diff ein Header-Kommentar ignorieren
Parametrisierung / Konfiguration über Swing-Dialog oder .properties-Datei
Aufruf manuell über Swing-Dialog oder automatisiert über Java-API
Aufwand für Realisierung: ca. 40 PT
34
36. halb-automatisierte Batch-Testläufe
Batch-Testlauf manuell vorbereiten (Eingabedateien, Datenbank).
Batch-Ausführung erfolgt durch eine JUnit-Testklasse.
Während der Batch-Ausführung werden per AOP die modifizierten DB-Tabellen
ermittelt und dieses Wissen für den DB-Diff verwendet.
Aufruf des Diff-Werkzeuges per Java-API aus der JUnit-Testklasse.
Diff-Protokoll-Dateien müssen manuell ausgewertet werden.
35
37. Thema
1. Motivation und Ziele von automatisierten Software-Tests
2. Manuelle Software-Tests und deren Nachteile
3. Grundbegriffe der Testautomatisierung
4. Bausteine für automatisierte Software-Tests
5. Anwendungsbeispiele
6. Problemfelder der Testautomatisierung und
Gegenmaß
Gegenmaßnahmen
7. Potenzial von automatisierten Software-Tests
36
38. Problemfelder der Testautomatisierung und Gegenmaßnahmen (1)
Testautomatisierung auf Open Source Basis kann ein aufwendiges Software-
Entwicklungsprojekt sein:
Mitarbeiter-Qualifikation, Entwicklungsprozess, Qualität, ...
=> Integration mit SUT-Entwicklung; testgetriebene Software-Entwicklung
Testautomatisierung verursacht zunächst nicht unerhebliche Kosten, ohne dass ein
direkter Nutzen entsteht.
=> konkrete, inkrementelle Test-Ziele; depth-first-Testansatz
Erstellung von Testfall-Implementierungen:
• kann aufwendig sein
• erfordert ein qualitativ hohes Mitarbeiter-Profil
• "bewährte" Vorgehensweisen müssen aufgebrochen werden
=> Schulung / Coaching; Benutzer-adäquate Werkzeug-Unterstützung
37
39. Problemfelder der Testautomatisierung und Gegenmaßnahmen (2)
Weiterentwicklung des SUT bedingt entsprechende Pflege der Testfall-
Implementierungen und Testdatenbanken.
=> organisierter und permanenter Prozess der Test-Wartung
Automatisierte Testfälle sind anfällig gegenüber der SUT-
Weiterentwicklung oder geänderten Testdaten.
=> Entkopplung / Abstraktion: z.B. Trennung Testfall vs. Testdaten
Automatisierte Ergebnisprüfung ist nicht-trivial:
• nicht alle möglichen Testergebnisse sind vorhersagbar
• Testergebnisse ändern sich aufgrund von SUT-Änderungen
=> Entkopplung / Abstraktion: z.B. Trennung Testfall vs. Testergebnis
38
40. Thema
1. Motivation und Ziele von automatisierten Software-Tests
2. Manuelle Software-Tests und deren Nachteile
3. Grundbegriffe der Testautomatisierung
4. Bausteine für automatisierte Software-Tests
5. Anwendungsbeispiele
6. Problemfelder der Testautomatisierung und Gegenmaßnahmen
Software-
7. Potenzial von automatisierten Software-Tests
39
41. Potenzial von automatisierten Software-Tests (1)
Übergang vom manuellen Software-Test durch qualifizierte Mitarbeiter zur
automatisierten Testausführung:
Mitarbeiter für die Erstellung automatisierbarer Testfälle verfügbar machen
Automatisierte Durchführung aller notwendigen, aber einfachen Tests:
Mitarbeiter für die fachlich komplexen, evtl. nicht sinnvoll automatisierbaren
Tests verfügbar machen
Durchführung von Tests, die eine stets exakte Wiederholung der
Programmausführung voraussetzen (z.B. definiertes Laufzeitverhalten)
40
42. Potenzial von automatisierten Software-Tests (2)
Durchführung von Regressionstests:
häufige, exakte Wiederholung
Durchführung von Lasttests:
Vielzahl von (simulierten) Benutzern greifen parallel auf das SUT zu
Reproduktion von aufwendig zu erzeugenden Laufzeitfehlern, um
Fehlerbehebung und Re-Test zu unterstützen
Beschleunigung der gesamten Testausführung
bessere Software-Qualität durch Erhöhung von Testabdeckung und
Testintensität
41
43. Vielen Dank für Ihr Interesse!
Haben Sie
Fragen
Anregungen
eigene Erfahrungen
Kritik
???
42