Softwarequalität
Definition
„Softwarequalität ist die Gesamtheit der Merkmale und Merkmalswerte eines Softwareprodukts, die sich auf dessen Eignung beziehen, festgelegte Erfordernisse zu erfüllen.
Qualitätsmanagement
Mit Qualitätsmanagement werden alle organisierten Maßnahmen bezeichnet, die der Verbesserung der Qualität von Produkten, Prozessen oder Leistungen dienen.
Nenne die typischen Aktivitäten des QM
Qualitätsplanung:
Erstellung und Dokumentation der Qualitätsanforderungen gemeinsam mit dem Auftraggeber.
Qualitätslenkung:
Überwachung, Steuerung und Kontrolle von Aktivitäten zur Qualitätsprüfung im Softwareentwicklungsprozess.
Qualitätssicherung (kurz: QS):
Tätigkeiten, die sicherstellen, dass festgelegte Qualitätsanforderungen für Produkte, Prozesse und Leistungen erfüllt werden.
Qualitätsverbesserung:
Auswertung von Produkt- und Prozessdaten zur Verbesserung des Qualitätsniveaus.
In welche Bereiche kann es unterteilt werden ?
Konstruktiv und analytisch
QM
Konstruktiv vs analytisch
Wann, was und warum passiert konstruktives QM?
Nenne die Maßnahmen.
Was ist das Ziel?
Alle Qualitätseigenschaften werden VOR der Erstellung (a priori) definiert, um Fehler während der Softwareentwicklung zu vermeiden und die Qualität der erstellten Artefakte zu gewährleisten beziehungsweise zu erhöhen
Maßnahmen
technische Maßnahmen (z. B. Einsatz von Modellierungssprachen, Werkzeugen, Entwicklungsumgebungen),
organisatorische Maßnahmen (z. B. Richtlinien, Standards, Templates, Checklisten) und
zwischenmenschliche Maßnahmen (z. B. Trainings, Arbeitsklima, gemeinsame Aktivitäten).
Fehlerprävention
Wann, was, warum und wie passiert analytisches QM?
Nach der Erstellung (ex post) Maßnahmen zur Prüfung und Bewertung des aktuellen Qualitätsniveaus der Prüfobjekte durchgeführt, um Fehler systematisch aufzuspüren und ihre Ausmaße bestimmen zu können.
Dazu werden statische und dynamische Testverfahren eingesetzt.
Fehler erkennen und deren Ausmaß bestimmen.
analytisch
Zeige die Unterschiede der statischen und dynamischen Testverfahren im Bezug auf:
Methode,
Prüfling,
Beispiel,
Beispiele für Testverfahren und
Verortung im QM
auf
Testgegenstand
Was ist ein Artefakt?
Welche Artefakte können auf was getestet werden?
Worin liegt der Unterschied zwischen dymischen und statischen Testverfahren?
Jedes Produkt, das im SW-Entwicklungsprozess entsteht.
Grundsätzlich können alle im Software Engineering erstellten Artefakte auf die Einhaltung von Qualitätsanforderungen getestet werden.
Das bedeutet, dass neben dem erzeugten Programmcode auch
fachliche Anforderungen,
technische Spezifikationen,
Architekturbeschreibungen und selbst die
Testfälle
getestet werden können.
Dynamische Tests sind jedoch nur bei ausführbaren Artefakten möglich. Alle anderen Artefakte werden durch statische Testverfahren geprüft.
1.2 Prinzipien der Softwaresicherung
Nenne die 6 Prinzipien
Prozess- und produktabhängige Qualitätszielbestimmung
Prinzip der quantitativen QS
Prinzip der maximal konstruktiven QS
Prinzip der frühzeitigen Fehlerentdeckung und Behebung
Prinzip der entwicklungsbegleitenden, integrierten QS
Prinzip der unabhängigen QS
Was und wann macht man,
warum macht man es,
wie sieht es in der Praxis aus, warum ist es in der Praxis so?
In frühen Phasen des Projektes werden jeweils die konkreten Qualitätsziele bestimmt , die für das Softwareprodukt beziehungsweise für den Softwareprozess relevant sind.
Nur wenn es dokumentierte Qualitätsziele gibt, können diese später von den Architekten und Entwicklern bei der Implementierung gezielt berücksichtigt und adressiert werden.
In der industriellen Praxis findet deses Prinzip häufig nicht statt. Das liegt nicht zuletzt daran, dass die Kompetenzen zur methodischen Ermittlung und Spezifikation von Qualitätszielen auf Basis definierter Qualitätsmodelle häufig fehlen.
Welche Aussagen anhand von was können getroffen werden,
Wie können diese Aussagen getroffen werden
was muss bei der Druchführung für ein Projekt beachtet werden?
Von was ist die Messung abhängig?
Aussagen über die Qualität eines Systems oder Prozesses anhand von Kennzahlen (auch: Metriken) treffen, zu denen es festgelegte Sollwerte gibt.
Die tatsächlich gemessenen Istwerte werden dazu mit den Sollwerten verglichen.
Prakisch, aber keine Standardmetriken, die zu jedem Softwareprozess eingesetzt werden.
Organisationstruktur des Projekts,
dem fachlichen Umfeld
sowie den Anforderungen an das Produkt und an den Softwareprozess.
Prinzip der maximalen konsturktiven QS
Was ist damit gemeint
was tut es
was ist die Annahme?
Beim Qualitätsmanagemensollen alle sinnvollen Maßnahmen ergriffen werden,
die zur Vermeidung von Fehlern beitragen.
hohe Prozessqualität eine hohe Produktqualität erreicht werden kann.
Prinzip der frühzeitigen Fehlerentdeckung und -behebung
was soll gewährleistet werden
Was passiert, wenn ein Fehler zu spät entdeckt wird
wann sollte es stattfinden?
Erkennung von Fehlern VOR der Manifestation im Programmcode
Je später ein Fehler identifiziert wird, desto höher die Kosten und der Aufwand
Mit der Erzeugung der ersten Artefakte
Prinzip der entwicklungsbegleitenden QS
Für welches Prinzip ist es die Konsequenz?
Was muss man tun, um Fehler frühzeitig zu entdecken?
Was erfordert eine konsquente Anwendung und warum?
Von welchem Prozessparadigma wird es prägnant umgesetzt, was ist das und wie wird es umgesetzt?
Prinzip der frühzeitigen Fehlerentdeckung
Aktivitäten der Qualitätssicherung müssen begleitend zu den Entwicklungsaktivitäten erfolgen und dabei fest in den Softwareprozess integriert sein.
Es erfordert eine definierte Qualitätssicherung aller im Softwareprozess erzeugten Artefakte, sodass sichergestellt ist, dass sich Fehler nicht von einer Aktivität in die nächste fortpflanzen.
Besonders prägnant wird dieses Prinzip vom Prozessparadigma evolutionäre Entwicklung umgesetzt.
Hierbei wird die Software in mehreren Iterationen entwickelt, deren Ergebnis jedes Mal auch das Testen der Software umfasst.
So können Fehler rechtzeitig erkannt und deren Fortpflanzung in alle nachfolgenden Iterationen verhindert werden.
Wie soll die Überprüfung erfolgen?
Worin liegt die Gefahr?
Wie ist die Praxis?
objektiv und ohne Abhängigkeiten von individuellen Interessen erfolgen sollte.
Entwicklerteam: mangelnde EIgenverantwortung
QS: mangelnde Sorgfalt
Das Entwicklungsteam ist in der Pflicht, die Qualität seiner Ergebnisse bis zu einem quantitativ festgelegten Maß sicherzustellen.
Die Qualitätssicherung prüft dann alle über dieses Maß hinausgehenden Aspekte.
1.3 Grundsätze des SW-Tests
Nenne sie
Testen zeigt Anwesenheit von Fehlern
Vollständiges Testn nicht möglich
Häufung von Fehlern
Wiederholungen haben keine Wirksamkeit
Test ist abhängig vom Umfeld
Trugschluss: Keine Fehler bedeuten nicht automatisch ein brauchbares System
Testen zeigt die Anwesenheit von Fehlern
Was kann gefunden werden?
Was kann nicht nachgewiesen werden?
Fehler
Fehlerfreiheit
Trugschluss: Keine Fehler bedeuten icht automatisch ein brauchbares System
Auf was basiert Qualität von Software und damit auch die Formulierung von Testfällen?
Was wird nicht getestet und welche Folge hat es?
Spezifikation des Systems
Anforderungen
—> beeinflusst die Nutzbarkeit und die wahrgenommene Systemqualität
Testen ist abhängig vom Umfeld
Zu welchem Prinzip korresponidiert es?
Was wird für jedes System neu bestimmt?
Auf welcher Grundlage werden sie bestimmt?
Um was handelt es sich bei automat. SW-Tests?
Prinzip der produkt- und prozessabhängigen Qualitätssicherung
Anzahl und Art der Testfälle
Grundlage der Anforderungen an das System, den Randbedingungen des Projektes und den formulierten Qualitätszielen
Softwareprojekt im Softwareprojekt
Vollständiges Testen ist nicht möglich
Warum ist das vollständige Testen nicht möglich?
Was sind tatsächlich durchgeführten Tests?
Menge der möglichen Eingabewerte und Systemzustände bei industrieller Software so groß, dass ein vollständiger Test entweder technisch gar nicht möglich ist oder in der praktischen Durchführung viele Ressourcen erfordern würde
Stichproben
Wie sind sie verteilt?
Wie nennt man dieses Phänomen?
Was ist die Konsequenz beim Testen?
Konzentration auf wenige Bereiche. Dort wiederum im Umfeld
Phänomen der Fehlerhäufung
Sorgfältiges Testen im Umfeld, mit mehr als geplanten Tests
Wann machen Testwiederhlungen keinen Sinn?
Mehrfaches Ausführen des gleichen Tests unter identischen Bedingungen
1.4 Kosten von Qualität
Was dient zur Abwägung der Kosten?
Qualitätskostenmodell nach Grechenig orientiert
Qualitätskostenmodell
Erläutere
Herstellungskosten
Qualitätskosten
Fehlervermeidung
Fehlerbehebung
interne Kosten
externe Kosten
Kosten , die zur Herstellung der gewünschten Funktionen und der gewünschten Qualitätseigenschaften aufgewendet werden.
Qualitätskosten umfassen die Aufwände, die für die Fehlervermeidung, -erkennung, -lokalisierung und -behebung aufgebracht werden.
Aktivitäten, die innerhalb des Softwareprozesses vor der Auslieferung stattfinden.
Kosten für die Fehlerbehebung nach Auslieferung des Systems.
Lokalisierung und Behebung von Fehlern: Aufwände für Softwaretests, die nach Anpassungen am Quellcode durchgeführt werden müssen.
Vertragsstrafen, Vertrauens- und Imageverlust
Kostenoptimale Qualität
Wie werden Ressourcen für die Fehlervermeidung verteilt?
Wirtschaftliche Gesichtspunkte
Wie wird die kostenoptimale Qualität bestimmt?
Was für ein System ist anzustreben?
Wie sollten die Kosten sein? Und was sollte dabei miteinkalkuliert werden?
Kosten Fehlervermeidung = Kosten Fehlerbehebung
—> Risikoanalyse und Folgekosten
Last changed7 days ago