Software Qualitätssicherung
                         (SW QS)




Software: Planen. Entwickeln. Testen.
Ziel der SW QS

• Qualität der SW erhöhen
         – Wahrgenommene Qualität
         – «effektive» Qualität
•      Vertrauen in Software erhöhen
•      Dadurch: Zufriedener Kunden
•      Zufriedenere Mitarbeiter
•      Effizienz erhöhen: Software kommt nicht
       mehr zurück

Software: Planen. Entwickeln. Testen.
SW Qualitätsmerkmale

                        Welches sind die Qualitätsmerkmale
                                  einer Software?
                            (nach ISTQB (*) [ISO 9126])
                        (*): ISTQB: International Software Testing Qualification Board




Software: Planen. Entwickeln. Testen.
6 Software Qualitätsmerkmale

•      Funktionalität
•      Zuverlässigkeit
•      Benutzbarkeit
•      Effizienz
•      Änderbarkeit (Wartbarkeit)
•      Übertragbarkeit (Portabilität)



Software: Planen. Entwickeln. Testen.
Qualitätsmerkmal Funktionalität

•      Richtigkeit
•      Angemessenheit
•      Ordnungsmässigkeit / Konformität
•      Interoperabilität
•      Sicherheit




Software: Planen. Entwickeln. Testen.
Qualitätsmerkmal Zuverlässigkeit

• Reife
• Fehlertoleranz
• Wiederherstellbarkeit




Software: Planen. Entwickeln. Testen.
Qualitätsmerkmal Benutzbarkeit

• Verständlichkeit
• Erlernbarkeit
• Bedienbarkeit




Software: Planen. Entwickeln. Testen.
Qualitätsmerkmal Effizienz

• Zeitverhalten
• Verbrauchsverhalten




Software: Planen. Entwickeln. Testen.
Qualitätsmerkmal Änderbarkeit

•      Modifizierbarkeit
•      Analysierbarkeit
•      Stabilität
•      Prüfbarkeit




Software: Planen. Entwickeln. Testen.
Qualitätsmerkmal Übertragbarkeit

•      Anpassungsbarkeit
•      Installierbarkeit
•      Konformität
•      Austauschbarkeit




Software: Planen. Entwickeln. Testen.
QS Massnahmen

                          Wie kann die SW Qualität erhöht
                                     werden?
                          Welche QS Massnahmen gibt es?


Software: Planen. Entwickeln. Testen.
QS Massnahmen

• Planerische Massnahmen
• Konstruktive Massnahmen (Vorbeugung von
  Fehlern)
• Analytische Massnahmen (Finden von
  Fehlern)




Software: Planen. Entwickeln. Testen.
Planerische QS Massnahmen

Alle organisatorischen Massnahmen zur Ein-
und Durchführung der QS im Unternehmen und
im SW-Projekt.

z.B. ISO 9001 Zertifizierung




Software: Planen. Entwickeln. Testen.
Konstruktive QS Massnahmen

• Alle präventiven Massnahmen zur
  Vermeidung von Fehlern und Mängel.
• Alle korrigierenden Massnahmen ( Einfluss
  nehmen auf bestehende Abläufe, etc.)

 Vermeidung von Fehlern



Software: Planen. Entwickeln. Testen.
Fehlervermeidung

z.B. Durch:
• Programmierrichtlinien («best practice»)
  definieren und einhalten
• Besonderes Augenmerk auf bekannte Fehler
  legen, z.B. die «CWE / SANS Top 25 Most
  Dangerous Software Errors» kennen und
  unseren Code z.B. auf die Top 10 überprüfen.


Software: Planen. Entwickeln. Testen.
Analytische QS Massnahmen

Alle prüfenden Massnahmen zur Erkennung,
Lokalisierung und Bewerten von Fehlern und
Mängeln.

 Finden von Fehlern (und dann deren
Behebung)




Software: Planen. Entwickeln. Testen.
Fehler Finden

Durch eine Vielzahl von Methoden und
Vorgehensweisen…
…die noch zu definieren sind




Software: Planen. Entwickeln. Testen.
«Axiome» über Fehler und Testen
• Jedes Programm hat Fehler. Es gibt keine
  fehlerlosen Programme.
• Die Anzahl Fehler in einem Programm ist
  unbekannt.
• Es werden nie alle Fehler gefunden
• Es lässt sich nie «alles» in einem Programm testen
   Mit möglichst wenigen Tests möglichst viel
  abdecken
• Fehler kommen oft in «Clustern» vor. Dh. dort wo
  schon Fehler sind, kommen oft noch weitere Fehler
  vor.

Software: Planen. Entwickeln. Testen.
Testziele

                       Was wollen wir durch unsere Tests
                                  erreichen?
                        Welches sind unsere Testziele?


Software: Planen. Entwickeln. Testen.
Testziele

Müssen wir von Projekt zu Projekt festlegen…
… diese sind wohl immer dabei
         – Beweis, dass unsere SW die geforderten
           Funktionen erfüllt (Funktionale Prüfung der SW)
            Korrektes Verhalten beweisen
         – Fehler finden  Inkorrektes Verhalten finden




