SlideShare ist ein Scribd-Unternehmen logo
1 von 35
Downloaden Sie, um offline zu lesen
Vorlesung Software-Qualitätssicherung
Oder Wege zu guter Software
Christian Baranowski
Willkommen
• Christian Baranowski	

• Projektleiter, QM @ SEITENBAU Gmbh Konstanz (DE)	

• Custom Software Solutions	

• E-Government Solutions	

• Identity Management and SSO Solutions	

• www.seitenbau.de	

• Vorstand OSGi Users' Forum Germany	

• Co-lead (mit Jochen Hiller) German Enterprise Working Group.	

• OSGi Code Camp	

• Kontakt	

• christian.Baranowski@htwg-konstanz.de
2
Modulhandbuch
• Konstruktive und analytische Qualitätssicherung	

• ISO 9126	

• Kurze Wiederholung der Entwicklungsprozesse	

• Testen im Software-Lebenszyklus: Modultests, Integrationstests, Systemtests,Abnahmetests	

• Reviews: Inspektion,Walkthrough, technische und informelle Reviews	

• Statische Code Analyse, Metriken, Namenskonventionen, Formatierung	

• Abdeckungsgrade	

• Blackbox-Testing: Äquivalenzklassen, Grenzwerte, Fehlerbasiertes Testen, zustandbasiertes
Testen, Entscheidungstabellen, 	

• Lasttests, Stresstests, Smoke-Tests	

• Regressionstests	

• Usability-Testing	

• Optional: Normen	

• Werkzeuge: JUnit, JUnitReport, Code Cover, Checkstyle, JMockIt, HTMLUnit, Selenium …	

• Optional:Versions- und Konfigurationsverwaltung
3
Vorlesungsaufbau
4
Einführung in die Software Qualitätssicherung
Komponententests (Modultests) und Testabdeckung
Statische Testverfahren
Integrationstest
Systemtest und Akzeptanztest
Smoke Test, Performance-Test und Lasttest
Security-Test und Usability-Test
Klausurvorbereitung
Literatur
Basiswissen Softwaretest	

- Andreas Spillner
Management und Optimierung 

des Testprozesses	

- Martin Pol
The Art of Software Testing	

- Myers et. al.
XUnit Test Patterns	

- Gerard Meszaros
Agile Testing	

- Lisa Crispin
5
Einführung in die 

Software-
Qualitätssicherung
6
Warum Qualitätssicherung?
Beispiel wo Software Qualitätssicherung Fehler vermeiden hätte können.
Patriot Missile die Rakete Schlug in
einer amerikanischen Kaserne ein.
Fehler 24 Bit Register zum speichern
der Scud Missile Geschwindigkeit,
diese kann aber nicht akkurat in
diesem gespeichert werden. Es ergibt
sich über die Laufzeit des Systems
immer ein größerer Fehler.
2
Quelle: Wikipedia
Toll Collect Projekt kam es 2003
aufgrund der fehlenden Kompatibilität
von Software Modulen zu
Verzögerungen undVertragsstrafen. 	

3
Quelle: Wikipedia
Ariane 5 nach 36,7 Sekunden
sprengte sich die Rakete selbst.
Programmierfehler Umwandlung
64 Bit Gleitkommazahl in 16 Bit
Ganzzahl.
1
Quelle: Wikipedia
7
Magisches Dreieck
!
!
Projekterfolg
Kosten
Zeit
Qualität
In einem Projekt stehen Zeit, Kosten und Qualität in Zielkonkurrenz zueinander. 	

Beispiele:	

- Um Termin zu halten werden weitere Entwickler eingestellt Kosten	

- Um Kosten zu halten werden Funktionen gestrichen Qualität.	

- Es werden mehr Tests gemacht Zeit und Qualität
8
Was ist Software Qualität?
9
Funktionelle Eignung	

(engl. Functional Suitability)
Was ist Software Qualität?
10
Leistungseffizienz	

(engl. Performance Efficiency)
Was ist Software Qualität?
11
Kompatibilität	

(engl. Compatibility)
Was ist Software Qualität?
12
Bedienbarkeit	

(engl. Usability)
Was ist Software Qualität?
13
Beispiel für keine gute Bedienbarkeit:
Therac 25 User Interface - Medizingerät Linearbeschleuniger zur Anwendung in der
Strahlentherapie
14
// Win32 MFC API
HWND CreateWindowEx
(
DWORD dwExStyle,
LPCTSTR lpClassName,
LPCTSTR lpWindowName,
DWORD dwStyle,
int x,
int y,
int nWidth,
int nHeight,
HWND hWndParent,
HMENU hMenu,
HINSTANCE hInstance,
LPVOID lpParam
);
Beispiel für keine gute Bedienbarkeit:
15
Zuverlässigkeit	

