seqis 10 things api testing...seqis 10 things – programm 2014 • 20.03.14 business analyse...
Post on 13-Oct-2020
1 Views
Preview:
TRANSCRIPT
SEQIS 10 things API Testing
SEQIS 10 things API Testing
Herzlich Willkommen!
Reinhard Salomon
SEQIS Geschäftsleitung
SEQIS 10 things – Programm 2014
• 20.03.14 Business Analyse Einführung in den BABOK® Guide
• 26.06.14 API Testing: Nur ein Schnittstelle und der passende Test
• 18.09.14 Test Driven Development – die Methode für Qualitätsbewusste
• 20.11.14 Der Test als zentrale Schnittstelle in einem IT Projekt
30.06.2014 10 things – API Testing
SEQIS 10 things API Testing
Klaus Schlacher
SEQIS – Managing Consultant
Moderne Software
30.06.2014 10 things – API Testing
API Wachstum
30.06.2014 10 things – API Testing
„Eine Programmierschnittstelle ist ein Programmteil, der von einem
Softwaresystem anderen Programmen zur Anbindung an das System zur Verfügung
gestellt wird.“
Wikipedia
30.06.2014 10 things – API Testing
Tag Cloud
30.06.2014 10 things – API Testing
Tag Cloud
30.06.2014 10 things – API Testing
Testautomationspyramide
30.06.2014 10 things – API Testing
Klassen- und Objektmethoden
30.06.2014 10 things – API Testing
1. Denken Sie beim Test nicht nur an die klassischen Schnittstellen
• Klassen- und Objektmethoden • Datenbanken • Proprietäre Kommunikation • …
30.06.2014 10 things – API Testing
Tag Cloud
30.06.2014 10 things – API Testing
Tag Cloud
30.06.2014 10 things – API Testing
Unit Test
• Entwickler
• Kurz, fokussiert
• Frameworks • JUnit
• xUnit
30.06.2014 10 things – API Testing
Unit Test
30.06.2014 10 things – API Testing
Unit Test
30.06.2014 10 things – API Testing
2. Vernachlässigen Sie nicht Ihr Testfallfundament: Unit Tests
• Ein gutes Fundament ist wichtig, um darauf aufbauen
zu können
30.06.2014 10 things – API Testing
Tag Cloud
30.06.2014 10 things – API Testing
Tag Cloud
30.06.2014 10 things – API Testing
Test Driven Development
• Agile Entwicklungsmethode
• iSQI Zertifikat
• 10 things am 18.9.2014
30.06.2014 10 things – API Testing
Continuous Integration
• Source und Test gemeinsam eingecheckt
• Häufige Integration
• Nightly Build
• Automatisiertes Reporting
30.06.2014 10 things – API Testing
3. Setzen Sie auf kontinuierliche Qualitätssicherung
• Mittels TDD erweitern Sie kontinuierlich Ihr Fallnetz • Der Nightly Build ist für die automatisierten Tests der
ideale Partner
30.06.2014 10 things – API Testing
Tag Cloud
30.06.2014 10 things – API Testing
Tag Cloud
30.06.2014 10 things – API Testing
Tag Cloud
30.06.2014 10 things – API Testing
SOAP
• Simple Object Access Protocol
• Weit verbreitetes Webserviceprotokoll
• Austausch von Daten
• Remote Procedure Call
• Basiert auf XML
30.06.2014 10 things – API Testing
SOAP Beispiel
• Calculator
• URL: http://ws1.parasoft.com/glue/calculator
• Simple Addition
30.06.2014 10 things – API Testing
SOAP Beispiel
30.06.2014 10 things – API Testing
SOAP Beispiel
30.06.2014 10 things – API Testing
SOAPUI
• Version 5
• Freeware
• Kostenpflichtige PRO Version
• Umfangreiche Features
30.06.2014 10 things – API Testing
WSDL
• Web Services Description Language
• Beschreibungssprache für Netzwerkdienste • Metasprache
• Div. Beschreibungselemente
• Industrieller Standard (W3C)
• Basis für Testtools
30.06.2014 10 things – API Testing
WSDL
• Web Services Description Language
• Beschreibungssprache für Netzwerkdienste • Metasprache
• Div. Beschreibungselemente
• Industrieller Standard (W3C)
• Basis für Testtools
30.06.2014 10 things – API Testing
Tag Cloud
30.06.2014 10 things – API Testing
Tag Cloud
30.06.2014 10 things – API Testing
Tag Cloud
30.06.2014 10 things – API Testing
Tag Cloud
30.06.2014 10 things – API Testing
Funktionaler Test
• Aufruf des Service • „add“ operation
• Werte für x und y
• Check des Ergebnisses • Wert von Result überprüfen
30.06.2014 10 things – API Testing
Funktionaler Test (semimanuell)
30.06.2014 10 things – API Testing
Funktionaler Test (automatisch)
• Erstellen einer Testsuite
• Erstellen eines Testfalls sowie Teststeps
• Erstellen und Einbinden von Asserts • Ergebnis entspricht der Summe der Eingabewerte
30.06.2014 10 things – API Testing
Funktionaler Test (automatisch)
• Erstellen einer Testsuite
• Erstellen eines Testfalls sowie Teststeps
• Erstellen und Einbinden von Asserts • Ergebnis entspricht der Summe der Eingabewerte
30.06.2014 10 things – API Testing
4. Nutzen Sie Ihr bestehendes Test Know How • API Tests unterscheiden sich in dem Punkt nicht
wirklich von GUI Tests
30.06.2014 10 things – API Testing
Tag Cloud
30.06.2014 10 things – API Testing
Tag Cloud
30.06.2014 10 things – API Testing
Testdaten
• Abdeckung • Ein Testfall nicht ausreichend
• Vielzahl an Testfällen notwendig
• Erstellen von einzelnen Testfällen • Unübersichtlich
• Unwartbar
30.06.2014 10 things – API Testing
Data Driven
• Testfälle • Identer Ablauf
• Unterschiedliche Eingabewerte
• Entsprechend unterschiedliche Ausgabewerte
• Iteration von Datentupel • Grid
• XLS
30.06.2014 10 things – API Testing
5. Setzen Sie auf bewährte Mittel • Excel Dateien als Datenlieferant für Data Driven Test
haben sich durchaus bewährt • Nutzen Sie toolgestützte Kombinatorik, z. B. mit
Hexawise (http://www.hexawise.com)
30.06.2014 10 things – API Testing
Tag Cloud
30.06.2014 10 things – API Testing
Tag Cloud
30.06.2014 10 things – API Testing
Tag Cloud
30.06.2014 10 things – API Testing
Testautomationspyramide
30.06.2014 10 things – API Testing
6. Berücksichtigen Sie: „Service Tests gehören den Testern!“
• Große Robustheit gegenüber GUI Automation • Absicherung der Qualität von wichtigen
Komponenten
30.06.2014 10 things – API Testing
Mocking, Virtualisierung
• Service (noch) nicht vorhanden
• Hohe Kosten pro Aufruf
• Aufruf dauert lange
30.06.2014 10 things – API Testing
Mocking, Virtualisierung
• Service (noch) nicht vorhanden
• Hohe Kosten pro Aufruf
• Aufruf dauert lange
30.06.2014 10 things – API Testing
Mocking, Virtualisierung
• Simpel • Liefert was zurück
• Komplex • Random
• Antwort aufgrund des Inputs (Mapping)
• Berechnete Antwort
30.06.2014 10 things – API Testing
7. Beginnen Sie möglichst früh mit Ihren Tests • Test als Entwicklungsbegleitung und nicht als
nachfolgende Kontrollinstanz • Voraussetzung ist ein möglichst stabiler
Schnittstellenkontrakt
30.06.2014 10 things – API Testing
Tag Cloud
30.06.2014 10 things – API Testing
Tag Cloud
30.06.2014 10 things – API Testing
Wolkenflug, Schlechtwetterflug
• Werte außerhalb des Eingabebereichs
• Ungültige Werte, Wertkombinationen
• Fehlende Eingaben
• Durchgemischter Request
• Missgebildeter Request
• Nicht verfügbare Subservices
30.06.2014 10 things – API Testing
Nicht-funktionale Tests
30.06.2014 10 things – API Testing
Nicht-funktionale Tests
• Last- und Performance Tests • SLA Check
• Usability der Schnittstelle
• Wartbarkeit • Naming
• Verständlichkeit der Struktur
30.06.2014 10 things – API Testing
8. Überprüfen Sie nicht nur das Erwartete • Prüfen Sie die API auf Herz und Nieren • Vergessen Sie nicht auf die Nicht-funktionalen Tests
30.06.2014 10 things – API Testing
Tag Cloud
30.06.2014 10 things – API Testing
Tag Cloud
30.06.2014 10 things – API Testing
REST
• Representational State Transfer • Eine URL für ein Service
• Verschiedene Repräsentationen (HTML, JSON, XML)
• Zustandslos
• Mehrere Verben (GET, POST, PUT, …)
• WADL • Web Application Description Language
30.06.2014 10 things – API Testing
REST und SoapUI
30.06.2014 10 things – API Testing
REST und SoapUI
30.06.2014 10 things – API Testing
REST und SoapUI
30.06.2014 10 things – API Testing
REST und SoapUI
30.06.2014 10 things – API Testing
Tag Cloud
30.06.2014 10 things – API Testing
Tag Cloud
30.06.2014 10 things – API Testing
Tag Cloud
30.06.2014 10 things – API Testing
Tag Cloud
30.06.2014 10 things – API Testing
Service Test Tools
• HP Unified Functional Tester
• IBM Rational Service Tester for SOA Quality
• SmartBear SoapUI
• Crosscheck Networks SoapSonar
• …
• Eigenentwicklung SOAP/REST Library
30.06.2014 10 things – API Testing
Service Virtualization Tools
• HP Service Virtualization
• IBM Rational Test Virtualization
• CA LISA Service Virtualization
• Parasoft Service Virtualization
30.06.2014 10 things – API Testing
9. Nehmen Sie sich zur Toolauswahl genügend Zeit • Gehen Sie methodisch vor • Eine übereilte Toolauswahl wurde schon öfters bereut
30.06.2014 10 things – API Testing
Lasttest Tools
• Grundsätzlich geeignet
• Tools • HP LoadRunner
• IBM Rational Performance Tester
• Neotys Neoload
• JMeter
• …
30.06.2014 10 things – API Testing
10. Ziehen Sie auch die nicht so offensichtlichen Dinge in Betracht
30.06.2014 10 things – API Testing
Tag Cloud
30.06.2014 10 things – API Testing
Tag Cloud
30.06.2014 10 things – API Testing
Tag Cloud
30.06.2014 10 things – API Testing
Tag Cloud
30.06.2014 10 things – API Testing
Tag Cloud
30.06.2014 10 things – API Testing
Wo kann ich mehr erfahren?
• Wikipedia
• Toolhersteller
• SEQIS
30.06.2014 10 things – API Testing
Zusammenfassung
1. Denken Sie beim Test nicht nur an die klassischen Schnittstellen
2. Vernachlässigen Sie nicht Ihr Testfallfundament: Unit Tests
3. Setzen Sie auf kontinuierliche Qualitätssicherung
4. Nutzen Sie Ihr bestehendes Test Know How
5. Setzen Sie auf bewährte Mittel
6. Berücksichtigen Sie: „Service Tests gehören den Testern!“
7. Beginnen Sie möglichst früh mit Ihren Tests
8. Überprüfen Sie nicht nur das Erwartete
9. Nehmen Sie sich zur Toolauswahl genügend Zeit
10. Ziehen Sie auch die nicht so offensichtlichen Dinge in Betracht
30.06.2014 10 things – API Testing
Tag Cloud
30.06.2014 10 things – API Testing
API Tests?
Mit SEQIS ganz vorne dabei!
30.06.2014 10 things – API Testing
SEQIS 10 things – Programm 2014
• 20.03.14 Business Analyse Einführung in den BABOK® Guide
• 26.06.14 API Testing: Nur ein Schnittstelle und der passende Test
• 18.09.14 Test Driven Development – die Methode für Qualitätsbewusste
• 20.11.14 Der Test als zentrale Schnittstelle in einem IT Projekt
30.06.2014 10 things – API Testing
API Tests?
Mit SEQIS ganz vorne dabei!
30.06.2014 10 things – API Testing
SEQIS 10 things API Testing
Klaus Schlacher
SEQIS – Managing Consultant
top related