+ All Categories
Home > Technology > Einführung in die Software-Qualitätssicherung

Einführung in die Software-Qualitätssicherung

Date post: 25-Jun-2015
Category:
Upload: christian-baranowski
View: 421 times
Download: 2 times
Share this document with a friend
35
Vorlesung Software-Qualitätssicherung Oder Wege zu guter Software Christian Baranowski
Transcript
Page 1: Einführung in die Software-Qualitätssicherung

Vorlesung Software-QualitätssicherungOder Wege zu guter Software

Christian Baranowski

Page 2: Einführung in die Software-Qualitätssicherung

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

[email protected]���2

Page 3: Einführung in die Software-Qualitätssicherung

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

Page 4: Einführung in die Software-Qualitätssicherung

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

Page 5: Einführung in die Software-Qualitätssicherung

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

Page 6: Einführung in die Software-Qualitätssicherung

Einführung in die Software-

Qualitätssicherung

���6

Page 7: Einführung in die Software-Qualitätssicherung

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 und Vertragsstrafen.

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

Page 8: Einführung in die Software-Qualitätssicherung

Magisches Dreieck

!

!

Projekterfolg

KostenZeit

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

Page 9: Einführung in die Software-Qualitätssicherung

Was ist Software Qualität?

���9

Page 10: Einführung in die Software-Qualitätssicherung

Funktionelle Eignung (engl. Functional Suitability)

Was ist Software Qualität?

���10

Page 11: Einführung in die Software-Qualitätssicherung

Leistungseffizienz (engl. Performance Efficiency)

Was ist Software Qualität?

���11

Page 12: Einführung in die Software-Qualitätssicherung

Kompatibilität (engl. Compatibility)

Was ist Software Qualität?

���12

Page 13: Einführung in die Software-Qualitätssicherung

Bedienbarkeit (engl. Usability)

Was ist Software Qualität?

���13

Page 14: Einführung in die Software-Qualitätssicherung

Beispiel für keine gute Bedienbarkeit:

Therac 25 User Interface - Medizingerät Linearbeschleuniger zur Anwendung in der Strahlentherapie

���14

Page 15: Einführung in die Software-Qualitätssicherung

// 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

Page 16: Einführung in die Software-Qualitätssicherung

Zuverlässigkeit (engl. Reliability)

Was ist Software Qualität?

���16

Page 17: Einführung in die Software-Qualitätssicherung

Sicherheit (engl. Security)

Was ist Software Qualität?

Security

���17

Page 18: Einführung in die Software-Qualitätssicherung

Wartbarkeit (engl. Maintainability)

Was ist Software Qualität?

���18

Page 19: Einführung in die Software-Qualitätssicherung

Übertragbarkeit (engl. Portability)

Was ist Software Qualität?

���19

Page 20: Einführung in die Software-Qualitätssicherung

Was ist Softwarequalität?

���20

Page 21: Einführung in die Software-Qualitätssicherung

Was ist Softwarequalität?

���21

Page 22: Einführung in die Software-Qualitätssicherung

Ziele der Qualitätssicherung

���22

Page 23: Einführung in die Software-Qualitätssicherung

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

Page 24: Einführung in die Software-Qualitätssicherung

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

Page 25: Einführung in die Software-Qualitätssicherung

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

Page 26: Einführung in die Software-Qualitätssicherung

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

Page 27: Einführung in die Software-Qualitätssicherung

Fehlerhandlung Fehlerzustand

Fehlermaskierung

Fehlerwirkung

min. ein weiter Fehlerzustand vorhanden.

wird nicht maskiert.

1 2

3

3

Wie entstehen Fehler?

���27

Page 28: Einführung in die Software-Qualitätssicherung

Wege zu guter Software

konstruktive Qualitätssicherung analytische Qualitätssicherung

• Software Tests !• Reviews !• Audits

• Projektplanung !• Ausbildung !• Testplanung !

• Entwicklungsprozesse

* Themenbereiche die in dieser Vorlesung behandelt werden.���28

Page 29: Einführung in die Software-Qualitätssicherung

Software Tests

���29

Page 30: Einführung in die Software-Qualitätssicherung

Fragestellung beim Testen

Test Verifikation

Debugging

Ist die Software richtig?

Die Software ist richtig!

Warum ist die Software nicht

richtig?

���30

Page 31: Einführung in die Software-Qualitätssicherung

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 Testen Vertrauen in die Qualität eines Systems schaffen.

• Falls Testen Fehlerzustände findet und diese Fehlerzustände behoben werden, steigt die Qualität.

���31

Page 32: Einführung in die Software-Qualitätssicherung

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

Page 33: Einführung in die Software-Qualitätssicherung

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

Page 34: Einführung in die Software-Qualitätssicherung

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

Page 35: Einführung in die Software-Qualitätssicherung

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


Recommended