(engl. Reliability)
Was ist Software Qualität?
16
Sicherheit	

(engl. Security)
Was ist Software Qualität?
Security
17
Wartbarkeit	

(engl. Maintainability)
Was ist Software Qualität?
18
Übertragbarkeit	

(engl. Portability)
Was ist Software Qualität?
19
Was ist Softwarequalität?
20
Was ist Softwarequalität?
21
Ziele der
Qualitätssicherung
22
Fehlerwirkung	

(engl. Failure)
Ziele der Qualitätssicherung
Fehlerwirkung ist ein nach außen sichtbares Fehlerverhalten.	

Ziel der Qualitätssicherung Wahrscheinlichkeit für Eintritt von
Fehlerwirkungen minimieren.

23
Fehlerzustand	

(engl. Bug)
Ziele der Qualitätssicherung
Ein Fehlerzustand kann zu einer nach außen sichtbaren
Fehlerwirkung führen. Ziel der Qualitätssicherung die Anzahl
an Möglichkeiten für Fehlerzustände minimieren.
Quelle: Wikipedia
24
Fehlerhandlung	

(engl. Error, Misstake)
Ziele der Qualitätssicherung
Irrtum bei der Software-Entwicklung. 	

Ziel der Qualitätssicherung Prozesse und Methoden etablieren
die Wahrscheinlichkeit für Fehlerhandlung minimieren.
25
Fehlermaskierung
Ziele der Qualitätssicherung
Die Wirkung eines Fehlers (Fehlerzustand) ist nach außen
nicht sichtbar (keine Fehlerwirkung), weil er durch einen
weiteren Fehler verborgen (überlagert / maskiert) wird.

Ziel der Qualitätssicherung Wahrscheinlichkeit für
Fehlermaskierung zu senken.
26
Fehlerhandlung Fehlerzustand
Fehlermaskierung
Fehlerwirkung
min. ein weiter Fehlerzustand vorhanden.
wird nicht maskiert.
1 2
3
3
Wie entstehen Fehler?
27
Wege zu guter Software
konstruktive Qualitätssicherung analytische Qualitätssicherung
• Software Tests	

!
• Reviews	

!
• Audits
• Projektplanung	

!
• Ausbildung	

!
• Testplanung	

!
• Entwicklungsprozesse
* Themenbereiche die in dieserVorlesung behandelt werden.
28
Software Tests
29
Fragestellung beim Testen
Test Verifikation
Debugging
Ist die Software
richtig?
Die Software ist
richtig!
Warum ist die
Software nicht
richtig?
30
Testen und Qualität
• Testen ermöglicht die Qualität von Software zu
messen.	

• Qualität wird ausgedrückt durch Anzahl gefundener
Fehlerzustände.	

• Wenn wenige oder keine Fehlerzustände gefunden
werden, kann TestenVertrauen in die Qualität eines
Systems schaffen.	

• Falls Testen Fehlerzustände findet und diese
Fehlerzustände behoben werden, steigt die Qualität.
31
Komponententest
• Testbasis (Was ist die Grundlage für die Testfälle)	

• Anforderungen an die Komponente 	

• detaillierter Entwurf 	

• Code	

• Testobjekte (SUT = System Under Test):
• Komponenten	

• Programme	

• Datenumwandlung/Migrationsprogramme 	

• Datenbankmodule 	

32
xUnit
• xUnit ist die Bezeichnung für verschiedene
Frameworks für automatisierte Unit-Tests
(Komponenten Test). 	

• Das erste xUnit-Framework SUnit wurde von Kent
Beck für die Programmiersprache Smalltalk
entwickelt.	

• xUnit Frameworks für Java JVM sind JUnit und
TestNG (oder Spock)
• NUnit für das .NET-Framework, PHPUnit für PHP,
CppUnit für C++ ...	

XUnit Test Patterns	

