Qualitätssicherung & Testen: Allgemein
Welche Formen von Tests?
Statische Tests auch während der Entwicklung, Dynamisch erst danach
für statische: Ein Compiler ist ein Werkzeug zur statischen Analyse und konvertiert den Programmcode zur schnelleren Ausführung in Maschinen-Code bzw. Byte-Code, so dass Programme dann schon ausführbar sind.
Ziel der statischen Analyse ist die Aufdeckung von Fehlern oder Abweichungen im Quell-Code sowie die Einhaltung von Konventionen und Standards.
UR-Anomalie: Die Variable z wird referenziert ohne vorher definiert zu werden.
DD-Anomalie: Die Variable y wird zweimal definiert ohne dazwischen referenziert zu werden.
DU-Anomalie: Die Variable x wird übergeben und damit definiert, aber nicht verwendet.
Bei UR kann das Programm nicht ausgeführt werden, bei DD und DU gehts trotzdem.
V-Modell
Was ist das V-Modell?
Der Entwicklungsprozess ist in Phasen organisiert
Den spezifizierenden Phasen stehen jeweils testende Phasen gegenüber
Gegenüberstellung soll zu einer möglichst hohen Testabdeckung führen
Dadurch permanente Qualitätssicherung schon während der Entwicklung und nicht erst am Ende, je später ein Fehler entdeckt wird desto höher die Kosten
Kundenwünsche = Anforderungen
Qualitätssicherung (Tests) arbeitet zeitgleich zur Entwicklung
Früher Wasserfallmodell, wo Tests erst gestellt werden, wenn SW fertig
Wie ist das V-Modell aufgebaut? (Bild)
Verifikation:
Überprüfung der Übereinstimmung zw. Produkt und seinen Anforderungen
Wird das Produkt entsprechend seiner Vorgaben entwickelt?
Validierung:
Eignung des Produktes bezogen auf Einsatzzweck
Wird ein passendes Produkt entwickelt?
Welche Arten im Integrationstest gibt es?
Arten:
Die Teststrategie „Top-Down“ beginnt mit dem Test auf oberster Ebene und setzt den Test bis zu den Basiskomponenten fort. Braucht Platzhalter.
Die Teststrategie „Bottom-Up“ beginnt mit dem Test der Basis-Komponenten und fasst diese im weiteren Test zu neuen Komponenten zusammen. Braucht Testtreiber.
Nicht-Funktionale Tests
Was sind das?
Durch nichtfunktionales Testen werden alle Anforderungen getestet, die nicht direkt mit der geforderten Funktionalität zu tun haben:
Zuverlässigkeit
Benutzbarkeit
Effizienz
Änderbarkeit
Übertragbarkeit
Reifegrad-Modell: Allgemein
Reifegradstufen?
dienen der Orientierung
beschreiben die Verbesserung der Prozesse
geben Prioritäten für die Reihenfolge der Verbesserungsbereiche
Wofür gibt es Reifegradmodelle?
Wofür?
Bieten „Best Practices“ an
Unternehmen adaptieren die Praktiken, um erfolgreicher zu werden & schrittweise Reifegradstufen zu erreichen
Reifegradmodelle stellen keine Prozessbeschreibung zu Verfügung
Die allgemeinen Praktiken dienen als Grundlage für die Entwicklung von Prozessbeschreibungen
Die Prozesse passen sich den betrieblichen Erfordernissen an
Reifegrad-Modell: Six-Sigma
Grundsätze
Qualität entscheidet - Kundenwünsche und -zufriedenheit sind das Wichtigste
Mängel vermeiden - Keine Auslieferung von Produkten, die den Kundenerwartungen nicht gerecht werden
Prozessreife gewährleisten - Nur bei entsprechender Prozessgüte werden hochwertige Produkte erzeugt
Schwankungen gering halten - Dem Kunden muss eine gleichbleibende Qualität geliefert werden
Arbeitsablauf beständig - Ein konsistenter und vorhersagbarer Prozess garantiert Kundenzufriedenheit mit den Produkten
Was ist das?
Allgemeines Vorgehensmodell zur Prozessverbesserung
Daten & statische Analysen dienen zur Ermittlung von Problemen und Verbesserungsmöglichkeiten
Ziel: fehlerfreie Produkte durch fehlerfreie Prozesse
Begriff leitet sich aus Statistik ab:
Sigma = Standardabweichung einer statistischen Verteilung
Bei 3x Sigma ist der untersuchte Prozess zu 93,3% fehlerfrei !
Bei 6x Sigma ergeben 1 Mio. Fehlermöglichkeiten nur 3,4 Fehler !
Reifegrad-Modelle: CMMI
Was bedeutet das? Grundannahmen und Stufen.
Capability Maturity Modell
Grundannahme: Verbesserung der Prozesse der Softwareerstellung führt zu Verbesserung der Qualität, Planung und Umsetzung
5 Reifegradstufen:
Initial: “Prozesse sind nicht oder nur unzureichend definiert. Die Entwicklung läuft chaotisch und ad hoc ab“
Gemanagt: „Die wesentlichen Prozesse des Managements sind etabliert und werden in den Projekten angewandt, wenn auch in unterschiedlicher Ausprägung.“
Definiert: „Organisationsweite, einheitliche Prozesse sind eingeführt.“ (Kennzahlen)
Quantitativ gemanagt: „Entscheidungen über Verbesserungen werden auf Grundlage von Kennzahlen getroffen. Kennzahlen werden intensiv genutzt.“
Optimierend: „Prozessverbesserungen findet systematisch undkontinuierlich statt. Erfolg und Misserfolg wirdquantitativ belegt.“
Reifegradmodell: Spice
Software Process Improvement and Capability Etermination
Die Bewertung der Prozessattribute erfolgt mit vierstufiger Skala: Nicht erfüllt, Teilweise erfüllt, Weitgehend erfüllt, Erfüllt
Im Assessment muss nachgewiesen werden, dass die Anforderungen auf der entsprechenden Stufe „erfüllt“ werden: Nachweis anhand v. Arbeitsprodukten o. Aussagen
der Prozessausführenden in Interviews
Für jeden untersuchten Prozess werden die Erfüllungsgrade der neun Prozessattribute ermittelt
Aus der Erfüllungsgraden der Prozessattribute ergibt sich der Reifegrad für diesen Prozess:
Level 0: Unvollständig
Level 1: Durchgeführt
Level 2: Gesteuert
Level 3: Etabliert
Level 4: Vorhersagbar
Level 5: Optimierend
Jeder Prozess bekommt eine individuelle Stufe zugeordnet, aus denen sich ein Gesamtprofil ergibt
Das Gesamtprofil zeigt Verbesserungspotenziale an
Die Prozessbeschreibung der nächsten Reifegrades
zeigt die Verbesserung auf
Qualitätssicherung & Testen: Statisch
Das Leben einer Variable
Referenzieren = einen Wert zuweisen
Programmieren
Java-Schleifen Begriffe
Schleifen Rumpf {}
Schleifen Bedingung ()
Annehmende Schleife - Fußgesteuert (Bedingung wird am Ende überprüft)
Abweisende Schleife - Kopfgesteuert (Bedingung wird am Anfang überprüft)
Java-Schleifen
Do-While-Schleife (Fußgesteuert!)
do {} while (Bedingung);
Die Do-While-Schleife führt den Schleifenrumpf (den Code innerhalb der geschweiften Klammern) mindestens einmal aus, und dann wird die Bedingung überprüft.
Wenn die Bedingung wahr ist, wird der Schleifenrumpf erneut ausgeführt, und der Vorgang wird wiederholt.
While Schleife (Kopfgesteuert!)
while (Bedingung {}
Die While-Schleife überprüft zuerst die Bedingung, und wenn diese wahr ist, wird der Schleifenrumpf ausgeführt.
Solange die Bedingung wahr ist, wird der Schleifenrumpf wiederholt ausgeführt.
For Schleife
for (Initalisierung; Bedingung; Fortschaltung) {}
Die For-Schleife ermöglicht eine kompaktere Darstellung von Schleifen, indem die Initialisierung, Bedingung und Fortschaltung in einer einzigen Zeile stehen.
Die Initialisierung wird zuerst einmal ausgeführt. Dann wird die Bedingung überprüft, und wenn sie wahr ist, wird der Schleifenrumpf ausgeführt. Nach jeder Iteration wird die Fortschaltung ausgeführt.
Last changeda year ago