Software: Planen. Entwickeln. Testen.
Wasserfall Modell

                                        Analyse


                                                  Design                                Testen wird als
                                                                                        einmalige, am
                                                                                      Entwicklungsende
                                                           Implementierung           stattfindende Aktion
                                                             & Debugging                   aufgefasst

                                                                             Test


                                                                                    Betrieb




Software: Planen. Entwickeln. Testen.
V-Model

                          Anforderungs-
                                                                                                            Abnahmetest
                            definition



                                         Funktionaler
                                                                                                       Systemtest
                                        Systementwurf



                                                   Technischer                              Integrations-
                                                  Systementwurf                                 test



                                                           Komponenten               Komponenten -
                                                            Spezifikation                test

                                                                                                                Testen
                                                                   Implementierung
                                                                                                             begleitet das
                                                                                                             ganze Projekt
                                                                                                            von Anfang an.


Software: Planen. Entwickeln. Testen.
ISTQB

• Testen begleitet das ganze Projekt von Anfang
  an.  Tester möglichst früh ins Projekt
  einbinden.
• Sobald die ersten Dokumente verfügbar sind
  kann mit Testen (z.B. Dokument Review (*),
  Testkonzept aufstellen) begonnen werden.
(*) Gemäss ISTQB sind Reviews eine
Testmethode

Software: Planen. Entwickeln. Testen.
Umsetzung

                              Wie wollen wir das Umsetzen?




Software: Planen. Entwickeln. Testen.
Umsetzung
• Grundlagenwissen «Testing» der Mitarbeiter
  erhöhen (inkl. Terminologie)  ISTQB Kurse
• Einheitliche Terminologie verwenden  ISTQB
  Glossar
• Möglichst früh im Projekt ein Testkonzept
  aufstellen. (Was, wie, weshalb getestet wird, was
  weshalb nicht getestet wird, wann mit Testen
  aufgehört werden kann, etc)
• Programmierrichtlinien überarbeiten
• ?

Software: Planen. Entwickeln. Testen.
Meine Ziele

                                   Nicht so …            Sondern so …




                                                       Wir ziehen alle am
                    Entwickler Tester                 gleichen Strick


Software: Planen. Entwickeln. Testen.
Meine Ziele

• Auf Bestehendem aufbauen
• Etwas «was uns etwas bringt» und nicht nur
  zusätzliche Arbeit beschert




Software: Planen. Entwickeln. Testen.
Zum Überlegen

• Welche SW Qualitätsmerkmale sind uns
  wichtig?
• Was wollen wir beim Testen erreichen?
• Welche Testziele haben wir?




Software: Planen. Entwickeln. Testen.