- Gerard Meszaros
Tipp: Die xUnit Test Bibel
33
JUnit 3.X Design
JUnit3 Framework Design (Quelle Projektseite http://junit.sourceforge.net/doc/cookstour/cookstour.htm)
+ run(TestResult)
Test
+ run(TestResult)
+ runTest()
+ setUp()
+ tearDown()
TestCase
+ run(TestResult)
+ addTest(Test)
TestSuite
+ setUp()
+ testMyApp()
+ testOtherStuff()
+ tearDown()
MyTestCase
34
Vier Phasen Test (Four-Phase Test)
Setup
Verify
Teardown
Exercise
SUT
test 	

fixture
1
2
3
4
„a test fixture is all the things we need to have in place in order to run a test“ - xUnit Patterns

Weitere ähnliche Inhalte

Was ist angesagt?

Continuous deployment in LeanIX @ Bonn Agile
Continuous deployment in LeanIX @ Bonn AgileContinuous deployment in LeanIX @ Bonn Agile
Continuous deployment in LeanIX @ Bonn AgileLeanIX GmbH
 
Microservices und das Entity Control Boundary Pattern
Microservices und das Entity Control Boundary PatternMicroservices und das Entity Control Boundary Pattern
Microservices und das Entity Control Boundary PatternBrockhaus Consulting GmbH
 
BATbern41 Die Evolution zu Microservices
BATbern41 Die Evolution zu MicroservicesBATbern41 Die Evolution zu Microservices
BATbern41 Die Evolution zu MicroservicesBATbern
 
DevDay 2017: Bert Radke - Der Frontend Monolith
DevDay 2017: Bert Radke - Der Frontend MonolithDevDay 2017: Bert Radke - Der Frontend Monolith
DevDay 2017: Bert Radke - Der Frontend MonolithDevDay Dresden
 
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...LeanIX GmbH
 
Realisierung des Application Lifecycle Management im OWB
Realisierung des Application Lifecycle Management im OWBRealisierung des Application Lifecycle Management im OWB
Realisierung des Application Lifecycle Management im OWBMinerva SoftCare GmbH
 
DevDay 2017: Ralf Knobloch - "Einfacher leben mit DevOps bei der MMS !!" - De...
DevDay 2017: Ralf Knobloch - "Einfacher leben mit DevOps bei der MMS !!" - De...DevDay 2017: Ralf Knobloch - "Einfacher leben mit DevOps bei der MMS !!" - De...
DevDay 2017: Ralf Knobloch - "Einfacher leben mit DevOps bei der MMS !!" - De...DevDay Dresden
 
DevOps in der Praxis
DevOps in der PraxisDevOps in der Praxis
DevOps in der Praxisinovex GmbH
 
Softwerkskammer Chemnitz Special Pecha Kucha Night
Softwerkskammer Chemnitz Special Pecha Kucha NightSoftwerkskammer Chemnitz Special Pecha Kucha Night
Softwerkskammer Chemnitz Special Pecha Kucha NightChristinaLerch1
 
DevOps: Revolution im IT Betrieb?
DevOps: Revolution im IT Betrieb?DevOps: Revolution im IT Betrieb?
DevOps: Revolution im IT Betrieb?Digicomp Academy AG
 
micro services
micro servicesmicro services
micro servicessmancke
 
Migration oai mediator 11g - doag sig soa 2010 - attermeyer
Migration oai mediator 11g - doag sig soa 2010 - attermeyerMigration oai mediator 11g - doag sig soa 2010 - attermeyer
Migration oai mediator 11g - doag sig soa 2010 - attermeyerOPITZ CONSULTING Deutschland
 

Was ist angesagt? (12)

Continuous deployment in LeanIX @ Bonn Agile
Continuous deployment in LeanIX @ Bonn AgileContinuous deployment in LeanIX @ Bonn Agile
Continuous deployment in LeanIX @ Bonn Agile
 
Microservices und das Entity Control Boundary Pattern
Microservices und das Entity Control Boundary PatternMicroservices und das Entity Control Boundary Pattern
Microservices und das Entity Control Boundary Pattern
 
BATbern41 Die Evolution zu Microservices
BATbern41 Die Evolution zu MicroservicesBATbern41 Die Evolution zu Microservices
BATbern41 Die Evolution zu Microservices
 
DevDay 2017: Bert Radke - Der Frontend Monolith
DevDay 2017: Bert Radke - Der Frontend MonolithDevDay 2017: Bert Radke - Der Frontend Monolith
DevDay 2017: Bert Radke - Der Frontend Monolith
 
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...
 
Realisierung des Application Lifecycle Management im OWB
Realisierung des Application Lifecycle Management im OWBRealisierung des Application Lifecycle Management im OWB
Realisierung des Application Lifecycle Management im OWB
 
DevDay 2017: Ralf Knobloch - "Einfacher leben mit DevOps bei der MMS !!" - De...
DevDay 2017: Ralf Knobloch - "Einfacher leben mit DevOps bei der MMS !!" - De...DevDay 2017: Ralf Knobloch - "Einfacher leben mit DevOps bei der MMS !!" - De...
DevDay 2017: Ralf Knobloch - "Einfacher leben mit DevOps bei der MMS !!" - De...
 
DevOps in der Praxis
DevOps in der PraxisDevOps in der Praxis
DevOps in der Praxis
 
Softwerkskammer Chemnitz Special Pecha Kucha Night
Softwerkskammer Chemnitz Special Pecha Kucha NightSoftwerkskammer Chemnitz Special Pecha Kucha Night
Softwerkskammer Chemnitz Special Pecha Kucha Night
 
DevOps: Revolution im IT Betrieb?
DevOps: Revolution im IT Betrieb?DevOps: Revolution im IT Betrieb?
DevOps: Revolution im IT Betrieb?
 
micro services
micro servicesmicro services
micro services
 
Migration oai mediator 11g - doag sig soa 2010 - attermeyer
Migration oai mediator 11g - doag sig soa 2010 - attermeyerMigration oai mediator 11g - doag sig soa 2010 - attermeyer
Migration oai mediator 11g - doag sig soa 2010 - attermeyer
 

Ähnlich wie Einführung in die Software-Qualitätssicherung

Softwarequalität - Einführung in eine neue Vorlesung
Softwarequalität - Einführung in eine neue VorlesungSoftwarequalität - Einführung in eine neue Vorlesung
Softwarequalität - Einführung in eine neue VorlesungGerrit Beine
 
Rückwärts denken vorwärts handeln - Requirements Reverse Engineering bei Syst...
Rückwärts denken vorwärts handeln - Requirements Reverse Engineering bei Syst...Rückwärts denken vorwärts handeln - Requirements Reverse Engineering bei Syst...
Rückwärts denken vorwärts handeln - Requirements Reverse Engineering bei Syst...Markus Unterauer
 
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)Florian Wolters
 
