Einführung in die Software-Qualitätssicherung

Christian Baranowski
Christian BaranowskiAgile Software Developer and Tester um Seitenbau GmbH
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
1 von 35

Recomendados

Continuous Delivery @ FriendScout24 | Webinale 2012 von
Continuous Delivery @ FriendScout24 | Webinale 2012Continuous Delivery @ FriendScout24 | Webinale 2012
Continuous Delivery @ FriendScout24 | Webinale 2012Michael Maretzke
2.3K views33 Folien
Agilität und Microservices als Chance für Modernisierung? von
Agilität und Microservices als Chance für Modernisierung?Agilität und Microservices als Chance für Modernisierung?
Agilität und Microservices als Chance für Modernisierung?enpit GmbH & Co. KG
724 views37 Folien
Microservices – die Architektur für Agile-Entwicklung? von
Microservices – die Architektur für Agile-Entwicklung?Microservices – die Architektur für Agile-Entwicklung?
Microservices – die Architektur für Agile-Entwicklung?Christian Baranowski
3.4K views33 Folien
Microservice architecture applied. 14 Praxis-Tipps für die Nutzung von Micros... von
Microservice architecture applied. 14 Praxis-Tipps für die Nutzung von Micros...Microservice architecture applied. 14 Praxis-Tipps für die Nutzung von Micros...
Microservice architecture applied. 14 Praxis-Tipps für die Nutzung von Micros...Ramon Anger
2.7K views21 Folien
Alle reden über Microservices - Wie haben wir es bei LeanIX gemacht @ EA Conn... von
Alle reden über Microservices - Wie haben wir es bei LeanIX gemacht @ EA Conn...Alle reden über Microservices - Wie haben wir es bei LeanIX gemacht @ EA Conn...
Alle reden über Microservices - Wie haben wir es bei LeanIX gemacht @ EA Conn...LeanIX GmbH
3.9K views17 Folien
Liferay als Plattform für Microservices von
Liferay als Plattform für MicroservicesLiferay als Plattform für Microservices
Liferay als Plattform für MicroservicesDaniel Reuther
708 views17 Folien

Más contenido relacionado

Was ist angesagt?

Continuous deployment in LeanIX @ Bonn Agile von
Continuous deployment in LeanIX @ Bonn AgileContinuous deployment in LeanIX @ Bonn Agile
Continuous deployment in LeanIX @ Bonn AgileLeanIX GmbH
4.3K views32 Folien
Microservices und das Entity Control Boundary Pattern von
Microservices und das Entity Control Boundary PatternMicroservices und das Entity Control Boundary Pattern
Microservices und das Entity Control Boundary PatternBrockhaus Consulting GmbH
2.5K views6 Folien
BATbern41 Die Evolution zu Microservices von
BATbern41 Die Evolution zu MicroservicesBATbern41 Die Evolution zu Microservices
BATbern41 Die Evolution zu MicroservicesBATbern
948 views25 Folien
DevDay 2017: Bert Radke - Der Frontend Monolith von
DevDay 2017: Bert Radke - Der Frontend MonolithDevDay 2017: Bert Radke - Der Frontend Monolith
DevDay 2017: Bert Radke - Der Frontend MonolithDevDay Dresden
908 views34 Folien
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ... von
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
3.8K views27 Folien
Realisierung des Application Lifecycle Management im OWB von
Realisierung des Application Lifecycle Management im OWBRealisierung des Application Lifecycle Management im OWB
Realisierung des Application Lifecycle Management im OWBMinerva SoftCare GmbH
1.2K views16 Folien

Was ist angesagt?(12)

Continuous deployment in LeanIX @ Bonn Agile von LeanIX GmbH
Continuous deployment in LeanIX @ Bonn AgileContinuous deployment in LeanIX @ Bonn Agile
Continuous deployment in LeanIX @ Bonn Agile
LeanIX GmbH4.3K views
BATbern41 Die Evolution zu Microservices von BATbern
BATbern41 Die Evolution zu MicroservicesBATbern41 Die Evolution zu Microservices
BATbern41 Die Evolution zu Microservices
BATbern948 views
DevDay 2017: Bert Radke - Der Frontend Monolith von DevDay Dresden
DevDay 2017: Bert Radke - Der Frontend MonolithDevDay 2017: Bert Radke - Der Frontend Monolith
DevDay 2017: Bert Radke - Der Frontend Monolith
DevDay Dresden908 views
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ... von LeanIX GmbH
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 GmbH3.8K views
Realisierung des Application Lifecycle Management im OWB von Minerva SoftCare GmbH
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... von DevDay Dresden
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 Dresden1.1K views
DevOps in der Praxis von inovex GmbH
DevOps in der PraxisDevOps in der Praxis
DevOps in der Praxis
inovex GmbH1.4K views
Softwerkskammer Chemnitz Special Pecha Kucha Night von ChristinaLerch1
Softwerkskammer Chemnitz Special Pecha Kucha NightSoftwerkskammer Chemnitz Special Pecha Kucha Night
Softwerkskammer Chemnitz Special Pecha Kucha Night
ChristinaLerch186 views
micro services von smancke
micro servicesmicro services
micro services
smancke4.2K views