Creasoft - Software QS

  • 1.
    Software Qualitätssicherung (SW QS) Software: Planen. Entwickeln. Testen.
  • 2.
    Ziel der SWQS • Qualität der SW erhöhen – Wahrgenommene Qualität – «effektive» Qualität • Vertrauen in Software erhöhen • Dadurch: Zufriedener Kunden • Zufriedenere Mitarbeiter • Effizienz erhöhen: Software kommt nicht mehr zurück Software: Planen. Entwickeln. Testen.
  • 3.
    SW Qualitätsmerkmale Welches sind die Qualitätsmerkmale einer Software? (nach ISTQB (*) [ISO 9126]) (*): ISTQB: International Software Testing Qualification Board Software: Planen. Entwickeln. Testen.
  • 4.
    6 Software Qualitätsmerkmale • Funktionalität • Zuverlässigkeit • Benutzbarkeit • Effizienz • Änderbarkeit (Wartbarkeit) • Übertragbarkeit (Portabilität) Software: Planen. Entwickeln. Testen.
  • 5.
    Qualitätsmerkmal Funktionalität • Richtigkeit • Angemessenheit • Ordnungsmässigkeit / Konformität • Interoperabilität • Sicherheit Software: Planen. Entwickeln. Testen.
  • 6.
    Qualitätsmerkmal Zuverlässigkeit • Reife •Fehlertoleranz • Wiederherstellbarkeit Software: Planen. Entwickeln. Testen.
  • 7.
    Qualitätsmerkmal Benutzbarkeit • Verständlichkeit •Erlernbarkeit • Bedienbarkeit Software: Planen. Entwickeln. Testen.
  • 8.
    Qualitätsmerkmal Effizienz • Zeitverhalten •Verbrauchsverhalten Software: Planen. Entwickeln. Testen.
  • 9.
    Qualitätsmerkmal Änderbarkeit • Modifizierbarkeit • Analysierbarkeit • Stabilität • Prüfbarkeit Software: Planen. Entwickeln. Testen.
  • 10.
    Qualitätsmerkmal Übertragbarkeit • Anpassungsbarkeit • Installierbarkeit • Konformität • Austauschbarkeit Software: Planen. Entwickeln. Testen.
  • 11.
    QS Massnahmen Wie kann die SW Qualität erhöht werden? Welche QS Massnahmen gibt es? Software: Planen. Entwickeln. Testen.
  • 12.
    QS Massnahmen • PlanerischeMassnahmen • Konstruktive Massnahmen (Vorbeugung von Fehlern) • Analytische Massnahmen (Finden von Fehlern) Software: Planen. Entwickeln. Testen.
  • 13.
    Planerische QS Massnahmen Alleorganisatorischen Massnahmen zur Ein- und Durchführung der QS im Unternehmen und im SW-Projekt. z.B. ISO 9001 Zertifizierung Software: Planen. Entwickeln. Testen.
  • 14.
    Konstruktive QS Massnahmen •Alle präventiven Massnahmen zur Vermeidung von Fehlern und Mängel. • Alle korrigierenden Massnahmen ( Einfluss nehmen auf bestehende Abläufe, etc.)  Vermeidung von Fehlern Software: Planen. Entwickeln. Testen.
  • 15.
    Fehlervermeidung z.B. Durch: • Programmierrichtlinien(«best practice») definieren und einhalten • Besonderes Augenmerk auf bekannte Fehler legen, z.B. die «CWE / SANS Top 25 Most Dangerous Software Errors» kennen und unseren Code z.B. auf die Top 10 überprüfen. Software: Planen. Entwickeln. Testen.
  • 16.
    Analytische QS Massnahmen Alleprüfenden Massnahmen zur Erkennung, Lokalisierung und Bewerten von Fehlern und Mängeln.  Finden von Fehlern (und dann deren Behebung) Software: Planen. Entwickeln. Testen.
  • 17.
    Fehler Finden Durch eineVielzahl von Methoden und Vorgehensweisen… …die noch zu definieren sind Software: Planen. Entwickeln. Testen.
  • 18.
    «Axiome» über Fehlerund Testen • Jedes Programm hat Fehler. Es gibt keine fehlerlosen Programme. • Die Anzahl Fehler in einem Programm ist unbekannt. • Es werden nie alle Fehler gefunden • Es lässt sich nie «alles» in einem Programm testen  Mit möglichst wenigen Tests möglichst viel abdecken • Fehler kommen oft in «Clustern» vor. Dh. dort wo schon Fehler sind, kommen oft noch weitere Fehler vor. Software: Planen. Entwickeln. Testen.
  • 19.
    Testziele Was wollen wir durch unsere Tests erreichen? Welches sind unsere Testziele? Software: Planen. Entwickeln. Testen.
  • 20.
    Testziele Müssen wir vonProjekt zu Projekt festlegen… … diese sind wohl immer dabei – Beweis, dass unsere SW die geforderten Funktionen erfüllt (Funktionale Prüfung der SW)  Korrektes Verhalten beweisen – Fehler finden  Inkorrektes Verhalten finden Software: Planen. Entwickeln. Testen.
  • 21.
    Wasserfall Modell Analyse Design Testen wird als einmalige, am Entwicklungsende Implementierung stattfindende Aktion & Debugging aufgefasst Test Betrieb Software: Planen. Entwickeln. Testen.
  • 22.
    V-Model Anforderungs- Abnahmetest definition Funktionaler Systemtest Systementwurf Technischer Integrations- Systementwurf test Komponenten Komponenten - Spezifikation test Testen Implementierung begleitet das ganze Projekt von Anfang an. Software: Planen. Entwickeln. Testen.
  • 23.
    ISTQB • Testen begleitetdas ganze Projekt von Anfang an.  Tester möglichst früh ins Projekt einbinden. • Sobald die ersten Dokumente verfügbar sind kann mit Testen (z.B. Dokument Review (*), Testkonzept aufstellen) begonnen werden. (*) Gemäss ISTQB sind Reviews eine Testmethode Software: Planen. Entwickeln. Testen.
  • 24.
    Umsetzung Wie wollen wir das Umsetzen? Software: Planen. Entwickeln. Testen.
  • 25.
    Umsetzung • Grundlagenwissen «Testing»der Mitarbeiter erhöhen (inkl. Terminologie)  ISTQB Kurse • Einheitliche Terminologie verwenden  ISTQB Glossar • Möglichst früh im Projekt ein Testkonzept aufstellen. (Was, wie, weshalb getestet wird, was weshalb nicht getestet wird, wann mit Testen aufgehört werden kann, etc) • Programmierrichtlinien überarbeiten • ? Software: Planen. Entwickeln. Testen.
  • 26.
    Meine Ziele Nicht so … Sondern so … Wir ziehen alle am Entwickler Tester gleichen Strick Software: Planen. Entwickeln. Testen.
  • 27.
    Meine Ziele • AufBestehendem aufbauen • Etwas «was uns etwas bringt» und nicht nur zusätzliche Arbeit beschert Software: Planen. Entwickeln. Testen.
  • 28.
    Zum Überlegen • WelcheSW Qualitätsmerkmale sind uns wichtig? • Was wollen wir beim Testen erreichen? • Welche Testziele haben wir? Software: Planen. Entwickeln. Testen.