Einführung Vorgehensmodelle und Agile Software Entwicklung
Einführung Vorgehensmodelle und Agile Software EntwicklungEinführung Vorgehensmodelle und Agile Software Entwicklung
Einführung Vorgehensmodelle und Agile Software EntwicklungChristian Baranowski
 
Software-Tests in PHP-Anwendungen
Software-Tests in PHP-AnwendungenSoftware-Tests in PHP-Anwendungen
Software-Tests in PHP-AnwendungenGjero Krsteski
 
Creasoft - Software QS Review
Creasoft - Software QS ReviewCreasoft - Software QS Review
Creasoft - Software QS ReviewCreasoft AG
 
Abenteuer Qualität in der SW-Wartung
Abenteuer Qualität in der SW-WartungAbenteuer Qualität in der SW-Wartung
Abenteuer Qualität in der SW-WartungErnest Wallmueller
 
Der Agile Qualitätsbaukasten - PHP Unconference 2014
Der Agile Qualitätsbaukasten - PHP Unconference 2014Der Agile Qualitätsbaukasten - PHP Unconference 2014
Der Agile Qualitätsbaukasten - PHP Unconference 2014WebcsonsultsEU
 
Software Quality Lab - Beratung und Training für mehr Qualität und Effizienz ...
Software Quality Lab - Beratung und Training für mehr Qualität und Effizienz ...Software Quality Lab - Beratung und Training für mehr Qualität und Effizienz ...
Software Quality Lab - Beratung und Training für mehr Qualität und Effizienz ...Markus Unterauer
 
ESEconf2011 - Trost Joachim: "Tool supported technical Code and Design Qualit...
ESEconf2011 - Trost Joachim: "Tool supported technical Code and Design Qualit...ESEconf2011 - Trost Joachim: "Tool supported technical Code and Design Qualit...
ESEconf2011 - Trost Joachim: "Tool supported technical Code and Design Qualit...Aberla
 
Crowdsourced Mobile Testing – Alternative oder Ergänzung?
Crowdsourced Mobile Testing – Alternative oder Ergänzung?Crowdsourced Mobile Testing – Alternative oder Ergänzung?
Crowdsourced Mobile Testing – Alternative oder Ergänzung?Connected-Blog
 
Creasoft - Software QS
Creasoft - Software QSCreasoft - Software QS
Creasoft - Software QSCreasoft AG
 
Automatisiertes webauftritt testen
Automatisiertes webauftritt testenAutomatisiertes webauftritt testen
Automatisiertes webauftritt testenmradamlacey
 