Similar a Einführung in die Software-Qualitätssicherung

Softwarequalität - Einführung in eine neue Vorlesung von
Softwarequalität - Einführung in eine neue VorlesungSoftwarequalität - Einführung in eine neue Vorlesung
Softwarequalität - Einführung in eine neue VorlesungGerrit Beine
4.9K views34 Folien
Softwarequalität: Definitionen, Grenzen, Wünsche - Vortrag IKS-Meeting im Jan... von
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...IKS Gesellschaft für Informations- und Kommunikationssysteme mbH
2.4K views36 Folien
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test) von
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
79 views85 Folien
Einführung Vorgehensmodelle und Agile Software Entwicklung von
Einführung Vorgehensmodelle und Agile Software EntwicklungEinführung Vorgehensmodelle und Agile Software Entwicklung
Einführung Vorgehensmodelle und Agile Software EntwicklungChristian Baranowski
1.1K views58 Folien
Software-Tests in PHP-Anwendungen von
Software-Tests in PHP-AnwendungenSoftware-Tests in PHP-Anwendungen
Software-Tests in PHP-AnwendungenGjero Krsteski
1.1K views7 Folien

Similar a Einführung in die Software-Qualitätssicherung(20)

Softwarequalität - Einführung in eine neue Vorlesung von Gerrit Beine
Softwarequalität - Einführung in eine neue VorlesungSoftwarequalität - Einführung in eine neue Vorlesung
Softwarequalität - Einführung in eine neue Vorlesung
Gerrit Beine4.9K views
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test) von Florian Wolters
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 Wolters79 views
Einführung Vorgehensmodelle und Agile Software Entwicklung von Christian Baranowski
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 von Gjero Krsteski
Software-Tests in PHP-AnwendungenSoftware-Tests in PHP-Anwendungen
Software-Tests in PHP-Anwendungen
Gjero Krsteski1.1K views
Creasoft - Software QS Review von Creasoft AG
Creasoft - Software QS ReviewCreasoft - Software QS Review
Creasoft - Software QS Review
Creasoft AG1.6K views
Der Agile Qualitätsbaukasten - PHP Unconference 2014 von WebcsonsultsEU
Der Agile Qualitätsbaukasten - PHP Unconference 2014Der Agile Qualitätsbaukasten - PHP Unconference 2014
Der Agile Qualitätsbaukasten - PHP Unconference 2014
WebcsonsultsEU1.9K views
Software Quality Lab - Beratung und Training für mehr Qualität und Effizienz ... von Markus Unterauer
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 Unterauer866 views
ESEconf2011 - Trost Joachim: "Tool supported technical Code and Design Qualit... von Aberla
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...
Aberla1.7K views
Crowdsourced Mobile Testing – Alternative oder Ergänzung? von Connected-Blog
Crowdsourced Mobile Testing – Alternative oder Ergänzung?Crowdsourced Mobile Testing – Alternative oder Ergänzung?
Crowdsourced Mobile Testing – Alternative oder Ergänzung?
Connected-Blog1K views
Creasoft - Software QS von Creasoft AG
Creasoft - Software QSCreasoft - Software QS
Creasoft - Software QS
Creasoft AG1.4K views
Automatisiertes webauftritt testen von mradamlacey
Automatisiertes webauftritt testenAutomatisiertes webauftritt testen
Automatisiertes webauftritt testen
mradamlacey4K views
ASQF Dresden: Benötigen wir mit SCRUM noch einen Testmanager? von René Spengler
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é Spengler3.2K views
Software-Engineering in der Luft- und Raumfahrt mit Open-Source-Tools von Andreas Schreiber
Software-Engineering in der Luft- und Raumfahrt mit Open-Source-ToolsSoftware-Engineering in der Luft- und Raumfahrt mit Open-Source-Tools
Software-Engineering in der Luft- und Raumfahrt mit Open-Source-Tools
Andreas Schreiber2.8K views

Más de Christian Baranowski

OSGi and Spring Data for simple (Web) Application Development von
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
7.7K views22 Folien
BDD - Behavior Driven Development Webapps mit Groovy Spock und Geb von
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
2.4K views29 Folien
Komponententests und Testabdeckung von
Komponententests und TestabdeckungKomponententests und Testabdeckung
Komponententests und TestabdeckungChristian Baranowski
1.2K views49 Folien
OSGi Web Development in Action von
OSGi Web Development in ActionOSGi Web Development in Action
OSGi Web Development in ActionChristian Baranowski
1.3K views15 Folien
Spock and Geb in Action von
Spock and Geb in ActionSpock and Geb in Action
Spock and Geb in ActionChristian Baranowski
4.4K views62 Folien
Continuous Delivery in Action von
Continuous Delivery in ActionContinuous Delivery in Action
Continuous Delivery in ActionChristian Baranowski
984 views39 Folien

Más de Christian Baranowski(20)

OSGi and Spring Data for simple (Web) Application Development von Christian Baranowski
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 von Christian Baranowski
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
Einführung Software Testing und Qualitätssicherung von Christian Baranowski
Einführung Software Testing und QualitätssicherungEinführung Software Testing und Qualitätssicherung
Einführung Software Testing und Qualitätssicherung

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