Sie sind auf Seite 1von 1

Einleitung Qualität„Qualität ist die Gesamtheit von Eigenschaften und Merkmalen eines Produkts oder einer Tätigkeit, die

sich auf deren Eignung zur Erfüllung gegebener Erfordernisse bezieht.“ +Was ist Software-Qualität? - Merkmale einer Software, die
sich auf die Eignung nach festgelegten Anforderungen beziehen. +Warum ist Software-Qualität wichtig?-Kunde soll zufrieden sein - Kunde soll nicht zur Konkurrenz wechseln - Fehlerbekämpfung ist teuer - Fehler sind tödlichStufen der Software-Entwicklung?
1.Anforderungsdefinition 2. Systemspezifikation 3. Entwurf 4. Realisierung 5. Test und Integration +Welche Qualitätsmaßnahmen gibt es? - Administrative (Qualitätsmanagement) - Konstruktive (Entwurfsmuster) - Analytische (Testen) - Psychologische (Grundsätze) +Drei
konstruktive Qualitätsmaßnahmen? Konfigurationsmanagement - Build-Prozess - Test-Driven-Development +Drei analytische Qualitätsmaßnahmen?-Inspektion – Metriken - Test-Driven-Development Qualitätsmanagement Was ist Qualitätspolitik? Die Einstellung
(z.B. Paretoprinzip) und Grundsätze einer Firma zur Softwarequalität. Was ist Qualitätsorganisation? Ein Qualitätsbeauftragter. Was sind Qualitätsmaßnahmen? Konkrete Förderung der Qualität. Was sind Qualitätsaufzeichnungen? Aufzeichnungen von Maßnahmen
und dem entsprechenden Resultat. Drei Grundsätze zur Qualitätspolitik:-Anstrengungen dienen immer einem besseren Produkt - Jeder ist für die Qualität persönlich verantwortlich - Qualitätsbeauftragte sind nur für Qualitätsmaßnahmen zuständig Was sind die
Aufgaben einer Qualitätsorganisation? - Vertragsprüfung - Risikomanagement - Planung und Durchführung von Tests/Reviews - Schulung zur Test-Werkzeugen - Dokumentation und Auswertung von Testergebnissen Was ist ein „Quality Gate“? - Ein Quality Gate ist ein
spezieller Meilenstein in einem Projekt, der formal geprüft wird. - Welche Aufgaben gehören zum Qualitätsmanagement?-Qualitätsplanung - Qualitätslenkung - Qualitätssicherung – Qualitätsverbesserung Was wird bei der Qualitätsplanung gemacht? Festlegung von
überprüfbaren Qualitätsanforderungen für ein Produkt. Was geschieht bei der Qualitätslenkung? Es werden Prinzipien und Methoden vorgegeben, um Mängel präventiv zu vermeiden. Was tut die Qualitätssicherung? Die QS stellt fest, ob die Planung und das
Konstruieren von Qualität erfolgreich waren. Wo ist der Unterschied von QM und QS? - QM = Leitende Aktivitäten (Management) - QS = Technische Aktivitäten (Sicherstellung)Ist die Qualitätslenkung konstruktiv oder analytisch? Konstruktiv (trägt zur Qualität bei) Ist
die Qualitätssicherung konstruktiv oder analytisch? Analytisch (misst Qualität) In welchen Schritten erfolgt die Überprüfung von Produktqualität? 1. Modultest (Unit-Test) 2. Integrationstest 3. Systemtest 4. Akzeptanztest (Abnahmetest) Was sind Qualitätsaspekte?
Merkmale/Ziele von Software-Qualität. Was sind Qualitätskriterien? Teile von Qualitätsaspekten. Meistens softwareorientiert. Sechs Qualitätsmerkmale nach ISO 9126? - Funktionalität - Zuverlässigkeit - Benutzbarkeit - Effizienz - Änderbarkeit – Übertragbarkeit Was
sind Metriken? Messbare Indikatoren für Qualitätskriterien. Beispiele für Metriken: - LoC (Lines of Code) - Function Points (Messung der Funktionalität) - Anzahl von Kommentaren - Anzahl von Modulen - Benötigte Arbeitsstunden - Aufgelaufene Kosten Normen und
Modelle Was ist eine Norm? Ein anerkannter und festgelegter Standard. Was ist ein Standard? Eine einheitliche Art und Weise etwas durchzuführen. Was legen Normen fest? - Begriffe - Abläufe – Regeln Was ist ein „Audit“? Die Überprüfung einer Norm (z.B. ISO
9001).Beispiele für Normen: - ISO - ANSI – IEEE Worauf fixiert sich die Validation? Wird das richtige Produkt entwickelt? (bezogen auf den Einsatzzweck) Worauf fixiert sich die Verifikation? Wird ein korrektes Produkt entwickelt? Eigenschaften vom „Xtreme
Programming“-Modell? Qualität vor Funktionsumfang - Kundenzufriedenheit ist das wichtigste Kriterium - Pair-Programming - On-Site-Customer - Test First & Code-Reviews - Kaum Dokumentationen Eigenschaften vom „Cleanroom“-Modell? - Gegenstück zu „Xtreme
Programming“ - Ständige Reviews - Kein Debugging - Keine Tests Analytische Qualitätsmaßnahmen Welche zwei Verfahren gibt es bei den analytischen Qualitätsmaßnahmen? - Analysierende Verfahren (analytische Mittel, keine Ausführung) - Testende Verfahren
(dynamische Ausführung des Programms) Welche analysierenden Verfahren gibt es? - Statische Analyse - Review - Inspektion - Walkthrough – Audit Welche testenden Verfahren gibt es? - Dynamische Tests - Symbolische Tests - Schreibtisch-Tests – Simulationen Was
für Review-Arten gibt es? - Kommentartechnik (Stellungnahme, Pair-Programming) - Sitzungstechnik (Reviews, Walkthroughs, Inspektionen) Was ist ein Walkthrough? Ein abgeschwächtes Review, bei dem Funktionalität anhand von Szenarien durchgespielt werden. Was
ist eine Inspektion? Das „Zeile für Zeile“ durcharbeiten eines Sourcecodes. Ziel ist es, dabei Defekte zu finden und Metriken zu ermitteln. In welchen Schritten läuft eine Inspektion ab? - Inspektion wird beautragt - Moderator wird gewählt - Eingangskriterien werden
geprüft - Moderator plant die Inspektion - Einführungssitzung - Individuelle Vorbereitung und Prüfung - Inspektionssitzung - Überarbeitung - Nachprüfung – Freigabe Welche Rollen gibt es bei einer Inspektion? - Moderator - Autor (Programmierer) - Leser - Inspektoren –
Protokollführer Was ist Effizienz? Ein Maß für die Wirtschaftlichkeit eines Prüfverfahrens. Was ist Effektivität? Ein Maß für die Leistungsfähigkeit eines Prüfverfahrens. Konfigurationsmanagement Was sind Konfigurationselemente? - Quelltexte - Dokumente
(Handbücher, etc.) - Build-Skripte - IDEs – Frameworks Was sind keine Konfigurationselemente? - Protokolle von Meetings - Binärdateien - Generierte Dateien – Projektpläne Was ist Konfigurationsmanagement? Die Fähigkeit, die Konfiguration eines Systems zu einem
eindeutigen Zeitpunkt zu bestimmen, um die Konfiguration von Objekten zu kontrollieren und zu pflegen. Was enthält das KM-Handbuch?Aktivitäten und Ressourcen: - Namenskonventionen - Richtlinien zur Codeformatierung - InstallationsanleitungenWas ermöglicht
Versionierung? - Wiederherstellen von alten Ständen einer Datei - Wiederherstellen irrtümlich gelöschter Dateien - Parallele Arbeiten an zwei unterschiedlichen Dateien - Welche zwei Arten von Deltas gibt es bei einer Versionskontrolle? - Vorwärtsdeltas –
Rückwärtsdeltas Was ist ein Release? Ein Produkt, das an den Endanwender ausgeliefert wird. Welche Arten von Releases gibt es? - Hauptrelease - Wartungsrelease – Patches Was ist ein Tag in einem Repository? Ein Tag markiert die zu einem bestimmten Zeitpunkt
gültige Version aller Dateien im Repository mit einer frei wählbaren Bezeichnung. Was ist eine Baseline? Die Kennzeichnung eines wirklich bedeutenden Ergebnisses (z.B. Tag, Release). Was ist ein Branch? Ein Entwicklungszweig. Was ist ein Trunk? Der
Hauptentwicklungspfad. Metriken Was sind Software-Metriken? Metriken sind Messmethoden für Software. Das Ergebnis dieser Messmethoden ist meistens eine Zahl. Bsp. 307 Lines of Code. Wofür können Metriken eingesetzt werden? - Um die Qualität nach
erwarteten Standards zu bestimmen - Um die Qualität anhand der Ergebnisse zu verbessern Welche Eigenschaften sollte eine Metrik haben? - Einfachheit (wenig Interpretationsaufwand!) - Eignung (hilft der gemessene Wert?) - Stabilität (Messwert stabil gegen
Manipulation?) - Rechtzeitigkeit (Messwert früh möglich?) - Analysierbarkeit (Sind die Messwerte vergleichbar?) – Reproduzierbarkeit Was ist ein Qualitätsmaß? Eine Skala, an der die Werte von Metriken bestimmt werden. Welche praktischen Skalen von Metriken gibt
es? - Nominalskala (Messwerte werden durch Namen unterschieden) - Ordinalskala (Stufe 2 ist besser als Stufe 1) - Intervallskala (mit Summen, Durschnitten, Differenzen, …) - Rationalskala (Prozentuale Aussagen, Lässt Vergleiche zu) - Absolutskala (Zählen,
Wahrscheinlichkeiten, Häufigkeiten) Was ist NLOC? Netto-LOC: LOC – Leerzeilen und Kommentare Nachteile bei LOC? - Gesamtgültigkeit fehlt (LOC beschränkt sich nur auf Code) - Komplexität wird nicht betrachtet (komplexer Code braucht viele LOC) - Unterschiedliche
Sprachen (LOC(Ruby) ungleich LOC(Phyton)) - Unterschiedliche Zählstandards Wie kann man den LOC unterschiedlicher Programmiersprachen normieren? Mit einem Assembler-Äquivalent. Was ist das Function-Point-Verfahren? Eine Software-Metrik zur Bestimmung
des Umfangs eines IT-Projektes. In welche Kategorien wird bei der Function-Point-Methode eingeordnet?- Eingabedaten - Ausgabedaten - Datenbestände (intern, zusammenhängend) - Referenzdaten (extern, referenziert) – Abfragen Wie läuft das Function-Point-
Verfahren ab? - Kategorisierung der Anforderungen - Klassifizierung der Anforderungen (einfach, mittel, komplex) - Eintrag in das Berechnungsformular - Bewertung der Einfluss-Faktoren - Berechnung der bewerteten FPs - Ablesen des Aufwandes - Neuberechnung der
Aufwandskurve Vorteil der Function-Point-Methode? - Früher Einsatz möglich (schon nach dem Lastenheft einsetzbar) - Gesamtprodukt steht im Blickfeld - Geringer Zeitaufwand - Leicht erlernbar - Anpassbar (neue Kriterien möglich) Nachteile der Function-Point-
Methode?-Nur Gesamtaufwand schätzbar - Zu stark funktionsbezogen - Zu personalintensiv - Qualitätsanforderungen werden nicht berücksichtigt - Mischung von Projekt- und Produkteigenschaften Worin unterscheiden sich traditionelle und agile Software
Entwicklungsmethoden?Was tut die Zyklomatische Komplexität? Es misst die Anzahl der unabhängigen Pfade durch den Sourcecode. Was sind die Eigenschaften der Halstead Maße? - Komplexität, Umfang und Aufwand als Maße - Maße werden aufgrund von
Sourcecode berechnet - Maße sind nicht unmittelbar nachvollziehbar - Heutzutage kaum noch anwendbar Was beschreibt die Kopplung? Die Kopplung beschreibt, wie sehr zwei Komponenten voneinander abhängen.Was beschreibt die Kohäsion? Die Kohäsion
beschreibt, wie sehr zwei Funktionen einer Komponente voneinander abhängen. Was bedeutet „WMC“? Weighted Methods per Class – Gewichtete Methoden pro Klasse Was bedeutet „DIT“?Depth of the Inheritance Tree – Gibt die Vererbungstiefe einer Klasse an Was
bedeutet „NOC“? Number of Children – Anzahl der direkten Unterklassen einer Klasse Was bedeutet „CBO“? Coupling Between Objects – Anzahl der durch Methoden gekoppelten externen Klassen Was bedeutet „RFC“? Response for a Class – Wie viele Methoden
stehen bereit, wenn eine Nachricht an eine Klasse geschickt wird Was bedeutet „LCOM“? Lack of Cohesion in Methods – Anzahl von Methoden mit gemeinsamen Instanzvariablen MINUS Anzahl von Methoden ohne gemeinsame Instanzvariablen Wie funktioniert das