ASQF Dresden: Benötigen wir mit SCRUM noch einen Testmanager?
ASQF Dresden: Benötigen wir mit SCRUM noch einen Testmanager?ASQF Dresden: Benötigen wir mit SCRUM noch einen Testmanager?
ASQF Dresden: Benötigen wir mit SCRUM noch einen Testmanager?René Spengler
 

Ähnlich wie Einführung in die Software-Qualitätssicherung (20)

Softwarequalität - Einführung in eine neue Vorlesung
Softwarequalität - Einführung in eine neue VorlesungSoftwarequalität - Einführung in eine neue Vorlesung
Softwarequalität - Einführung in eine neue Vorlesung
 
Softwarequalität: Definitionen, Grenzen, Wünsche - Vortrag IKS-Meeting im Jan...
Softwarequalität: Definitionen, Grenzen, Wünsche - Vortrag IKS-Meeting im Jan...Softwarequalität: Definitionen, Grenzen, Wünsche - Vortrag IKS-Meeting im Jan...
Softwarequalität: Definitionen, Grenzen, Wünsche - Vortrag IKS-Meeting im Jan...
 
Rückwärts denken vorwärts handeln - Requirements Reverse Engineering bei Syst...
Rückwärts denken vorwärts handeln - Requirements Reverse Engineering bei Syst...Rückwärts denken vorwärts handeln - Requirements Reverse Engineering bei Syst...
Rückwärts denken vorwärts handeln - Requirements Reverse Engineering bei Syst...
 
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)
 
Einführung Vorgehensmodelle und Agile Software Entwicklung
Einführung Vorgehensmodelle und Agile Software EntwicklungEinführung Vorgehensmodelle und Agile Software Entwicklung
Einführung Vorgehensmodelle und Agile Software Entwicklung
 
Software-Tests in PHP-Anwendungen
Software-Tests in PHP-AnwendungenSoftware-Tests in PHP-Anwendungen
Software-Tests in PHP-Anwendungen
 
Softwaretests: Motivation und Überblick
Softwaretests: Motivation und ÜberblickSoftwaretests: Motivation und Überblick
Softwaretests: Motivation und Überblick
 
Creasoft - Software QS Review
Creasoft - Software QS ReviewCreasoft - Software QS Review
Creasoft - Software QS Review
 
Abenteuer Qualität in der SW-Wartung
Abenteuer Qualität in der SW-WartungAbenteuer Qualität in der SW-Wartung
Abenteuer Qualität in der SW-Wartung
 
Der Agile Qualitätsbaukasten - PHP Unconference 2014
Der Agile Qualitätsbaukasten - PHP Unconference 2014Der Agile Qualitätsbaukasten - PHP Unconference 2014
Der Agile Qualitätsbaukasten - PHP Unconference 2014
 
Die 7 Wege zum Clean Code
Die 7 Wege zum Clean CodeDie 7 Wege zum Clean Code
Die 7 Wege zum Clean Code
 
Software Quality Lab - Beratung und Training für mehr Qualität und Effizienz ...
Software Quality Lab - Beratung und Training für mehr Qualität und Effizienz ...Software Quality Lab - Beratung und Training für mehr Qualität und Effizienz ...
Software Quality Lab - Beratung und Training für mehr Qualität und Effizienz ...
 
Agiles Testen - Überblick
Agiles Testen - ÜberblickAgiles Testen - Überblick
Agiles Testen - Überblick
 
Mehr Softwarequalität: Softwarequalität ist steuerbar
Mehr Softwarequalität: Softwarequalität ist steuerbarMehr Softwarequalität: Softwarequalität ist steuerbar
Mehr Softwarequalität: Softwarequalität ist steuerbar
 
Test-Alternativen
Test-AlternativenTest-Alternativen
Test-Alternativen
 
ESEconf2011 - Trost Joachim: "Tool supported technical Code and Design Qualit...
ESEconf2011 - Trost Joachim: "Tool supported technical Code and Design Qualit...ESEconf2011 - Trost Joachim: "Tool supported technical Code and Design Qualit...
ESEconf2011 - Trost Joachim: "Tool supported technical Code and Design Qualit...
 
Crowdsourced Mobile Testing – Alternative oder Ergänzung?
Crowdsourced Mobile Testing – Alternative oder Ergänzung?Crowdsourced Mobile Testing – Alternative oder Ergänzung?
Crowdsourced Mobile Testing – Alternative oder Ergänzung?
 
Creasoft - Software QS
Creasoft - Software QSCreasoft - Software QS
Creasoft - Software QS
 
