48

Softwaretechnik SoSe 2016 (Fach) / Riebisch 3 - Qualitätskontrolle (Lektion)

Riebisch 3 - Qualitätskontrolle

Diese Lektion wurde von anduenacurri erstellt.

Lektion lernen

Anzeige
  • Wie lauten die ISO-Software-Qualitätsmerkmale? Welche äußeren und inneren Qualitätsmerkmale gibt es? (4 + 2) * FunktionalitätAngemessenheitRichtigkeitInteroperabilitätSicherheitOrdnungsmäßigkeit* BenutzbarkeitVerständlichkeitErlernbarkeitBedienbarkeitAttraktivitätKonformität (Ben.)* ZuverlässigkeitReifeFehlertoleranzWiederherstellbarkeitKonformität (Zuverl)* EffizienzZeitverhaltenVerbrauchsverhaltenKonformität (Effiz.) --* WartbarkeitAnalysierbarkeitÄnderbarkeitStabilitätTestbarkeitKonformität (Wartbark.)* ÜbertragbarkeitAnpassbarkeitInstallierbarkeitKoexistenzAustauschbarkeitKonformität (Übertragb.)
  • Was genau versteht man unter Funktionalität (1) und was sind die Unterpunkte davon? (5) Funktionalität: Inwieweit besitzt die Software die geforderten Funktionen? ● Angemessenheit: Eignung von Funktionen für spezifizierte Aufgaben● Richtigkeit: Liefern der richtigen oder vereinbarten Ergebnisse oderWirkungen● Interoperabilität: Fähigkeit, mit vorgegebenen Systemenzusammenzuwirken● Sicherheit: Fähigkeit, unberechtigten Zugriff, sowohl versehentlichals auch vorsätzlich, auf Programme und Daten zu verhindern● Ordnungsmäßigkeit: anwendungsspezifische Normen oderVereinbarungen oder gesetzliche Bestimmungen erfüllen
  • Was genau versteht man unter Zuverlässigkeit (1) und was sind die Unterpunkte davon? (4) Zuverlässigkeit: ein bestimmtes Leistungsniveau unter bestimmtenBedingungen über einen bestimmten Zeitraum aufrechterhalten● Reife: Geringe Versagenshäufigkeit durch Fehlerzustände● Fehlertoleranz: spezifiziertes Leistungsniveau bei Software-Fehlernoder Nicht-Einhaltung ihrer spezifizierten Schnittstelle bewahren● Wiederherstellbarkeit: bei Versagen Leistungsniveauwiederherzustellen● Konformität: Grad, in dem die Software Normen oderVereinbarungen zur Zuverlässigkeit erfüllt
  • Was genau versteht man unter Benutzbarkeit (1) und was sind die Unterpunkte davon? (5) Benutzbarkeit: Aufwand zur Benutzung● Verständlichkeit: Aufwand für Verständnis von Konzeptund Anwendung● Erlernbarkeit: Aufwand für Erlernen der Anwendung● Bedienbarkeit: Aufwand für Bedienen der Anwendung● Attraktivität: Anziehungskraft gegenüber dem Benutzer● Konformität: Grad, in dem die Software Normen oderVereinbarungen zur Benutzbarkeit erfüllt
  • Was genau versteht man unter Effizienz (1) und was sind die Unterpunkte davon? (3) Effizienz: Verhältnis zwischen Leistungsniveau der Softwareund eingesetzten Betriebsmitteln● Zeitverhalten: Antwort- und Verarbeitungszeiten sowieDurchsatz bei der Funktionsausführung● Verbrauchsverhalten: Anzahl und Dauer der benötigtenBetriebsmittel bei der Erfüllung der Funktionen.Ressourcenverbrauch, wie CPU-Zeit, Festplattenzugriffe● Konformität: Grad, in dem die Software Normen oderVereinbarungen zur Effizienz erfüllt.
  • Was genau versteht man unter Effizienz (1) und was sind die Unterpunkte davon? (3) Wartbarkeit: Aufwand für Durchführung vorgegebener Änderungen an der Software● Analysierbarkeit: Aufwand für Diagnose von Mängeln oder Ursachenvon Versagen● Änderbarkeit: Aufwand zur Ausführung von Veränderungen● Stabilität: Wahrscheinlichkeit des Auftretens unerwarteter Wirkungenvon Änderungen.● Testbarkeit: Aufwand zur Prüfung der geänderten Software● Konformität: Grad, in dem die Software Normen oderVereinbarungen zur Änderbarkeit erfüllt.
  • Was genau versteht man unter Übertragbarkeit (1) und was sind die Unterpunkte davon? (5) Übertragbarkeit: Aufwand für Übertragung der Software in eine andereUmgebung● Anpassbarkeit: Aufwand zur Anpassung an verschiedeneUmgebungen anzupassen.● Installierbarkeit: Aufwand zum Installieren in festgelegter Umgebung● Koexistenz: Fähigkeit der Arbeit neben einer anderen Systemen mitähnlichen oder gleichen Funktionen● Austauschbarkeit: Möglichkeit der Verwendung der Software inanderer Umgebung jener Software zu verwenden, sowie der dafürnotwendige Aufwand.● Konformität: Grad, in dem die Software Normen oderVereinbarungen zur Übertragbarkeit erfüllt
  • Nenne die Merkmale der Prozessqualität! (9) Prozess-Reifegrad Terminplanung Budgetplanung Produktivität Aufgaben-Koordination Organisation und Kommunikation Erfahrungsmanagement Kundenzufriedenheit Mitarbeiterzufriedenheit
  • Was ist das besondere bei Fehlern und v.a. der Fehlerfortpflanzung? (5) ● Fehler-Erkennung häufig erst an Folgewirkung● Rückverfolgung und Ursachenerkennung bei komplexenSystemen schwierig- Deutlich aufwendiger als Behebung● Fehler pflanzen sich in Folgeschritten fort:- Entwicklungsschritte Vorläuferprodukte zu wiederholen –- „Rework“● Je später erkannt, um so umfangreicher Rework ● Fehlerverweilzeit senken = Produktivität erhöhen
  • Welche 3 Arten von Konstruktiven Maßnahmen gibt es? (3) Technisch-konstruktive Maßnahmen● Methoden- und Werkzeuganwendung (Softwareengineering)● ProgrammiersprachenOrganisatorische Maßnahmen● Projektmanagement (z. B. Pläne und Koordinierung)● Konfigurationsmanagement (z. B. Schutz vor Veränderungenund Inkonsistenzen)● VorgehensmodellPsychologisch orientierte Maßnahmen● Schulungen (z. B. zu Qualitätsmaßnahmen und Zielen)● Motivationsfördernde Maßnahmen (z. B. Qualitätszirkel)● Kommunikationsverbessernde Maßnahmen
  • Anzeige
  • Analytische Maßnahmen (gewusst) Wobei es darum geht: Qualität prüfen und bewertenZiele:● Kunde: erfüllt Produkt meine Anforderungen?● Projektleiter: Wie ist Qualität der Zwischen- und Endprodukte?● Entwickler: Habe ich gute Arbeit geleistet?Verifikation: Übereinstimmung der Ergebnisse einer Phasemit der vorigenValidation: Übereinstimmung der Ergebnisse mitAnforderungenØ Frühzeitig analysieren: Risiken und Rework-Aufwandreduzieren
  • Einbindung in den Entwicklungsprozess (gewusst) ● Möglichkeiten für inkrementellesVorgehen nutzen● Abnahmekriterien,Testszenarien / -fälle vorEntwicklung bereitstellen● Wartbarkeit, Erweiterbarkeit,Flexibilität usw. als expliziteZiele aufnehmen● Zugehörige Dokumenteeinbeziehen● Schrittweise „Reifegrad“erhöhen● Dokumentationsbasis verbessern● Architekturqualität verbessern● Modell-Qualität verbessern
  • Review ist eine statische Maßnahme zur Fehlerentdeckung. Begutachte folgende Punkt: 1) Ablauf, 2) Für welche Produkte ist es geeignet?, 3) In welchen Phasen?, 4) Welche Fehler/Mängel können dadurch entdeckt werden?, 5) Wie ist die Effizienz? 1) Ablauf: Prüfobjekt liegt vor, wird begutachtet2) Für welche Produkte ist es geeignet: Alle Arten3) In welchen Phasen: Frühzeitig möglich4) Welche Fehler/Mängel können dadurch entdeckt werden: Auch innere Q-Merkmale: Wartbarkeit etc.5) Wie ist die Effizienz: Hoch
  • Testen ist eine DYNAMSCHE Maßnahme zur Fehlerentdeckung. Begutachte folgende Punkt: 1) Ablauf, 2) Für welche Produkte ist es geeignet?, 3) In welchen Phasen?, 4) Welche Fehler/Mängel können dadurch entdeckt werden?, 5) Wie ist die Effizienz? 1) Ablauf: Prüfobjekt wird ausgeführt, Verhalten beobachtet 2) Für welche Produkte ist es geeignet: Nur für ausführbaren Code 3) In welchen Phasen: Erst nach gewisser Implementierung 4) Welche Fehler/Mängel können dadurch entdeckt werden: Nur Fehlerverhalten (äußere Qualitätsmerkmale!) 5) Wie ist die Effizienz: Gering
  • Was beinhaltet ein Testrahmen? (2) ● Treiber (driver) zum Aufrufen des Testobjektes und zurÜbergabe von Eingabedaten und Resultaten● Stellvertreter (stubs) zur Simulation der externen Funktionen
  • Test müssen sein: (4) ● wiederholbar sein (z.B. für Regressionstests)● nachvollziehbar sein● dokumentiert werden● d.h. geplant und kontrolliert werden
  • Warum sind die hohen Kombinationen für das Testen eine Herausforderung? Weil sich dadurch ein zu hoher Aufwand für das Testen ergibt.Es empfiehlt sich:Ø Verringerung der Anzahl der TestfälleØ Durchführung von Positiv-, Negativ- und Lasttests
  • Erkläre die Begriffe Anweisungs-, Zweig- und Pfadabdeckung! ● AnweisungsabdeckungJede Anweisung im Testobjekt mindestens einmal ausgeführtMaß (C0) = Anzahl der ausgeführten Anweisungen / Anzahl allerAnweisungen - nicht ausreichend● ZweigabdeckungJede Bedingung, die zur Änderung des Ablaufs führt, sollmindestens einmal den Wert TRUE und einmal den Wert FALSEliefern. - MindestanforderungMaß (C1) = Anzahl der ausgeführten Zweige / Anzahl aller Zweige● PfadabdeckungAlle möglichen unterschiedlichen Abläufe des Testobjektes sollen inder Testphase einmal ausgeführt werden. - nicht realistisch
  • Sage zu "Blackbox" (Funktionaler Test) zu folgenden Kategorien etwas: Ablauf, Quelle der Testdaten, Art der gefundenen Fehler, Anwendungen in Phasen Ablauf: Testgegenstand mit Testdaten beschicken, Verhaltenbeobachten, Resultate mit Erwartungen vergleichenQuelle der Testdaten: Spezifikation, SchnittstellenbeschreibungArt der gefundenen Fehler: Falsche Funktionalität, auchEntwurfsfehler, datenabhängige FehlerAnwendungen in Phasen: Subsystem-, Integrations-, Abnahmetest
  • Sage zu "Whitebox" (Strukturtest) zu folgenden Kategorien etwas: Ablauf, Quelle der Testdaten, Art der gefundenen Fehler, Anwendungen in Phasen Ablauf: Testgegenstand mit Testdaten beschicken, Verhaltenbeobachten, Resultate mit Erwartungen vergleichen Quelle der Testdaten: Struktur, Steuerflußanalyse Art der gefundenen Fehler: Falsche Funktionalität, auch verborgene Funktionalität (Viren, Trojaner) Anwendungen in Phasen: "Entwicklertest", Klassen-, Modultest
  • Nenne die 3 Testebenen ● Modultest/Klassentest - Testen im Kleinen● Verhalten von Funktionen, Programmteilen, Modulen● Integrationstest - Testen im Großen● Montage der fertig getesteten Module● Test des Zusammenspiels der Module (Schnittstellentest)● Systemtest - Test des kompletten Systems● Außenverhalten des Gesamtsystems● Laufzeit- und Stresstests● Bewertung der Benutzungsfreundlichkeit
  • 1) funktionsorientierter Klassentest 1) funktionsorientierter Klassentest● Instrumentierung für Zweigüberdeckung● Äquivalenzklassen-Tests nach Spezifikation● Kontrolle der erreichten Zweigüberdeckungtypische Zweigüberdeckung 70-80 %
  • 2) strukturorientierter Klassentest ● Testfälle für noch nicht durchlaufene Zweige➨ garantierte Erfüllung der Minimalbedingungen
  • Was sind Äquivalenzklassen? ● Partitionierung desEingangsraumes einerMethode durch Bildung vonÄquivalenzklassen für dieEingangswerte.● Werte aus einerÄquivalenzklasse: - verursachen identischesfunktionales Verhalten- testen identischespezifizierte FunktionenGut dabei: Verringerte Anzahl derTestfälle, gleicheTestabdeckung
  • Regeln zur Bildung der Äquivalenzklassen ● Positiv-Klassen: Testfälle ausKombination möglichst vielerTestdaten aus gültigenÄquivalenzklassen● Negativ-Klassen: Testfälle aus● einem Testdatum einerungültigenÄquivalenzklassen● weiteren Testdatenausschließlich aus gültigenÄquivalenzklassen
  • Grenzwertanalyse ● Fehlerwahrscheinlichkeit höher an den Grenzen einerÄquivalenzklasse als innen● Testen an Grenzen erfolgreicher● Testfälle für Grenzen gültiger Äquivalenzklasse,ungültiger Äquivalenzklassen
  • Entscheidungstabelle für: ● Aufstellung der möglichen Kombinationen● Prüfung der Vollständigkeit● Abgrenzung von Äquivalenzklassen
  • Vorgehen beim Entscheidungsbasierten Testen Aufstellung Entscheidungstabelle:1. Bedingungen festlegen2. Aktionen angeben3. Regeln und Aktionsanzeiger setzenVereinfachen und prüfen:4. Konsolidierung der Entscheidungstabelle àje Gruppezusammengefasster Regeln eine Äquivalenzklasse5. Prüfung auf Widerspruchsfreiheit und VollständigkeitTestfälle bilden:6. je Äquivalenzklasse einen Testfall bilden
  • Zustandsbasierter Test (3-35) Anwendungsgebiet:Test von Methodensequenzen, dieals Zustandsautomat spezifiziertwerden.Abdeckungsmaße:● typische Folgen von Zuständen● alle Zustände (Minimum)● alle Zustandsübergänge einmaldurchlaufen (besser)● typische Folgen vonZustandsübergängen● alle Ereignisse (noch besser)● ungültige Zustandsübergänge
  • Use-Case-basierter Test ● Interaktionen zwischen Benutzer und System führt zuReaktionen● Vorbedingungen für Eintreten des Use Case● Nachbedingungen nach Ende des Use Case (soweitsichtbar)● Mehrere Szenarien: Normalfall, Ausnahmefall, FehlerfallØ Für Prüfung von Abläufen (z.B. Workflows)Ø Für Prüfung des Zusammenspiels von KomponentenØ Meist in Kombination mit anderen Methoden
  • Anzeige
  • Testen objektorientierter Software ● Kapselung von Objekten behindert das Testen● Fehlerbehandlung    - gegenüber Benutzer sinnvoll    - gegenüber Test-Software nicht sinnvoll, da        - Fehler maskiert werden        - Testbarkeit reduziert wird    ➨ Fehlerwirkung forcieren    ➨ Zusicherungen erhöhen Test- und Beobachtbarkeit Ziel: Kein zusätzlicher Code für Fehlerbehandlung
  • Klassentest ● Testen der Methoden eines Objekts, welches Instanz derzu testenden Klassen ist.● Im Vergleich zu Modulen aus imperativenProgrammierparadigmen zeigen Methoden   - eine einfache Kontrollstruktur.   - eine starke Verflechtung über die Attribute der Klasse.Eine Methode sollte● eine gewisse Mindestkomplexität aufweisen.● keine zu große Abhängigkeit von anderen Teilen desObjektes oder zu anderen Objekten besitzen.
  • Voraussetzung für den Test einer einzelnen Methode Die Methode sollte●eine gewisse Mindestkomplexität aufweisen.●keine zu große Abhängigkeit von anderen Teilen desObjektes oder zu anderen Objekten besitzen.●Ziel des OO-Testens ist nicht das Testen der Methoden ansich, sondern das Testen von deren Zusammenspiel überdie Attribute einer Klasse.
  • Zusammenfassung Testen objektorientierter Software ● Gleiche Testtechniken wie bei imperativen Programmiersprachen   - funktionaler Test   - kontrollflußorientierter Test● Unterschiedliche Vorgehensweise beim OO-Testen● Integration der Testtechniken zur simultanen Testdurchführung
  • Analytische statische Maßnahmen ● Audit● Prüfung der Einhaltung von Vorgaben● Prüfung der Sinnhaftigkeit, Wirksamkeit● Review, Inspektion● Formaler Analyseprozeß vor Gutachtern● Walkthrough● Durchspielen von Abläufen● Korrektheitsbeweiser● Gegenüber formaler Spezifikation● Symbolische Programmausführung
  • (Statische Maßnahmen) Welche Review-techniken gibt es? Kommentartechnik- Schreibtischtest- StellungnahmeSitzungstechnik- Informelle Sitzungstechnik---- Mini-Review---- Structured Walkthrough---- Peer Review- Formelle Sitzungstechnik---- Anforderungsinspektion---- Designinspektion---- Codeinspektion
  • Statische Maßnahme: Review, Inspektion Insbesondere Peer Review:● Gemeinsame Analyse mit Fragen und Erläuterung durchAutor● Fremde Fragestellungen: neue Erkenntnisse● Kognitive Fähigkeiten vereinigt - 4 Augen● Anerkennung der Ergebnisse undVerbesserungshinweise● Effektiver als Test: mehr Fehler pro Zeiteinheit● Motivation für Dokumentation und ProgrammierstilJedoch: Erfolg personen- und klimaabhängig
  • Vorteile von Reviewtechniken ● ca. 80% der Softwarefehler entdeckt● Mängel entdeckt: Wartbarkeit, Tricks (?)● einfach durchzuführen, keine spezielle Software benötigt● Collective Code Ownership statt Einzelkämpfertum● Unterstützt praktischen Wissenstransfer zwischenerfahrenen und unerfahrenen Mitarbeitern----- Entwurfsmethoden----- Defensiver Programmierstil (?)● Qualitätskriterien schon während desImplementierungsprozesses überprüft
  • Zeitpunkte der Inspektion ● vor Freigabe● sobald eine gewisse Qualität garantiert werden muss--- vor dem Besuch des Kunden--- bevor der Autor in Urlaub geht● auf Wunsch eines Mitarbeiters, falls selbst unsicher überQualität seines Codes● nach ca. 2, höchstens 4 Implementierungswochen (beiAnfänger öfters, bei Profis seltener)Zeitpunkt der Inspektion frühzeitig bekannt geben, umVorbereitung zu ermögliche
  • Wie ist der generelle Ablauf der Inspektion? Planung Vorbesprechung (Individuelle Vorbesprechung) (dieser Punkt kann auch wegfallen) Sitzung Nachbereitung Bewertung
  • Erkläre die Punkte Vorbereitung, Sitzung, Nachbereitung sowie Bewertung bei dem Ablauf der Inspektion Vorbereitung:● Verstehen, Formale Fehleranhand Checkliste sammelnSitzung:● Mängel nur entdecken undsammeln, nicht diskutieren● Dauer max. 2 h● Konstruktives KlimaNachbereitung:● Autor behebt MängelBewertung:● Prüfung der Behebung
  • Review-Kriterien ● Zielorientiertes Qualitätsmanagement: Anforderungender Stakeholder als Quelle● Auftraggeber, Kunden, Benutzer:--- äußere Q-Merkmale, wie Funktionalität, Benutzbarkeit, Effizienz● Entwickler, Management des Auftragnehmers:--- Prozessmerkmale wie Effizienz, Fehlervermeidung--- innere Q-Merkmale wie Wartbarkeit, Verständlichkeit● Konzentration auf wenige Kriterien für effiziente Reviews-> Priorisierung der Kriterien wichtig-> Erweiterung nach Auftreten von Problemen
  • Checkliste und Protokoll ChecklisteGuter Codierstil mit Facetten:● Do‘s und Don‘ts der Sprache: Fehler und Mängel● Lesbarkeit● Namenskonventionen (allgemein, sprach-, projektspezifisch)● Defensiver Programmierstil● Verständlichkeit: Kompliziertes vermeidenPortabilität, Nebenläufigkeit, FehlerbehandlungProtokoll als Liste gefundener Fehler und Mängel:● Ort● Art, Erläuterung (keine Behebung)● Schwere: Severe - Intermediate - Cosmetic
  • Werkzeugunterstützung: Findbugs, Checkstyle, PMD ● Werkzeuge zur maschinelle Prüfung von Stil-Richtlinien--- Sun-Richtlinien für Java● Possible bugs - empty try/catch/finally/switch statements● Dead code - unused local variables, parameters andprivate methods● Suboptimal code - wasteful String/StringBuffer usage● Overcomplicated expressions - unnecessary ifstatements, for loops that could be while loops● Duplicate code - copied/pasted code meanscopied/pasted bugs
  • Factor-Criteria-Metrics FCM ● Quality Factors: benutzerorientierte Qualitätsmerkmaleder Software● Quality Criteria:--- Teilmerkmale, die Qualitätsmerkmale verfeinern--- oft Einfluss auf mehrere Qualitätsmerkmale--- hilfreich bei Priorisierung● Quality Metrics: Qualitätsindikatoren / Qualitätsmetriken,die Teilmerkmale meß- und bewertbar machen– inkl. Meßmethode
  • Factor-Criteria-Metrics Beispiel Screenshot 2:42 Uhr
  • Factor-Strategy-Modell ● Quality Factors: Qualitätsmerkmale wie bereits behandelt● Strategy:--- Erkennungsstrategie, zugeordnet zu Factor--- Aufdeckung eines Entwurfsproblems-> Ansätze für Verbesserung-> Kriterien für Inspektion-> Kriterien für Refactoring: Bad Smells
  • Factor-Strategy-Model Beispiel Screenshot 2:44 Uhr