Goal-Question-Metrik-Modell (GQM)? - Ziele erheben - Ziele nach Facetten klassifizieren - Fragen aus den Zielen ableiten - Metriken zuordnen Welche Prozess-Metriken sind bekannt? - COCOMO II mit KLOC – CMMI
Welche Produkt-Metriken sind bekannt? - Zyklomatische Komplexität - Halstead-Maße Welche Objektorientierte-Metriken sind bekannt? - WMC - DIT - NOC - CBO - RFC – LCOM
Einführung Welche zwei Arten von Software-Qualität gibt es? Funktionale Qualität - Strukturelle Qualität - Was gehört zur funktionalen Qualität?Die Gewährleistung der funktionalen Anforderungen. Typische funktionale Anforderungen? - Funktionalität (korrekte
Ergebnisse, …) - Zuverlässigkeit (Verfügbarkeit, …) - Fehlertoleranz (Exception-Handling, …) - Datensicherheit - Weitere Anforderungen (Zielsystem, …) Was gehört zur strukturellen Qualität? - Projektorganisation - Lifecycle-Management - Flexibilität der Software (für
Weiterentwicklung) - Was sind „Stakeholder“? - Alle Anspruchsberechtigten an einem Software-Projekt (z.B. Kunden, Auftraggeber, Projektleiter, …). Was ist „Requirements Engineering“?Die Technik der Anforderungsdefinition und Anforderungsverwaltung. Wie kann
man sicherstellen, dass die Requirements erfüllt werden? - Anforderungen müssen konkretisiert werden - Anforderungen müssen verstanden werden - Auftraggeber muss die Möglichkeit haben, zu überprüfen (Testzugänge, Prototypen, Kontakt) - Fehler in der
Entwicklung müssen frühzeitig erkennbar sein Typische Betriebs-Anforderungen? - Änderungsfähigkeit - Wartbarkeit – Dokumentation Typische nichtfunktionale Anforderungen? - Performance (Geschwindigkeit, …) - Skalierbarkeit - Benutzbarkeit – Sicherheit Was
meint „Keep it dry“? DRY = Don’t repeat yourself: - Programmlogik nur an einer Stelle im System - Hohe Wiederverwendbarkeit - Generalisierung / Abstrahierung - Statische Methoden – Factories Was meint „Keep it shy“? - Code schreiben ohne viele Referenzen - Details
(Benutzernamen, …) nicht im Code lagern Was meint „tell the other guy“? - Nicht in Funktionsaufrufen denken - Nicht an Rückgabeparameter denken - Einfach sagen „Mach es“ soll zur Erledigung führen - Keine Codedetails nötig Was meint „Don’t live with broken
Windows“? - Bei schlechtem Code nicht wegschauen, sondern sofort fixen! Analytische Qualitätssicherung durch Tests Welche Testverfahren gibt es?-Dynamische Testverfahren (Ausführen und Verifizieren) - Statische Testverfahren (Automatische Codeanalyse) -
Statische Codeanalyse (Manuelle Codeanalyse, Pair-Prog.) Beispiele für dynamische Testverfahren? - Blackbox-Test (Schnittstellen-Test, Überprüfung von Eingabe/Ausgabe) - Whitebox-Test (Inneres ist bekannt, Ziel der Tests ist hohe Code-Coverage)Mit welchen
Testdaten testet man bei einem Blackbox-Test? - Kontrolldaten (Richtige sowie Falsche) - Grenzwerten (Maximum und Minimum) Was sind typische funktionale Äquivalenzklassen? - Ganzzahlen (Integer) - Fließkommazahlen (Double) - JPEG-Bilder Wie sieht ein
typischer Testzyklus während eines Entwicklungsprozesses aus? - Unittests (Entwickler, IDE) - Systemtests (QA-Abteilung, Buildserver) - Akzeptanztests (Kunde, Produktivsystem) - Performance –und Lasttest (während 2. und 3.) Welche funktionalen Testverfahren gibt
es? - Unit-Testing (Isolations-Test) - Regressionstest (Ausführung aller Unit-Tests) Wozu führt man einen Integrationstest durch? Um zu schauen, ob sich die Software auf dem Zielsystem integrieren lässt? Mit Hilfe welcher Tests kann ein Integrationstest durchgeführt
werden? - Unitttest - Systemtest - Akzeptanztest - Manuelle Tests Wozu wird ein Systemtest durchgeführt? Um zu schauen, ob das Gesamtsystem funktioniert. An welcher Stelle wird bei einem Systemtest getestet? An den Schnittstellen des Systems. Wird ein Fehler
gefunden, so muss eine umfangreiche Fehleranalyse betrieben werden, weil der Fehler quasi von überall aus dem System kommen kann. Mit Hilfe welcher Tests kann ein Systemtest durchgeführt werden? - Blackbox-TestWelche Tests benutzt man, um nichtfunktionale
Anforderungen zu testen? Akzeptant-Tests. Quiz Wie misst man Software-Qualität? Mit Metriken. Was bedeutet „Crash Early“? Bei einem Fehler lieber kontrolliert abbrechen als in einem unkontrolliertem Zustand (mit verfälschten Daten) weiterzuarbeiten. Was
bedeutet „Find Bugs Once“?Wenn ein Fehler gefunden wird, schreibe einen Test dafür, damit der Fehler in Zukunft automatisiert durch den Test gefunden wird. Was bedeutet „KISS“? KISS: Keep it simple, stupid. Es besagt, dass die Lösung eines Problems so einfach und
minimalistisch wie möglich sein sollte. Was ist „Tracer Code“ (Leuchtspur Munition)? Ein Code „Skeleton“, das nicht fertig ist aber durchaus aufzeigt, was noch implementiert werden muss. Im Gegensatz zu einem Prototyp wird dieser Code nicht weggeworfen. Was
macht man mit auskommentierten Code? Wegwerfen! Entwicklertests Welche Entwicklertests gibt es? - Probieren (teuer, fehleranfällig, zeitintensiv) - Push-Button-Test („Run“ in NetBeans) - Automatisierte Tests (JUnit mit Integrationsserver) Was soll ein Unit-Test
nicht enthalten? - Datenbankzugriffe - Aufruf von anderen Klassen - Netzwerk-Dienste Was bringen uns Unit-Tests? - Sicherung der vorhandenen Funktionalität - Bessere Modularisierung (man denkt in Units) - Spezifikation von Programmteilen Was tut man beim
Refactoring? Anpassen des Codes und Ergänzen von fehlenden Testfällen. Wie testet man Getter und Setter? Getter und Setter werden nicht getestet. Organisation von Projekten Was sind Artefakte? Binärdateien (*.exe und *.jar) oder automatisch generierte Dateien
(JavDoc, Test-Reports, …). Gehören Artefakte in ein Repository? Nein. Was bedeutet „Convention over Configuration“ (CoC)? Man muss nur Spezialfälle konfigurieren. Alles andere ist bereits vorkonfiguriert, so dass man sofort loslegen kann.Was speichert ein
Versionskontrollsystem ab? - Deltas (Änderungen) von Sourcecode - Kopieren von BinärdateienWas verhindert der „Lock“-Modus in einem Repository? Das mehrere Personen an einer Datei gleichzeitig arbeiten.Was ist ein verteiltes Versionskontrollsystem? Ein VCS,
bei dem jeder Mitarbeiter eine lokale Kopie des VCS besitzt. Was tut „git status“? Dieser Befehl zeigt die noch nicht im Repository befindlichen Dateien an. Was tut „git log“? Zeigt eine Liste der letzten Commits an. Was tut „git checkout“? Holt Informationen über die
Änderungen des gewünschten Branchs.Was tut „git pull“? Lädt die Änderungen des gewünschten Branchs herunter. Was tut „git commit“?Vermerkt eine Änderung im eigenen Repository. Was tut „git push“? Lädt die Änderungen aus dem eigenen Repository auf das
Server-Repository hoch. Organisation von Testfällen Was ist eine Testsuite? Die Zusammenfassung von mehreren Unit-Tests. Zu welcher Art von Tests gehört eine Testsuite? Zu den Regressions –und Intregrationstests. Was ist Apache Ant? Ant ist das beliebteste
BuildScripting-Framework in Java. Was ist Ivy? Eine Konkurrenz zu Maven, welche Dependency Management in Apache Ant ermöglicht. Was macht „Code Coverage“?Code Coverage zeichnet auf, welcher Code ausgeführt wird und dient dazu, nicht mehr genutzten Code
zu identifizieren.Welche „Code Coverage Tools“ sind bekannt? - Cobertura - Emma – Clover Scrum Was ist Scrum? Ein agiles Vorgehensmodell für Projektmanagement. Was soll durch Scrum erreicht werden? - Kurze, effektive Meetings - Selbstorganisation von
Entwicklerteams - Spezialisten gegen Allrounder ersetzen Was ist ein „Sprint“? Ein Zeitraum (1-4 Wochen), indem bestimmte Produktziele umgesetzt/programmiert werden. Was ist eine „Story“? Eine Aufgabe, die Mehrwert für den Endbenutzer bringt. Was ist ein
„Task“? Ein Teil einer Story, welcher sehr konkret ist und eher die Umsetzung beschreibt als das Ziel (Story). Was erfolgt nach einem Sprint? Ein Release oder Deployment. Was sind „Scrum-Points“? Eine Aufwandseinschätzung (als Zahl dargestellt). Was ist ein
„Customer“?Der Kunde. Vom Kunden kommen Anforderungen und Stories. Was ist ein „Product Owner“? Derjenige, welcher den Wirtschaftswert kennt und die Interessen der Stakeholder vertritt. Was ist ein „Scrum Master“? Der Moderator der Scrum-Meetings. Der
Scrum-Master hält dem Entwicklerteam den Rücken frei und sorgt für Wirtschaftlichkeit (keine goldenen Henkel). Was ist ein „Team“? Zusammenschluss von Entwickeln (ungefähr 7 Leute). Was ist ein „Chicken“?Diejenigen, für welche die Software gebaut wird
(Stakeholder, Manager). Wer sind die „Pigs“? Diejenigen, welche die Software bauen (Scrum Master, Team, Product Owner). Was bedeutet „ROI“? Return of Investment. Das Geld, was nach den Investitionen bei der Entwicklung rumkommt. Was ist das „Product
Backlog“? Eine grobe Liste (mit Aufwandseinschätzung und „Business Value“) aller Funktionalitäten, die das Produkt haben soll. Was ist das „Sprint Backlog“? Eine Liste mit allen Aufgaben, die innerhalb des nächsten Sprints umgesetzt werden sollen. Was ist eine „User
Story“? Eine Erklärung, warum jemand was macht. Wofür können „User Stories“ verwendet werden?Als Ansatzpunkt für Akzeptanztests. Was wird beim „Estimationmeeting“ getan? Beim Estimationmeeting geben die Entwickler (Teams) eine Aufwandseinschätzung für
die Einträge aus dem Backlog an. Wie funktioniert „The River“?Alle Scrum-Karten werden auf den Tisch gelegt und die Stories werden dann auf die Karten gelegt und solange umher geschoben, bis alle sich einig sind. Was tut man beim „Commitment“? Beim
Commitment legt das Team fest, welche Stories 100%ig bis zum Sprintende realisiert werden. Wie läuft das „Planungsmeeting“ ab? - Zu entwickelnde Features werden vorgestellt - Stories, die noch nicht beschrieben wurden, werden das - Aufwand wird geschätzt (für
alle Stories und Tasks) - Scrum-Poker – Commitment Zyklus der Story-Organisation? - Icebox (alle frischen Stories und Ideen) - Backlog (Stories sortiert nach Aufwand) - Current Sprint (Sortierte und bewertete Stories) Was gehört zur „Analyse“-Phase eines
Planungsmeetings? - Festlegung aller Requirements - Definition von Akzeptanztests - Storys klar machen - CommitmentWas gehört zur „Design“-Phase eines Planungsmeetings? - Festlegung der Programmiersprache - Entscheidung für Frameworks - Erstellung von
Vorstellungen (UML, Scribbles, …) Was ist ein „Daily Scrum“? Ein kurzes, tägliches Standup Meeting, wo jeder sagt, woran er arbeitet Continuous Integration Was ist Continuous Integration? Ein Prozess in der Software-Entwicklung, der regelmäßiges (mind. täglich),
vollständiges Neubilden und Testen einer Anwendung beschreibt. Der automatisierte Bau verifiziert die Integration. Was ist die Voraussetzung für „Continuous Integration“? Ein zentrales Repository, zu dem alle Projektmitarbeiter Zugang haben. Wann tritt „lokale
Integration“ auf? Wenn Code lokal zusammengeführt wird. Wann tritt „zentralisierte Integration“ auf? Wenn Code im externen Repository eingechekt wird.Beispiele für Continuous Integration-Systeme? - Hudson - Cruise Control Was ist eine Alternative für ein CI-
System?Ein Scheduler (z.B. Cronjob). Welche Eigenschaften hat ein CRISP Build? - Complete - Repeatable - Informative - Schedulable – Portable Advanced Unit-Tests Welche Kriterien muss ein Test erfüllen? - Isolation (nicht „kommunizierend“) – Wiederholbar Was sind
„Fixtures“? Testdaten Wofür steht die Abkürzung „CUT“? Class Under TestWas sind „Stubs“? Einfache Objekte, die Attrappen für das Produktivsystem sind und sich so verhalten, wie man es von ihnen erwartet. Stub (engl.) = Stummel. Wofür steht die Abkürzung „IoC“?
Inversion of Control (Dependency Injection)Was macht „Dependency Injection“ (IoC)? DI injiziert ein Objekt. So muss davon keine Instanz gebildet werden.Eigenschaften von Stubs? - Lassen sich nur einsetzen, wenn die Implementierung zur Laufzeit austauschbar ist -
Dienen als Platzhalter für noch nicht implementiere Funktionalitäten - Komplexe Stubs kosten Zeit / Performance - Komplexe Stubs müsste man wieder testen Soll man bei Integrationstests Mock-Objekte verwenden? Nein, weil Integrationstests das gesamte System
(auch das Zusammenspiel) testen sollen. Daher sind Mock-Objekte nur für Unit-Tests (Isolationstests) geeignet. Was ist ein Mock? Eine Attrappe, die ein Verhalten vortäuscht (engl. mock = vortäuschen). Unterschied von Mock und Stub? Ein Mock-Objekt stellt ein
Verhalten nach und überprüft, ob Aufrufe in der richtigen Reihenfolge ausgeführt werden. Mock-Objekte können im Gegensatz zu Stubs die Zusammenarbeit zwischen Objekten überprüfen. Mocks implementieren keine Logik. Mocks liefern keine Echtdaten zurück. Wann
sollten Mocks eingesetzt werden?Wenn das reale Objekt, … - immer einen anderen Wert liefert (z.B. Uhrzeit) - ein komplexes Setup hat (z.B. Netzwerkfehler) - langsam ist - noch entwickelt werden muss Wie ermöglicht man den Einsatz von Mocks? - Verwenden von
Interfaces, die ein Objekt beschreiben - Implementieren des Interfaces im Produktionscode - Implementieren des Interfaces im Test-Code durch einen Mock Was kann „EasyMock“ nicht? - Klassen mocken (nur Interfaces sind möglich) - Keine static, private oder final
Methode benutzen (nur package) Test Driven Development Was ist „Test Driven Development“? Eine Methode für die Software-Entwicklung, bei der zuerst der Test geschrieben wird und dann der Code. Wie läuft TDD ab? - Test schreiben - Test ausführen und neuen
Fehler entdecken - Code schreiben, um den Fehler zu beheben - Test nochmal ausführen, zum sicherstellen - Refactoring betreiben

Das könnte Ihnen auch gefallen