Automatisiertes webauftritt testen
Automatisiertes webauftritt testenAutomatisiertes webauftritt testen
Automatisiertes webauftritt testen
 
ASQF Dresden: Benötigen wir mit SCRUM noch einen Testmanager?
ASQF Dresden: Benötigen wir mit SCRUM noch einen Testmanager?ASQF Dresden: Benötigen wir mit SCRUM noch einen Testmanager?
ASQF Dresden: Benötigen wir mit SCRUM noch einen Testmanager?
 

Mehr von Christian Baranowski

OSGi and Spring Data for simple (Web) Application Development
OSGi and Spring Data  for simple (Web) Application DevelopmentOSGi and Spring Data  for simple (Web) Application Development
OSGi and Spring Data for simple (Web) Application DevelopmentChristian Baranowski
 
BDD - Behavior Driven Development Webapps mit Groovy Spock und Geb
BDD - Behavior Driven Development Webapps mit Groovy Spock und GebBDD - Behavior Driven Development Webapps mit Groovy Spock und Geb
BDD - Behavior Driven Development Webapps mit Groovy Spock und GebChristian Baranowski
 
Komponententests und Testabdeckung
Komponententests und TestabdeckungKomponententests und Testabdeckung
Komponententests und TestabdeckungChristian Baranowski
 
Software Testing und Qualitätssicherung
Software Testing und QualitätssicherungSoftware Testing und Qualitätssicherung
Software Testing und QualitätssicherungChristian Baranowski
 
Einführung Software Testing und Qualitätssicherung
Einführung Software Testing und QualitätssicherungEinführung Software Testing und Qualitätssicherung
Einführung Software Testing und QualitätssicherungChristian Baranowski
 
Datenbankzugriff mit der Java Persistence Api
Datenbankzugriff mit der Java Persistence ApiDatenbankzugriff mit der Java Persistence Api
Datenbankzugriff mit der Java Persistence ApiChristian Baranowski
 
HTTP und Java Servlets Programmierung
HTTP und Java Servlets ProgrammierungHTTP und Java Servlets Programmierung
HTTP und Java Servlets ProgrammierungChristian Baranowski
 

Mehr von Christian Baranowski (20)

OSGi and Spring Data for simple (Web) Application Development
OSGi and Spring Data  for simple (Web) Application DevelopmentOSGi and Spring Data  for simple (Web) Application Development
OSGi and Spring Data for simple (Web) Application Development
 
BDD - Behavior Driven Development Webapps mit Groovy Spock und Geb
BDD - Behavior Driven Development Webapps mit Groovy Spock und GebBDD - Behavior Driven Development Webapps mit Groovy Spock und Geb
BDD - Behavior Driven Development Webapps mit Groovy Spock und Geb
 
Komponententests und Testabdeckung
Komponententests und TestabdeckungKomponententests und Testabdeckung
Komponententests und Testabdeckung
 
OSGi Web Development in Action
OSGi Web Development in ActionOSGi Web Development in Action
OSGi Web Development in Action
 
Spock and Geb in Action
Spock and Geb in ActionSpock and Geb in Action
Spock and Geb in Action
 
Continuous Delivery in Action
Continuous Delivery in ActionContinuous Delivery in Action
Continuous Delivery in Action
 
Gradle and Continuous Delivery
Gradle and Continuous DeliveryGradle and Continuous Delivery
Gradle and Continuous Delivery
 
Spock and Geb
Spock and GebSpock and Geb
Spock and Geb
 
Semantic Versioning
Semantic VersioningSemantic Versioning
Semantic Versioning
 
OSGi Community Updates 2012
OSGi Community Updates 2012OSGi Community Updates 2012
OSGi Community Updates 2012
 
OSGi Mars World in Action
OSGi Mars World in ActionOSGi Mars World in Action
OSGi Mars World in Action
 
Warum OSGi?
Warum OSGi?Warum OSGi?
Warum OSGi?
 
Top10- Software Engineering Books
Top10- Software Engineering BooksTop10- Software Engineering Books
Top10- Software Engineering Books
 
Domain Driven Design - 10min
Domain Driven Design - 10minDomain Driven Design - 10min
Domain Driven Design - 10min
 
SDC - Einführung in Scala
SDC - Einführung in ScalaSDC - Einführung in Scala
SDC - Einführung in Scala
 
Software Testing und Qualitätssicherung
Software Testing und QualitätssicherungSoftware Testing und Qualitätssicherung
Software Testing und Qualitätssicherung
 
