Nenne die zwei Hauptkonzepte (principal methods) zur Qualitätssicherung!
Analytisch: Die Qualität des Produkts prüfen (und korrigieren).
Konstruktiv: Einen Konstruktionsprozess verwenden, der Qualität garantiert.
Warum ist der Zusammenhang zwischen Prozess- und Produktqualität bei Software komplexer als in der traditionellen Fertigung?
Software wird designt (ein kreativer Prozess), nicht gefertigt. Der Einfluss individueller Fähigkeiten und Erfahrung ist signifikant, und externe Faktoren (wie Neuheit oder kommerzieller Druck) beeinflussen die Produktqualität unabhängig vom Prozess.
Kann die Standardisierung von Softwareprozessen negative Auswirkungen haben?
Ja, Prozessstandardisierung kann manchmal die Kreativität unterdrücken, was zu schlechterer statt besserer Softwarequalität führen kann.
Nenne die drei Hauptkategorien analytischer Methoden zur Qualitätssicherung und gib jeweils Beispiele.
Nenne Beispiele für konstruktive Methoden zur Qualitätssicherung.
Gutes Arbeiten (gute Methoden, Tools, Vorgehen, Personen) und Automation (z.B. Modellierung und Transformation, Modellierung und Generierung, formale Definition und Generierung).
Welche Teile einer Organisation oder welche Rollen können für das Qualitätsmanagement verantwortlich sein?
Die Organisation selbst, Management, Finanzplanung, Risikomanagement-Team, Entwicklungsteams, Entwickler, QM-Team, Testteams, externe Tester, Käufer, Portfolio Owner, Product Owner, Component Owner oder individuelle Entwickler.
Welche prinzipiellen Arten von Rollen/Aufgaben gibt es im Qualitätsmanagement?
Was ist die Herausforderung bei der Messung der Korrektheit von Software?
Während die Korrektheit eines einzelnen Ergebnisses oft leicht zu messen ist, ist es nicht einfach oder nicht möglich, alle potenziellen Ergebnisse zu testen.
Ist eine hohe Anzahl gefundener und gefixter Bugs ein gutes Qualitätsmaß?
Nicht eindeutig. Es kann bedeuten, dass das Programm extrem fehlerhaft ist, oder dass die Bugs sehr schnell reduziert werden.
Was sind Herausforderungen bei der Messung nicht-funktionaler Eigenschaften wie der Antwortzeit eines Web-Service?
Es ist schwierig, sie für alle möglichen Anfragen, unter hoher Last, über ein unkontrolliertes Netzwerk oder bei Einbeziehung eines vom Client verwalteten Browsers zu messen.
Warum ist die Interpretation von (Code-)Komplexitätsmetriken schwierig?
Ein komplexes Programm ist nicht zwangsläufig von niedriger Qualität. Die Komplexität könnte durch das reale Problem oder durch hochwertige Fehlerbehandlung bedingt sein. Sie sollten nicht die einzige Messgröße sein.
Was ist das übergeordnete Ziel der Qualitätssicherung?
Das Ziel ist ein Produkt, das seinen Zweck (purpose) erfüllt.
Wovon wird definiert, was ‘gute Qualität’ bedeutet?
Vom Zweck (purpose) des Produkts, der den Kontext definiert. Relevante Fragen sind z.B. Nutzungsdauer, Priorität (Time-to-Market, Features oder Qualität), Budget, Benutzer oder ob es ein Prototyp ist.
Was bedeutet ‘innere Qualität’ (inner quality) von Software?
Sie bedeutet z.B.: Verwendung korrekter Sprache und Tools, elegante Struktur, Architektur, Code und Dokumentation, Einhaltung von Standards und dass Code leicht zu lesen und zu verstehen ist.
Nenne Vorteile einer hohen inneren Qualität von Software.
Wartbarkeit, Wiederverwendbarkeit, Lernen von weniger erfahrenen Teammitgliedern, geringere Komplexität, Robustheit und Korrektheit.
Was kann die Basis oder das Ziel (base/target) für Qualitätsmanagement oder Tests sein?
Die Zufriedenheit der Entwickler, die Anforderungen (requirements), das Feedback des Käufers oder die Unterstützung des Geschäftsmodells.
Was sind Vor- und Nachteile von Anforderungen (Requirements) als Basis für Tests?
Vorteile: Sie sollten messbar und sind die ideale Basis für Tests. Nachteile: Sie können informell sein, falsch sein (z.B. durch Misskommunikation) oder veraltet sein (z.B. eine 5 Jahre alte Anforderung).
Welchen Fokus setzt das Qualitätsmanagement, wenn das Geschäftsmodell (Business Model) das Ziel ist?
Fokus auf kurze Time-to-Market, Dinge später reparieren, Nutzerfeedback zur Verbesserung nutzen und nur das reparieren, womit man Geld verdient.
Was ist eine ‘Trade-off decision’ (Zielkonflikt)?
Man muss sich zwischen mehreren Optionen entscheiden und kann nicht alle haben. Man hat eine Ressource (z.B. Geld, Zeit) und mehrere Optionen, diese zu nutzen.
Erkläre das ‘Teufelsquadrat’ (Devils-Square) nach Sneed.
Es beschreibt den Trade-off zwischen Qualität, Quantität (Funktionalität), Dauer und Kosten. Um z.B. Kosten und Dauer zu senken, muss man Qualität und/oder Funktionalität senken. Um die Qualität zu steigern, muss man die Funktionalität senken oder Dauer/Kosten erhöhen.
Was ist das Hauptproblem bei der Projektplanung zu Beginn?
Das Problem des fehlenden Wissens (missing knowledge). Man kennt zu Beginn nicht alle Probleme und Herausforderungen, die bis zur Lösung auftreten werden.
Wie gehen unterschiedliche Vorgehensmodelle mit dem ‘Problem des fehlenden Wissens’ bei der Planung um?
Konzepte wie das V-Modell gehen davon aus, dass man das komplette Projekt planen kann. Scrum und andere Ansätze gehen Schritt für Schritt vor.
Was ist die Hauptidee von ‘Best Practices’?
Wenn eine Methode als funktionierend bekannt ist, sollte dieselbe Methode wiederverwendet werden, wann immer es möglich ist.
Was ist ein ‘Pattern Catalog’ (Musterkatalog)?
Eine Sammlung von Patterns (Mustern). Jedes Pattern ist eine einfach anzupassende Strategie zur Lösung eines definierten, wiederkehrenden Problems.