Einführung Software Testing und Qualitätssicherung
Einführung Software Testing und QualitätssicherungEinführung Software Testing und Qualitätssicherung
Einführung Software Testing und Qualitätssicherung
 
Datenbankzugriff mit der Java Persistence Api
Datenbankzugriff mit der Java Persistence ApiDatenbankzugriff mit der Java Persistence Api
Datenbankzugriff mit der Java Persistence Api
 
Java Servlets und AJAX
Java Servlets und AJAX Java Servlets und AJAX
Java Servlets und AJAX
 
HTTP und Java Servlets Programmierung
HTTP und Java Servlets ProgrammierungHTTP und Java Servlets Programmierung
HTTP und Java Servlets Programmierung
 

Einführung in die Software-Qualitätssicherung

  • 1. Vorlesung Software-Qualitätssicherung Oder Wege zu guter Software Christian Baranowski
  • 2. Willkommen • Christian Baranowski • Projektleiter, QM @ SEITENBAU Gmbh Konstanz (DE) • Custom Software Solutions • E-Government Solutions • Identity Management and SSO Solutions • www.seitenbau.de • Vorstand OSGi Users' Forum Germany • Co-lead (mit Jochen Hiller) German Enterprise Working Group. • OSGi Code Camp • Kontakt • christian.Baranowski@htwg-konstanz.de 2
  • 3. Modulhandbuch • Konstruktive und analytische Qualitätssicherung • ISO 9126 • Kurze Wiederholung der Entwicklungsprozesse • Testen im Software-Lebenszyklus: Modultests, Integrationstests, Systemtests,Abnahmetests • Reviews: Inspektion,Walkthrough, technische und informelle Reviews • Statische Code Analyse, Metriken, Namenskonventionen, Formatierung • Abdeckungsgrade • Blackbox-Testing: Äquivalenzklassen, Grenzwerte, Fehlerbasiertes Testen, zustandbasiertes Testen, Entscheidungstabellen, • Lasttests, Stresstests, Smoke-Tests • Regressionstests • Usability-Testing • Optional: Normen • Werkzeuge: JUnit, JUnitReport, Code Cover, Checkstyle, JMockIt, HTMLUnit, Selenium … • Optional:Versions- und Konfigurationsverwaltung 3
  • 4. Vorlesungsaufbau 4 Einführung in die Software Qualitätssicherung Komponententests (Modultests) und Testabdeckung Statische Testverfahren Integrationstest Systemtest und Akzeptanztest Smoke Test, Performance-Test und Lasttest Security-Test und Usability-Test Klausurvorbereitung
  • 5. Literatur Basiswissen Softwaretest - Andreas Spillner Management und Optimierung 
 des Testprozesses - Martin Pol The Art of Software Testing - Myers et. al. XUnit Test Patterns - Gerard Meszaros Agile Testing - Lisa Crispin 5
  • 6. Einführung in die 
 Software- Qualitätssicherung 6
  • 7. Warum Qualitätssicherung? Beispiel wo Software Qualitätssicherung Fehler vermeiden hätte können. Patriot Missile die Rakete Schlug in einer amerikanischen Kaserne ein. Fehler 24 Bit Register zum speichern der Scud Missile Geschwindigkeit, diese kann aber nicht akkurat in diesem gespeichert werden. Es ergibt sich über die Laufzeit des Systems immer ein größerer Fehler. 2 Quelle: Wikipedia Toll Collect Projekt kam es 2003 aufgrund der fehlenden Kompatibilität von Software Modulen zu Verzögerungen undVertragsstrafen. 3 Quelle: Wikipedia Ariane 5 nach 36,7 Sekunden sprengte sich die Rakete selbst. Programmierfehler Umwandlung 64 Bit Gleitkommazahl in 16 Bit Ganzzahl. 1 Quelle: Wikipedia 7
  • 8. Magisches Dreieck ! ! Projekterfolg Kosten Zeit Qualität In einem Projekt stehen Zeit, Kosten und Qualität in Zielkonkurrenz zueinander. Beispiele: - Um Termin zu halten werden weitere Entwickler eingestellt Kosten - Um Kosten zu halten werden Funktionen gestrichen Qualität. - Es werden mehr Tests gemacht Zeit und Qualität 8
  • 9. Was ist Software Qualität? 9
  • 10. Funktionelle Eignung (engl. Functional Suitability) Was ist Software Qualität? 10
  • 13. Bedienbarkeit (engl. Usability) Was ist Software Qualität? 13
  • 14. Beispiel für keine gute Bedienbarkeit: Therac 25 User Interface - Medizingerät Linearbeschleuniger zur Anwendung in der Strahlentherapie 14
  • 15. // Win32 MFC API HWND CreateWindowEx ( DWORD dwExStyle, LPCTSTR lpClassName, LPCTSTR lpWindowName, DWORD dwStyle, int x, int y, int nWidth, int nHeight, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam ); Beispiel für keine gute Bedienbarkeit: 15
  • 17. Sicherheit (engl. Security) Was ist Software Qualität? Security 17
  • 23. Fehlerwirkung (engl. Failure) Ziele der Qualitätssicherung Fehlerwirkung ist ein nach außen sichtbares Fehlerverhalten. Ziel der Qualitätssicherung Wahrscheinlichkeit für Eintritt von Fehlerwirkungen minimieren.
 23
  • 24. Fehlerzustand (engl. Bug) Ziele der Qualitätssicherung Ein Fehlerzustand kann zu einer nach außen sichtbaren Fehlerwirkung führen. Ziel der Qualitätssicherung die Anzahl an Möglichkeiten für Fehlerzustände minimieren. Quelle: Wikipedia 24
  • 25. Fehlerhandlung (engl. Error, Misstake) Ziele der Qualitätssicherung Irrtum bei der Software-Entwicklung. Ziel der Qualitätssicherung Prozesse und Methoden etablieren die Wahrscheinlichkeit für Fehlerhandlung minimieren. 25
  • 26. Fehlermaskierung Ziele der Qualitätssicherung Die Wirkung eines Fehlers (Fehlerzustand) ist nach außen nicht sichtbar (keine Fehlerwirkung), weil er durch einen weiteren Fehler verborgen (überlagert / maskiert) wird.
 Ziel der Qualitätssicherung Wahrscheinlichkeit für Fehlermaskierung zu senken. 26
  • 27. Fehlerhandlung Fehlerzustand Fehlermaskierung Fehlerwirkung min. ein weiter Fehlerzustand vorhanden. wird nicht maskiert. 1 2 3 3 Wie entstehen Fehler? 27
  • 28. Wege zu guter Software konstruktive Qualitätssicherung analytische Qualitätssicherung • Software Tests ! • Reviews ! • Audits • Projektplanung ! • Ausbildung ! • Testplanung ! • Entwicklungsprozesse * Themenbereiche die in dieserVorlesung behandelt werden. 28
  • 30. Fragestellung beim Testen Test Verifikation Debugging Ist die Software richtig? Die Software ist richtig! Warum ist die Software nicht richtig? 30
  • 31. Testen und Qualität • Testen ermöglicht die Qualität von Software zu messen. • Qualität wird ausgedrückt durch Anzahl gefundener Fehlerzustände. • Wenn wenige oder keine Fehlerzustände gefunden werden, kann TestenVertrauen in die Qualität eines Systems schaffen. • Falls Testen Fehlerzustände findet und diese Fehlerzustände behoben werden, steigt die Qualität. 31
  • 32. Komponententest • Testbasis (Was ist die Grundlage für die Testfälle) • Anforderungen an die Komponente • detaillierter Entwurf • Code • Testobjekte (SUT = System Under Test): • Komponenten • Programme • Datenumwandlung/Migrationsprogramme • Datenbankmodule 32
  • 33. xUnit • xUnit ist die Bezeichnung für verschiedene Frameworks für automatisierte Unit-Tests (Komponenten Test). • Das erste xUnit-Framework SUnit wurde von Kent Beck für die Programmiersprache Smalltalk entwickelt. • xUnit Frameworks für Java JVM sind JUnit und TestNG (oder Spock) • NUnit für das .NET-Framework, PHPUnit für PHP, CppUnit für C++ ... XUnit Test Patterns - Gerard Meszaros Tipp: Die xUnit Test Bibel 33
  • 34. JUnit 3.X Design JUnit3 Framework Design (Quelle Projektseite http://junit.sourceforge.net/doc/cookstour/cookstour.htm) + run(TestResult) Test + run(TestResult) + runTest() + setUp() + tearDown() TestCase + run(TestResult) + addTest(Test) TestSuite + setUp() + testMyApp() + testOtherStuff() + tearDown() MyTestCase 34
  • 35. Vier Phasen Test (Four-Phase Test) Setup Verify Teardown Exercise SUT test fixture 1 2 3 4 „a test fixture is all the things we need to have in place in order to run a test“ - xUnit Patterns