software-qualitÄtssicherung kapitel 6 und...

136
Software Engineering Prof. Dr. Wolfgang Schramm SOFTWARE-QUALITÄTSSICHERUNG UND -PRÜFUNG Kapitel 6

Upload: others

Post on 09-Sep-2019

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

SoftwareEngineering

Prof.Dr.WolfgangSchramm

SOFTWARE-QUALITÄTSSICHERUNGUND-PRÜFUNG

Kapitel6

Page 2: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

1

Übersicht

1. EinführungindasSoftwareEngineering

2. Softwareprozesse3. Anforderungsanalyseund-

Spezifikation4. Softwareentwurf5. Programmierung6. Software-Qualitätssicherungund-

Prüfung7. Konfigurationsverwaltung8. Software-Wartung

Page 3: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

2

Kapitelübersicht

1. Einführung/Definition2. Begriffe3. DynamischeVerfahren– Testen4. StatischeVerfahren

Page 4: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

3

LernzieledesKapitels

¨ BedeutungSoftware-Qualitätverstehen.

¨ KennenlernenderAufgabenderTestens.

¨ VerschiedeneTeststrategienkennen- undeinschätzenlernen.

¨ DenTest-Prozesskennenlernen.¨ StatischeQS-Verfahren

kennenlernen.

Page 5: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

4

Kapitelübersicht

1. Einführung/Definition2. Begriffe3. DynamischeVerfahren- Testen

§ Teststrategien§ VorgehenbeimTesten§ Testautomatisierung

4. StatischeVerfahren

Page 6: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

5

Murphy'sLaw

o WennirgendeinTeileinerMaschinefalscheingebautwerdenkann,sowirdsichimmerjemandfinden,derdasauchtut

o NachdemAuseinander- undZusammenbaueneinerVorrichtungbleibenimmereinigeTeileübrig

o BeieinerbeliebigenBerechnungwirddieZahl,derenRichtigkeitfüralleoffensichtlichist,zurFehlerquelle

Page 7: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

6

Ariane5

o Europa's ganzerStolz:SuperraketeAriane5

o Entwicklungskosten in10Jahren:6024Mill.€!

o Jungfernflug am04.06.96Gewicht:740t,Nutzlast:7- 18tmit 4Cluster-Satelliten

Page 8: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

7

Nach37Sekunden...

o 30Sekunden nach demLiftofferreichte dieAriane5in3700mFlughöhe eineHorizontal-Geschwindigkeitvon32768.0[interneEinheiten]

o Dieser Wertlagetwafünfmal höher als beiAriane 4.

Page 9: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

8

DieFehlerquelle

declare vertical_veloc_sensor: float;

vertical_veloc_bias: integer;

horizontal_veloc_sensor: float;

horizontal_veloc_bias: integer; ...

begin

declare pragma suppress(numeric_error, horizontal_veloc_bias);

begin

sensor_get(vertical_veloc_sensor);

sensor_get(horizontal_veloc_sensor);

vertical_veloc_bias := integer(vertical_veloc_sensor);

horizontal_veloc_bias := integer(horizontal_veloc_sensor); ...

exception

when numeric_error => calculate_vertical_veloc();

when others => use_irs1(); end; end irs2;

Fehler-überprüfungabgeschaltet!

Page 10: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

9

DieFolgen

o AbsturzdesBordcomputers36,7SekundennachdemStart.Grund:¤ VersuchderUmwandlungeiner64BitGleitpunktzahlinein16-Bit

vorzeichenbehaftetesGanzzahl-Format.¤ DieentsprechendeZahlwargrößerals215 =32768...¤ ...underzeugtesoeinenOverflow.

o ZusammenbruchdesLenksystems,derFlugwurdeinstabilunddieTriebwerkedrohtenabzubrechen.

è Selbstzerstörung...

Page 11: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

10

DieHintergründe

o DieSoftwarestammtevonderAriane4...o ...nurflogdieAriane5wesentlichschneller.o DieSoftwarewarfürdenFlugüberflüsssig,nurwichtigfür

einenevtl.RestartbeiCountdownabbruch.o EinBackUp-RechnerverwendetediegleicheSoftwareund

warSekundenvorherabgestürzt!

o DiePrüfungderZahlumwandlungwarbewusstabgeschaltet!Niemandahnte,dassdiehorizontaleGeschwindigkeitsogroßwerdenkönnte.

Page 12: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

11

DerSchaden

o 128Mill.€Startkosten434Mill.€Cluster-Satelliten306Mill.€für nachfolgende Verbesserungen

o Verdienstausfall für 2bis 3Jahre.

o Dernächste Testflug konnte erst 17Monate späterdurchgeführt werden – 1.Stufe beendete vorzeitig dasFeuern.

o Dererste kommerzielle Flug fand im Dezember 1999statt.

Page 13: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

12 Wie stellen wir fest, ob es in der Software

einen Fehler gibt?

Wir prüfen, dass sie immer genau das

richtige tut.

Page 14: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

13

Diskussion:Test-Ziele

¨ DiskutierenSiemiteinemPartner¤ WasistTesten?¤ WaskanndurchTestenerreicht

werden?¤ WaskanndurchTestennicht

erreichtwerden?

¨ Dauer:3Minuten

• MöglichstvieleFehlerfinden.

• AusfehlerfreierAusführungmitTestdatenstatistischauffehlerfreieAusführungmitrealenDatenimEinsatzschließen.

Page 15: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

14

ZweiDingemüssendazuerfülltsein

1. DieEigenschaftendesProgrammssinddurchdieSpezifikationeindeutigfestgelegt.

2. DieEigenschaftenlassensichdurchPrüfungeindeutigundvollständigfeststellen.

Anforderungs-spezifikation ü

?

Page 16: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

15

BetrachtungderKomplexität

o WirprüfeneineProzedur,dieermittelt,obzweivondreiParameterndesTypsBooleanTRUEsind:Þ achtAusführungsmöglichkeiten.

o EineFunktionmiteinemint-Parameterhat:Þ 232 (» 4*109)Ausführungsmöglichkeiten.

o EinProgrammdasvondreiVariablenmitje32Bitabhängt,hatÞ 296 (» knapp1030)verschiedeneStartzustände.

Page 17: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

16

Also…

⇒WirwählenbeimTestenimmereineStichprobe.⇒Wirtestensystematisch.

Programtesting can be used to show the presence of bugs,butnever to show their absence! [Dij70]

Faustregel:Ineinem(leidlichsystematischen)TestfälltdieHälftederFehlerauf.

Page 18: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

17

Beides ist wichtig!

SystematischoderintuitivTesten?

o Systematisch¤ DieRandbedingungen sinddefiniertoderpräziseerfasst.

n DassindsämtlicheGegebenheiten,dieaufdieResultateEinflusshaben.

¤ DieEingaben wurdensystematischausgewählt.¤ DieTestergebnisse werdendokumentiertundnachKriterienbeurteilt,

dievordemTestfestgelegtwurden.

o Intuitiv¤ …waskönntenichtfunktionieren?

Page 19: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

18

DiepsychologischeSeite

o JedeSuche gehtvoneinerAnnahmenachdemGesuchten aus:¤ WennwireinProgrammuntersuchenin

derAnnahme,dassesfunktioniert,werdenwirvermutlichauchkeinenFehlerfinden.

¤ WennsicheinFehlernicht„enttarnen“lässt,soliegteshäufigdaran,dasswirunsdenFehlernichtvorstellenkonnten.

¤ Wennwiraberzeigenwollen,dasseinProgrammfehlerhaftist,werdenunsereTestdateneinehöhereWahrscheinlichkeithaben,Fehleraufzudecken.

Page 20: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

19

IstSoftwarefehlerfrei?

Anwendung Umfang der Software

Zahl der Fehler

Restfehler Schwer-wiegende Restfehler

Autopilot zur Steuerung einer Rakete 30 000 1 500 60 6

Navigations-system des Space Shuttle

500 000 25 000 1 000 100

Flugkontroll Software (USA) 1 000 000 50 000 2 000 200

Software für Steuerung eines Kern-kraftwerks

1 500 000 75 000 3 000 300

Page 21: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

20

Kapitelübersicht

1. Einführung/Definition2. Begriffe3. DynamischeVerfahren– Testen4. StatischeVerfahren

Page 22: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

21

DefinitionQualität/Qualitätssicherung

o Quality1. Thedegreetowhichasystem,component,orprocessmeets

specifiedrequirements.2. Thedegreetowhichasystem,component,orprocessmeets

customeroruserneedsorexpectations.

o Qualityassurance (QA)1. Aplannedandsystematicpatternofallactionsnecessarytoprovide

adequateconfidencethatanitemorproductconformstoestablishedtechnicalrequirements.

2. Asetofactivitiesdesignedtoevaluatetheprocessbywhichproductsaredevelopedormanufactured.

IEEE610-1990StandardGlossaryofSoftwareEngineeringTerminology

Page 23: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

22

DefinitionTesten

o Testen istdieVorführungeinesProgrammsoderSystemsmitdemZielzuzeigen,dassestut,wasestunsollte

Hetzel:Thecompleteguidetosoftwaretesting,1984

o Testen istderProzesseinProgrammauszuführenmitderAbsicht,Fehlerzufinden

Myers:Theartofsoftwaretesting,1979

o Testing.Theprocessofoperatingasystemorcomponentunderspecifiedconditions,observingorrecordingtheresults,andmakinganevaluationofsomeaspectofthesystemorcomponent.

IEEE610-1990StandardGlossaryofSoftwareEngineeringTerminology

Page 24: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

23

Testen

Page 25: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

24

DefinitionTest

o Test1. Anactivityinwhichasystemorcomponentisexecutedunder

specifiedconditions,theresultsareobservedorrecorded,andanevaluationismadeofsomeaspectofthesystemorcomponent.

2. Toconductanactivityasin(1).IEEE610-1990StandardGlossaryofSoftwareEngineeringTerminology

Page 26: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

26

Fehler,FehlerundnochmehrFehler

o Esgibt3zentraleFehler-Begriffe,dieleidernichteinheitlichverwendetwerden:¤ Irrtum/Fehlhandlung– error¤ Fehler/Fehlerzustand– defect¤ Fehlverhalten/Fehlerwirkung– failure

Page 27: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

27

error,defect &failure

o DieFehlerursache/Irrtum(error)liegtimKopfdesDesignersbzw.desProgrammierers;siebildetdieGrundlagefürdenFehler.¤ Z.B.hatderProgrammierereinbest.Programmkonstruktnichtrichtigverstanden

(==vs.equals inJava).

o DerFehler(defect,fault) liegtindenDatenoderineinerKomponente/einemSystemundkanndortlokalisiertundbehobenwerden.¤ Z.B.inkorrekteAnweisungoderDatendefinition(z.B.Datenverlustbei

Typkonversion).¤ KannUrsachefüreinFehlverhaltensein.

o DasFehlverhalten(failure) wirdbeimProgrammlaufsichtbar.¤ AbweichungeinerKomponente/einesSystemsvondererwartetenLeistung,d.h.

spezifizierterSollwertundbeobachteterIstwertstimmennichtüberein.¤ WirkungeinesFehlers,diebeiderAusführungderKomponente/desSystemsnach

„außen“inErscheinungtritt.Es ist ein Unterschied, ob man ein

Fehlverhalten beseitigt oder sich über die Ursache Gedanken macht und den Fehler

beseitigt.

Page 28: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

28

Geht‘sauchandersrum?MitKorrektheit?

FolgerungEinProgrammgiltbeidergeringstenAbweichungvonderSpezifikationalsnichtkorrektà abeinerbestimmtenKomplexität,gibteskaumnocheinkorrektesProgramm.

o KorrektheitisteinebinäreEigenschaft,d.h.eineSoftwareistentwederkorrektodernichtkorrekt.

o Einefehlerfreie Softwareistkorrekt.o EineSoftwareistkorrekt,wennsiekonsistent zuihrer

Spezifikationist.o ExistiertzueinerSoftwarekeineSpezifikation,soisteine

Überprüfung derKorrektheitunmöglich.

Page 29: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

29

Testen– aberwie?

o DaeinTest,derkeineFehleraufdeckt,imwesentlicheneineVerschwendungvonZeitundGeldist,folgt:Þ EinguterTest isteiner,dermithoherWahrscheinlichkeiteinenbis

jetztunbekanntenFehleraufdeckt.

o EinTest,dereinenFehleraufdeckt,istkeineüberflüssigeMühe,daerdemProgrammWerthinzugefügthat;dahergilt:Þ EinerfolgreicherTestisteiner,dereinenbisjetztunbekannten

Fehleraufdeckt.

Page 30: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

30

Testfall(Definition)

EinTestfall (test case)bezeichneteinenSatzvonkonkretenEingaben(eventuellinklusiveStartzustand)füreinProgrammzurDurchführungeinesbestimmtenTestszusammenmitdervomProgrammerwartetenAusgabe(eventuellinklusiveEndzustand).

IEEE610-1990StandardGlossaryofSoftwareEngineeringTerminology

o Asetoftestinputs,executionconditions,andexpectedresultsdevelopedforaparticularobjective,suchastoexerciseaparticularprogrampathortoverifycompliancewithaspecificrequirement.

IEEE610-1990StandardGlossaryofSoftwareEngineeringTerminology

Page 31: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

31

Diskussion

¨ GetestetwerdensolldieSteuerungfüreinenFrostwächter,dernachtsineinemGewächshausdafürsorgensoll,dassdieTemperaturnichtunter0Gradsinkt.

¨ MachenSiezujedemnotwendigenTestfallallerelevantenAngaben.

Page 32: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

32

Testen– wasistderGewinn?

o BeimTestwirddieQualität (dieVerlässlichkeit,derWert)einesProgrammserhöht.

o DieQualitäterhöhenbedeutetFehler zufindenund zubeseitigen.

o Dahersolltemannichtzeigenwollen,dassdasProgrammfunktioniertsondernmitderAnnahmebeginnen,dassesFehlerenthält.DieseAnnahmegiltohnehinfürdiemeistenProgramme.

Page 33: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

33

GroßerNachteilvonTesten

o GetestetwerdenkönnenimmernurausführbareArtefakte(Dokumente),dasheißtProgrammcode.

o DieFehlerursacheliegtabermeistensfrüher.o ZumBeispielszenariobasierte AnalysenundInspektionen

helfen,FehlernfrüheraufdieSpurzukommen.

Page 34: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

34

Beides ist wichtig!

SystematischoderintuitivTesten?

o Systematisch¤ DieRandbedingungen sinddefiniertoderpräziseerfasst.

n DassindsämtlicheGegebenheiten,dieaufdieResultateEinflusshaben.

¤ DieEingaben wurdensystematischausgewählt.¤ DieTestergebnisse werdendokumentiertundnachKriterienbeurteilt,

dievordemTestfestgelegtwurden.

o Intuitiv¤ …waskönntenichtfunktionieren?

Page 35: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

35

WasistkeinTest?

o Irgendeine InspektioneinesProgramms.o DieVorführung einesProgramms.o DieAnalyse einesProgramms,durchSoftware-Werkzeuge,

z.B.zurErhebungvonMetriken.o DieUntersuchungeinesProgrammsmitHilfeeines

Debuggers.

Page 36: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

36

DefinitionTestprozess

Spillner, Linz: Basiswissen Softwaretest, 2010

Page 37: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

37

Testen– Wieläuftdasab?

EinProgrammausführen(ggf.auchmehrfach),mitderAbsichtFehlerzufinden.

Testfälle Testdaten

Test-protokolle

Test-ergebnisse

Entwerfen der Testfälle

Erstellen der Testdaten

Vergleich der Ergebnisse mit Testfällen

Ausführen des Programms mit Testdaten

Page 38: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

38

DefinitionK/I/S/A-Test

o Componenttesting Testingofindividualhardwareorsoftwarecomponentsorgroupsofrelatedcomponents.

o Integrationtesting Testinginwhichsoftwarecomponents,hardwarecomponents,orbotharecombinedandtestedtoevaluatetheinteractionbetweenthem.

o Systemtesting Testingconductedonacomplete,integratedsystemtoevaluatethesystem’scompliancewithitsspecifiedrequirements.

o Acceptancetesting Formaltestingconductedtodeterminewhetherornotasystemsatisfiesitsacceptancecriteriaandtoenablethecustomertodeterminewhetherornottoacceptthesystem.

IEEE610-1990StandardGlossaryofSoftwareEngineeringTerminology

Page 39: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

39

K/I/S/A-TestimEntwicklungsprozess

Komponententest

Integrationstest

Systemtest

Akzeptanztest

Page 40: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

40

Waswirdgetestet?

o Komponententest¤ Fokus:Funktionalität,Sonderfälle,Performanzetc.

o Integrationstest¤ Inkrementellvs."allesaufeinmal"¤ Fokus:Schnittstellen,Kommunikation

o Systemtest¤ InderrealenUmgebung,ohneAuftraggeber¤ Fokus:Vollständigkeit,Konfiguration,Interoperabilität,Performanzetc.

o Akzeptanztest (Abnahmetest)¤ BeimAuftraggeber¤ Fokus:Zeigen,dassdiegestelltenAnf.umgesetztsind

Page 41: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

41

Kapitelübersicht

1. Einführung/Definition2. Begriffe3. DynamischeVerfahren- Testen

§ Teststrategien§ VorgehenbeimTesten§ Testautomatisierung

4. StatischeVerfahren

Page 42: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

42

MerkmaledynamischerTesttechniken

o AusführungdesProgrammsmitkonkretenEingabewerten.o TestinderrealenBetriebsumgebung.o EssindStichprobenverfahren.o BeweisennichtdieKorrektheitdergetestetenSoftware.

→ Testfällesollten:n repräsentativ,n fehlersensitiv,n redundanzarmundn ökonomischsein.

Page 43: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

43

Testen- Grundlagen

o Jeder Test ist eine Stichprobe.o Korrektheit kann durch Testen nicht bewiesen werden.

¤ Beispiele:n Addition von zwei 32-Bit-Zahlen: 264 mögliche Testfällen Bearbeitung einer Zeichenkette mit 32 Zeichen: 2256 mögliche Testfälle

o Erwartete Ergebnisse müssen im Voraus bekannt sein.¤ Testen gegen die Spezifikation.¤ Testen gegen vorhandene Ergebnisse (Regressionstest).

o Unvorbereitete und undokumentierte Tests sind Zeitverschwendung.

o Testen findet Fehlersymptome (failures und defects), keine Fehlerursachen (errors).

o Nach dem Test: Fehlerursachen finden und beheben (Debugging).

Page 44: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

44

Testaufwand

KleineAufwandrechnung:264 » 1,8·1019

o Annahme1:ManuellerTestmit1Testfall/sVollständigerTestdauertca.1,8·1019 s» 58,5MilliardenJahre

o Annahme2:AutomatisierterTestauf1000Rechnernparallel,1Testfall/μs→109 Testfälle/sVollständigerTestdauertca.1,8·1010 s» 58,5Jahre

Page 45: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

45

Kapitelübersicht

1. Einführung/Definition2. Begriffe3. DynamischeVerfahren- Testen

§ Teststrategien§ Blackbox-Test§ Glassbox-Test§ Graybox-Test

§ VorgehenbeimTesten§ Testautomatisierung

4. StatischeVerfahren

Page 46: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

46

3Teststrategien

Blackboxtest Benutzer– siesehendasSystemnurvonaußen:Funktionalität.

Grayboxtest Tester– schauenauchaufdieFunktionalität,aberauchdarunterz.B.obdieDateninderDBkorrektabgelegtsind.

Whiteboxtest Entwickler– kennendenCodeundtestendaraufhin,obderCoderichtigarbeitet.

Alle3Sichtenmüssenberücksichtigtwerden.Z.B.kanneinWhiteboxtest funktionieren,weileinefalscheAnnahmegetroffenwurde,diedannvondenanderenTestsaufgedecktwird.

Page 47: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

47

Blackbox-Tests

o DieinnereStrukturdesProgrammsinteressiertnicht.

o Testfälle(engl:test cases)werdenausschließlichausderSpezifikationabgeleitet.

o DerTesteristinteressiertamFindenvonUmständen(Testfälle),indenendasProgrammnichtmitseinerSpezifikationübereinstimmt.

o AndereBezeichnungen:Data-driven Tests,I/O-driven Tests,funktionalesTesten.

x1x2x3

y1

y2

y1 = f( x1, x2)y2 = g(x2, x3)

Page 48: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

48

Blackbox-Test

o EinumfassenderBlackbox-Testsollte:¤ AlleFunktionendesProgramms

aktivieren(Funktionsüberdeckung).¤ AllemöglichenEingabenbearbeiten

(Eingabeüberdeckung).¤ AllemöglichenAusgabeformen

erzeugen(Ausgabeüberdeckung).¤ DieLeistungenausloten.¤ DiespezifischenMengengrenzen

ausschöpfen.¤ AlleFehlersituationenherbeiführen.

Jede Anforderung muss getestet werden.

Page 49: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

50

Blackboxtesten:Testfallbildung

o EinSortierprogrammverwendetShakerSort fürZahlenfolgenmitbiszu15Elementen,beimehrals15ElementenwirdQuickSort verwendet.Die“interneGrenze”15/16hatsichderImplementierer ausgedacht(vielleichtgemessen),sietrittinderSpezifikationnichtauf,istalsofürdenBlackbox-Testervölligunvorhersehbar.

void sort ( Object [ ] sortArray ) {if ( sortArray.length <=15 )

shakerSort( sortArray );else

quickSort( sortArray );}

o DieChance,diesen(nichtböswilligen!)FehlermittelsBlackbox-Testszuentdecken,istziemlichgering.

o Folge:Vermutlichwirddiesort-Methodeniemitmehrals15ObjektengetestetundderQuickSort-Algorithmusbleibtvölligungetestet.

Page 50: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

51

Blackboxtesten:Testfallbildung

Problem:persistenteDateno IhrVerhaltenistnichtnurvondenaktuellenEingabedaten

abhängig,sondernvonihrerGeschichte(besondersReihenfolge!)o Beispiel

¤ IneinemProgrammmiteinerKunden-DatenbankkönnenausderDatenbankherausautomatischRechnungenerstelltwerden.

¤ BezahlteBeträgewerdeninderDatenbankmarkiert.¤ Rechnungenwerdennurerstellt,wennderBetragnochnichtals

"bezahlt"gekennzeichnetist.¤ DieReihenfolgeRechnungdrucken« Betragals"bezahlt"markieren.

beeinflusstdenZustand,damitdenProgrammablaufunddamitdieTests,diezustandsabhängigerfolgenmüssen.

o EsmüssenalleReihenfolgenallermöglichenEingabengetestetwerden.

Page 51: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

52

Übung:Testfällefür3-ecks-Programm[My77]

¨ FindenSiedieTestfälle,diealle3-ecks-Berechnungenabdecken.

Page 52: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

53

5.11.20042.2 Funktionstest

Ein“klassisches” Beispiel(Myers)

o Funktionmitdreiint-Eingabewerten(x,y,z),diealsLängenvonDreiecksseiteninterpretiertwerden.

o Berechnet,obdasDreieckgleichseitig,gleich-schenklig oderungleichseitigist.

o SchreibenSiefürdieseFunktionTestfälleauf!(jetzt!)

Page 53: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

54

5.11.20042.2 Funktionstest

AuswertungnachPunkten1/4

1. HabenSieeinenTestfallfüreinzulässigesgleichseitigesDreieck?

2. HabenSieeinenTestfallfüreinzulässigesgleichschenkligesDreieck?(EinTestfallmit2,2,4zähltnicht.)

3. HabenSieeinenTestfallfüreinzulässigesungleichseitigesDreieck?(BeachtenSie,dassTestfällemit1,2,3und2,5,10keineJa-Antwortgarantieren,dakeinDreieckmitsolchenSeitenexistiert.)

4. HabenSiewenigstensdreiTestfällefürzulässige,gleichschenkligeDreiecke,wobeiSiealledreiPermutationenderbeidengleichenSeitenberücksichtigthaben?(z.B.3,3,4;3,4,3;4,3,3)

Page 54: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

55

5.11.20042.2 Funktionstest

AuswertungnachPunkten2/4

5. HabenSieeinenTestfall,beidemeineSeitegleichNullist?6. HabenSieeinenTestfall,beidemeineSeiteeinennegativen

Werthat?7. HabenSieeinenTestfallmit3ganzzahligenWerten,indem

dieSummezweierZahlengleichderdrittenist?(D.h.,wenndasProgramm1,2,3alsungleichseitigesDreieckakzeptiert,soenthälteseinenFehler.)

8. HabenSiewenigstensdreiTestfällefürPunkt7,wobeiSiealledreiPermutationenfürdieLängejeweilseinerSeitealsSummederbeidenanderenSeitenberücksichtigthaben?(z.B.1,2,3;1,3,2;3,1,2.)

9. HabenSieeinenTestfallmitdreiganzzahligenWertengrößerNull,beidemdieSummeauszweiZahlenkleineralsdiedritteist?(z.B.1,2,4oder12,15,30)

Page 55: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

56

5.11.20042.2 Funktionstest

AuswertungnachPunkten3/4

10. HabenSiewenigstensdreiTestfällefürPunkt9,wobeiSiealledreiPermutationenberücksichtigthaben?(z.B.1,2,4;1,4,2;4,1,2.)

11. HabenSieeinenTestfall,indemalledreiSeitengleichNullsind(d.h.0,0,0)?

12. HabenSiewenigstenseinenTestfallmitnichtganzzahligenWerten?

13. HabenSiewenigstenseinenTestfall,indemSieeinefalscheAnzahlvonWertenangeben(z.B.zweistattdreiganzzahligeWerte)?

14. HabenSiezusätzlichzujedemEingangswertinallenTestfällendieerwartetenAusgabewerteangegeben?

Page 56: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

57

5.11.20042.2 Funktionstest

AuswertungnachPunkten(Zusatzpunkte)4/4

15. TestmitmaximalenWerten.16. TestaufZahlbereichs-Überlaufbehandlung.17. TestmitunzulässigenEingabezeichenfolgen.

Page 57: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

58

5.11.20042.2 Funktionstest

MyersErgebnisse+Folgerungen

o DurchschnittswerteerfahrenerProgrammierer:7-8o „DieseÜbungsolltezeigen,dassdasTestenaucheinessolchtrivialenProgrammskeineleichteAufgabeist.Undwenndaswahrist,betrachtenSiedieSchwierigkeit,einFlugleitsystemmit100.000Befehlen,einenCompileroderauchnureingängigesGehaltsabrechnungsprogrammzutesten.“ (1979)

o Heute:1-10MLoC

Page 58: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

60

Blackboxtesten:Testfallbildung

o ErschöpfendesTestenbedeutet,jedemöglicheEingabewirdalsTestfallvorgesehenunddasProgrammdamitgetestet.

® DasbedeuteteineriesigeMengeanTesteingaben.® ErschöpfendeBlackbox-Testssindnichtpraktisch

durchführbar.DiegenanntenBeispielesindMini-Probleme!

Page 59: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

61

ProblemderTestfall-Auswahl

DiegewähltenTestzielemit¤ möglichstwenig¤ möglichstguten

Testfällenumsetzen.

KlassischeTechniken:o Äquivalenzklassenbildungo Grenzwertanalyseo Ursache-Wirkungsgrapheno StatistischesTesten(random testing)

im Folgenden betrachtet

Page 60: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

62

Äquivalenzklassen

o ZueinerÄquivalenzklassegehörenalleEingabewerte,beidenenderTesterdavonausgeht,dasssichdasTestobjektbeiEingabeeinesbeliebigenDatumsausderÄquivalenzklassegleichverhält.

o DerTesteines Repräsentanteneiner Äquivalenzklassewirdalsausreichendangesehen,dadavonausgegangenwird,dassdasTestobjektfüralleanderenEingabewertederselbenÄquivalenzklassekeineandereReaktionzeigt.

Page 61: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

63

Äquivalenzklassen

o Esgibt2ArtenvonÄquivalenzklassen:¤ Gültige Äquivalenzklassen repräsentierengültigeEingabenfürein

Programm.¤ Ungültige Äquivalenzklassen repräsentierenalleanderenEingaben.

o WiekommtmanzudenÄquivalenzklassen?Þ HeuristischeRegelnzurIdentifizierungvonÄquivalenz-

klassen.

Page 62: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

64

Heuristik

o Heuristik (altgr. εὑρίσκω heurísko ‚ich finde‘ zu heuriskein ‚(auf)finden,entdecken‘)¤ Bezeichnet die Kunst, mit begrenztem Wissen und wenig Zeit zu guten Lösungen zu

kommen.¤ Es bezeichnet ein analytisches Vorgehen, bei dem mit begrenztem Wissen über ein

System mit Mutmaßungen Aussagen über das System getroffen werden, die dannmit Hilfe empirischer Methoden verifiziert werden, um die Korrektheit derVorstellung über das System (Systemmodell), auf Grund derer diese Aussagenentwickelt wurden, zu schärfen.

o Heuristik in der Informatik¤ Anwendung von heuristischen Methoden, um mit geringem Rechenaufwand und

kurzer Laufzeit zulässige Lösungen für ein bestimmtes Problem zu erhalten.Klassische Algorithmen versuchen, einerseits die optimale Rechenzeit undandererseits die optimale Lösung zu garantieren. Heuristische Verfahren verwerfeneinen oder beide dieser Ansprüche, um bei komplexen Aufgaben einen Kompromisszwischen dem Rechenaufwand und der Güte der gefundenen Lösung einzugehen.Dazu wird versucht, mithilfe von Schätzungen, „Faustregeln“, intuitiv-intelligentemRaten oder unter zusätzlichen Hilfsannahmen eine gute Lösung zu erzeugen, ohneoptimale Eigenschaften zu garantieren.

¤ Bekannte heuristische Algorithmen: Evolutionäre Algorithmen in der Optimierung.Quelle: Wikipedia

Page 63: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

65

IdentifizierungvonÄquivalenzklassen

o DefinitionsbereichderEingabewerte¤ Äquivalenzklasseallezulässigen/erlaubtenWerte:dieseWertemussdasTestobjekt

gemäßderSpezifikationverarbeiten

o WerteaußerhalbdesDefinitionsbereichsderEingabewerte¤ ÄquivalenzklassenalleunzulässigenWerte:fürdieseWertemussauchüberprüft

werden,wiesichdasTestobjektverhält.

o VerfeinerungderÄquivalenzklassen¤ AlleÄquivalenzklassenelemente,dielautSpezifikationunterschiedlichverarbeitet

werdensollenà (Unter-)Äquivalenzklasse.

¤ DieÄquivalenzklassenwerdensolangeweiteraufgeteilt,bissichalleunterschiedlichenAnforderungenmitdenjeweiligenÄquivalenzklassendecken.

¤ AmEndedesVerfeinerungsprozessesistfürjedeÄquivalenzklasseeinRepräsentantfüreinenTestfallzuwählen.

o Nichtvergessen:ZujedemRepräsentantenmussauchdasvorausgesagteErgebnis(undggf.dieVorbedingungen)festgelegtwerden.

Page 64: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

66

Schritt1:IdentifizierungvonÄquivalenzklassen

o EingabebedingunggibteinenBereichvonWerten(z.B."gültigeEingabensind101..999")an:¤ EinegültigeÄquivalenzklasse(test1=500).

¤ ZweiungültigeÄquivalenzklassen(test2=-100undtest3=“1000“).

o Eingabebedingungspezifiziert,dasseineAnzahlvonWerten(z.B.3)einzugebenist:¤ EinegültigeÄquivalenzklasse(test1=3Werte).

¤ ZweiungültigeÄquivalenzklassen(test2=2Werteundtest3=4Werte).

o EingabebedingungspezifizierteineMengevonWerten,dieunterschriedlich zubehandelnsind(z.B."Ampelfarbensindrot,gelbundgrün")¤ EinegültigeÄquivalenzklassefürjedesMengenelement(test1=rot,test2=gelb,test3=grün).

¤ EineungültigeÄquivalenzklassefüreinNicht-Element(test4=blau).

o EingabebedingungkennzeichneteineMuss-Situation(z.B."einBezeichnerinJavamussmiteinemBuchstabenbeginnen"):¤ EinegültigeÄquivalenzklasse(test1="einDatum":BezeichnerbeginntmiteinemBuchstaben).

¤ EineungültigeÄquivalenzklasse(test2="2Daten":BezeichnerbeginntmiteinerZahl).

Page 65: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

67

Schritt2:AbleitungderTestfälle

o DieÄquivalenzklassen sindeindeutigzunummerieren.

o FürdieErzeugungvonTestfällenausdenÄquivalenzklassensindzweiRegelnzubeachten:1. DieTestfällefürgültige Äquivalenzklassen werdendurchAuswahl

vonTestdatenausmöglichstvielengültigenÄquivalenzklassengebildet.

2. DieTestfällefürungültige Äquivalenzklassen werdendurchAuswahleinesTestdatumsauseinerungültigenÄquivalenzklassegebildet.EswirdmitWertenkombiniert,dieausschließlichausgültigenÄquivalenzklassenentnommensind.

Page 66: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

70

Grenzwertanalyse

o AndenGrenzenzulässigerDatenbereichetretenerfahrungsgemäßhäufigFehlerauf.

o TestfällefürsolcheGrenzfälleauswählen.

o Beispiel:MultiplikationzweierganzerZahlenxundy

o MöglicheGrenzfällefürxundy¤ -1¤ 0¤ 1¤ Produktläuftpositivüber¤ Produktläuftnegativüber

Heuristik

Page 67: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

71

Grenzwertanalyse+Äquivalenzklassenbildung

o AnstattauseinerÄquivalenzklasseeinenbeliebigenWertalsRepräsentantenfüreinenTestfallzuwählen,verlangtdieRandwertanalyse,dasseinodermehrereWertesogewähltwerden,dassdieEndenderWertebereichejederÄquivalenzklasseüberprüftwerden.

o AnstattsichnuraufdenEingaberaumzukonzentrieren,wirdauchderErgebnisraum beiderBildungderTestfällebeachtet.

Page 68: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

72

Testfallgenerierung

1. FürjedeEingabeÄquivalenzklassen bilden.2. RepräsentantenmitGrenzwertanalysebestimmen

¤ Bereiche:Grenzwert,Grenzwert„+1“,Grenzwert„- 1“.¤ Aufzählungen:alleElemente,einungültigesElement.

3. Testfälle bilden.¤ „gültige“Testfälle:

n fürjedeEingabeeinengültigenRepräsentantenwählen,n jedergültigeRepräsentantmindestenseinmal.

¤ „ungültige“Testfälle:n fürgenaueineEingabeungültigenRepräsentantenwählen,

alleanderenEingabengültig,n jederungültigeRepräsentantmindestenseinmal.

Page 69: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

73

Grenzwertanalyse- Testfälle

HeuristischguteRegelnzurErstellungvonTestfällen:o WenneineEingabebedingungeinenBereich odereineAnzahl von

Werten(z.B.1bis999)angibt,entwirfTestfällefürdieEndendesgültigenWertebereiches(1und999)undfürWerte,diedirektaußerhalbliegen(0und1000).

o WendedieseRegelaufdieAusgabebedingungenan,d.h.entwirfTestfälleso,dassdieEndendergültigenAusgabebereicheerreichtwerdenundversucheTestfällesozuwählen,dassdieErgebniswertegeradeaußerhalbdesgültigenWertebereichsliegenwürden.Beispiel:DasErgebniseinerSinusfunktionsollte+1.0und-1.0erreichen(fürdieEingabewerte1/2 p und3/2 p).

o WenneineEingabebedingungeinegeordnete Liste vonWertenspezifiziert,entwirfTestfälle,diesichaufdasersteunddasletzteElementderMengekonzentrieren.

Page 70: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

75

Kapitelübersicht

1. Einführung/Definition2. Begriffe3. DynamischeVerfahren- Testen

§ Teststrategien§ Blackbox-Test§ Glassbox-Test§ Graybox-Test

§ VorgehenbeimTesten§ Testautomatisierung

4. StatischeVerfahren

Page 71: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

76

Glass-Box-Test

o Synonyme:Whitebox-Test/StrukturellesTesten.

o DerTesterentwickeltTestfälleauseinerBetrachtungderAblauflogikdesProgrammsunterBerücksichtigungderSpezifikation.

o Ziel:MöglichstvielePfadetesten(=Pfad)

Page 72: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

77

BestimmungvonVerzweigungen/Pfaden

o BestimmungderProgrammverzweigungen¤ BedingteAnweisungenundSchleifen:zweiZweige

n „if ohneelse“:ebensozweiZweige

¤ EineFallunterscheidung:Zweige=AnzahlderFälleà Kontrollflussgraph

o EinPfad isteineFolgevonZweigenvomStartzumEndeo BestimmungallerPfade:

¤ AlleKombinationenn allerProgrammzweigen beiSchleifen:allermöglichenAnzahlenvonDurchläufen

if, while

switch

Zweig

if

else-Fallthen-Fall

Page 73: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

78

Glassbox-Tests

a == 3

b >= 0 || c > 0

b++;

println( 4/( b + 2*c ) );

Yes

Yes

No

No

Für den Glasbox-Test betrachtet man Pfade.

Page 74: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

80

Überdeckungskriterien1/2

o Anweisungsüberdeckung/StatementCoverage /C0-Überdeckung¤ AlleAnweisungenwerdenausgeführt.

o Zweigüberdeckung/Branch Coverage /C1-Überdeckung¤ BeiVerzweigungenwerdenallemöglichen

Wege(Zweige)durchlaufen.

o Pfadüberdeckung(PathCoverage)¤ AllemöglichenWegewerdendurchlaufen.

Page 75: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

81

Überdeckungskriterien2/2

o Termüberdeckung (Condition Coverage):GründlicheÜberprüfungkomplizierter,zusammengesetzterEntscheidungen.¤ SimpleCondition Coverage /Einfache

Bedingungsüberdeckung/C2-Überdeckungn JederlogischeTerm,dereineVerzweigungsteuert,

wirdmitdenmöglichenWerten(true oderfalse)belegt.

¤ MinimalMultipleCondition Coverage /MinimaleMehrfachüberdeckung/C3-Überdeckungn DergesamtelogischeTerm,dereineVerzweigung

steuert,wirdmitdenmöglichenWerten(true oderfalse)belegt - verkürzteAuswertungderTeilausdrücke.

¤ MultipleCondition Coveragen JederlogischeTerm,dereineVerzweigungsteuert,

wirdmitfastallenmöglichenWerten(true oderfalse)belegt– völlständige Auswertung.

Page 76: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

82

Überdeckungen- Zusammenfassung

o Überdeckungen, besonders C1 und C2, spielen bei der Qualitäts-sicherung eine wesentliche Rolle.

o Vollständige Überdeckungen sind selten zu erreichen, was in derVielfalt der Ablaufmöglichkeiten z. B. mit schwer zu testenden try-catch-Blöcken liegen kann.

o Da man sich bei Überdeckungen immer fragt, welche Auswirkungein Befehl, eine Bedingung oder eine Variable haben kann, findetman durch solche Ansätze viele kleine Fehler.

o Um effizient mit Überdeckungstests arbeiten zu können, ist eineAutomatisierung der wiederholten Testausführung mit derBerechnung und Analyse der Überdeckungen unerlässlich.

o Generell ist beim Überdeckungsansatz zu beachten, dass man zwargenau die inneren Details der Abläufe prüft, es aber nichtfestgestellt werden kann, ob das Programm überhaupt seineursprüngliche Aufgabenstellung erfüllt.

Page 77: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

83

BestimmungvonZweigenundPfaden

BestimmungderProgrammzweige:o BetrachtungvonVerzweigungenundSchleifen.o BeiProgrammiersprachenmitgeschlossenen

Ablaufkonstrukten:¤ if-Anweisungen(auchdieohneelse)undSchleifen

habenjezweiZweige.¤ Einecase/switch-Anweisung:sovieleZweigewieFälle.

BestimmungderPfade:o AlleKombinationeno allerProgrammzweigeo beimaximalemDurchlaufallerSchleifen.

Page 78: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

84

Beispiel(nach[Mye79])

VAR

a,b,x: INTEGER;

...

BEGIN

IF (a>1) AND (b=0)

THEN x := x DIV a;

IF (a=2) OR (x>1)

THEN x := x+1;

...

Page 79: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

85

Übung

¨ ÜberlegensiesichdieTestfällefürdiedreiÜberdeckungskriterien:¤ Anweisungsüberdeckung¤ Zweigüberdeckung¤ Pfadüberdeckung

Page 80: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

86

NotwendigeTestfälle

AnweisungsüberdeckungmitdemTestfall:o a=2b=0x=1

ZweigüberdeckungmitdenTestfällen:o a=3b=0x=3(obenthen-Zweig,untenelse-Zweig)o a=2b=1x=1(obenelse-Zweig,untenthen-Zweig)

¤ AuchandereZweigkombinationensindzulässig.JederZweigmuss1xdurchlaufenwerden.

PfadüberdeckungmitdenTestfällen:o a=1b=1x=2o a=3b=0x=3o a=2b=0x=4o a=1b=1x=1

Page 81: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

87

Glasbox-Tests

o DieAnzahlderPfadedurcheinProgrammistmeistenssehrhoch.

o BeispieleinesProgramm-Ablaufplans

Page 82: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

88

Übung

o BestimmensiedieAnzahlderPfadedurchdasdargestellteProgramm.

88

Page 83: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

89

Lösung

o DieeindeutigenPfadedurchdiesesProgrammentsprichtderAnzahlderMöglichkeitenvonAnachBzukommen.

o DieseZahlist51 (1Durchlauf)+52 +...+520(20Durchläufe)¤ wobei5dieZahlderPfadedurchden

Schleifenrumpfist¤ Dasergibtca.1014.

Page 84: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

90

BinäreSuche

GebenSiedenKontrollflussgraphenan.

Page 85: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

91

Kontrollflussgraph

Page 86: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

92

Anweisungsüberdeckung

o ÜberdeckungallerAnweisungen:C0-Test:JedeAnweisung(numerierte Zeile)desProgrammswirdmindestenseinmalausgeführt.

o ImBeispiel:a={11,22,33,44,55},k =33überdecktAnweisungen:1,2,3,4,5,9a={11,22,33,44,55},k =15überdecktAnweisungen:1,2,3,4,6,7,8,9

o BeideTestfällezusammenerreichenvolleAnweisungsüberdeckung.

o MessenderAnweisungsüberdeckung:¤ "Instrumentieren"desCodes(durchWerkzeuge)¤ EinfügenvonZählanweisungenbeijederAnweisung

Man kann auch mit einem einzigen Testfall die C0-Abdeckung erreichen.

Page 87: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

93

Zweigüberdeckung

o ÜberdeckungallerZweige:C1-Test: BeijederFallunterscheidung(einschließlichSchleifen)werdenbeideZweigeausgeführt(Bedingung=true undBedingung=false).

o ZweigtestzwingtauchzurUntersuchung"leerer"Alternativen:if (x >= 1)

y = true; // kein else-Fall

o ImBeispiel:DiebeidenTestfällederletztenFolieüberdeckenalleZweige.

o Messung/InstrumentierungvonAnweisungi:¤ Fallunterscheidung:if (...) { bT[i]++; ... } else { bF[i]++; ... }

¤ While-Schleife:while (...) { bT[i]++; ... } bF[i]++;

Page 88: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

94

Testgüte undÜberdeckungsgrad

o DieTestgüte hängtvongewählterÜberdeckungunderreichtemÜberdeckungsgradab.

o Überdeckungsgrad – ProzentualesVerhältnisderAnzahlüberdeckterElementezurAnzahlvorhandenerElemente.

o Beispiel:DerTestfalla=3b=0x=3erreicht50%Zweigüberdeckung.

Page 89: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

95

Testgüte undÜberdeckungsgrad

o AnweisungsüberdeckungisteinschwachesKriterium.FehlendeAnweisungenwerdenbeispielsweisenichtentdeckt.

o ZweigüberdeckungwirdinderPraxisangestrebt.Dennoch:falschformulierteBedingungsterme(z.B.x>1stattx<1)werdennichtentdeckt.

o PfadüberdeckungistinfastallenProgrammen,dieSchleifenmitVerzweigungenenthalten,nichttestbar.

Page 90: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

96

Kapitelübersicht

1. Einführung/Definition2. Begriffe3. DynamischeVerfahren- Testen

§ Teststrategien§ Blackbox-Test§ Glassbox-Test§ Graybox-Test

§ VorgehenbeimTesten§ Nicht-funktionaleTests

4. StatischeVerfahren

Page 91: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

97

Graybox-Test- Anwendungsszenario

o TypischerAnwendungsbereich:Webanwendungen¤ ÜbereineWebschnittstellewerdenDatenineinerDatenbank

verschoben.¤ ManmusssichsowohlmitdemDatenbankcodealsauchmitder

Webschnittstellebefassen.n AuditingundLogging prüfen:BestimmteDatensindnichtüberdasgewöhnlicheUIverfügberà Log-Analyse,Audit-Reporting,direkteAbfragevonbest.Datenbanktabellen.

n FürandereSystemgedachteDaten:Ausgabenbzw.Ausgabeformateprüfen.n VomSystemgenerierteInformation:WennAnwendungenz.B.PrüfsummernoderHashwerteerzeugenàmanuellprüfen.OderbeivomSystemerzeugtenZeitstempelnaufdierichtigeZeitzoneachten.

n MemoryLeaks:Untersuchen,obDaten,diegelöschtwerdensollenauchtatsächlichgelöschtwurden,obRegistrierungseinträgekorrektdurchgeführtwurden.

Page 92: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

98

IllustrationGraybox-Tests

Eingaben

KorrekteSoll-Ausgabe?

KorrekteSoll-Ausgabe?

Eingaben

KorrekteSoll-Ausgabe?

Eingaben

Page 93: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

99

IllustrationGraybox-Tests

Eingaben

KorrekteSoll-Ausgabe?

KorrekteSoll-Ausgabe?

Eingaben

KorrekteSoll-Ausgabe?

Eingaben

Page 94: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

100

IllustrationGraybox-Tests

Eingaben

KorrekteSoll-Ausgabe?

KorrekteSoll-Ausgabe?

Eingaben

KorrekteSoll-Ausgabe?

Eingaben

Page 95: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

101

Graybox-Test

o Graybox-Testsversuchen,dieVorteilevonBlackbox- undGlasbox-Testverfahrenzukombinieren.

Vorgeheno Soll-Überdeckungsgradfestlegen,z.B.Zweigüberdeckung.o ZunächstBlackbox-Testsdurchführen

¤ ZurÜberprüfungderFunktionalität,¤ Überdeckungwird(imHintergrund)mitprotokolliert.

o DannGlasbox-Testdurchführen¤ AnalysedernichtüberdecktenProgrammteile.

n KorrekturdesProgramms(EntfernenunnötigerTeile)odern ErstellenzusätzlicherTestfälle.

¤ Testen,bisdervordefinierteÜberdeckungsgraderreichtist.

Page 96: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

102

Kapitelübersicht

1. Einführung/Definition2. Begriffe3. DynamischeVerfahren- Testen

§ Teststrategien§ Blackbox-Test§ Glassbox-Test§ Graybox-Test

§ Nicht-funktionaleTests§ VorgehenbeimTesten

4. StatischeVerfahren

Page 97: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

103

Nicht-funktionaleTests

o Lasttest Last=AnzahlNutzer,AnzahlTransaktionen,etc.

¤ Performance-Test MessungderAntwortzeit(i.d.R.lastabhängig)¤ Volumen-Test VerhaltenbeigroßenDatenmengen¤ Stress-Test VerhaltenbeiÜberlast

o TestderSicherheito TestderStabilität(imDauerbetrieb)o TestderBenutzerfreundlichkeito TestaufKompatibilität

¤ andereSysteme,(alte)Datenbestände

Page 98: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

112

Kapitelübersicht

1. Einführung/Definition2. Begriffe3. DynamischeVerfahren- Testen

§ Teststrategien§ Blackbox-Test§ Glassbox-Test§ Graybox-Test

§ Nicht-funktionaleTests§ VorgehenbeimTesten

4. StatischeVerfahren

Page 99: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

113

VorgehenbeimTesten

o Wiewirdgetestet?o Waswirdgetestet?o Wannwirdgetestet?o Wiewirddokumentiert?o Wannistmanfertigmittesten?

Page 100: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

114

DerTestprozess

Testfälle Testdaten

Test-protokolle

Test-ergebnisse

Entwerfen der Testfälle

Erstellen der Testdaten

Vergleich der Ergebnisse mit Testfällen

Ausführen des Programms mit Testdaten

Page 101: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

115

Waswirdgetestet?

o TestgegenstandsindKomponenten,Teilsysteme oderSysteme

o Komponententest,Modultest(UnitTest)

o Integrationstest(IntegrationTest)

o Systemtest(SystemTest)

vgl. K/I/S/A

Page 102: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

116

Wannwirdgetestet?1/3

Komponententest

Integrationstest

Systemtest

Akzeptanztest

Page 103: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

117

Wannwirdgetestet?2/3

o Unit-Test,Modultest,Komponententest(auch:Klassentest)¤ Fokus:Funktionalität,Sonderfälle,Performanzetc.

o Integrationstest¤ Inkrementellvs."allesaufeinmal"¤ Fokus:Schnittstellen,Kommunikation

o Systemtest¤ InderrealenUmgebung,ohneAuftraggeber¤ Fokus:Vollständigkeit,Konfiguration,Interoperabilität,Performanzetc.

o Akzeptanztest (Abnahmetest)¤ BeimAuftraggeber¤ Fokus:Zeigen,dassdiegestelltenAnf.umgesetztsind.

Page 104: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

118

Wannwirdgetestet?3/3

o Regressionstests¤ …dienenderÜberprüfungbereitserreichterTestergebnissenacheiner

Änderung.¤ Testfälleund–ergebnisse werdenprotokolliert

z.B.ineinerTestdatenbank.¤ nacheinerÄnderungwerdendieTestfällewiederdurchgespielt.¤ sinnvoll&hilfreich:automatischesTesten.¤ (Nur)Abweichungenwerdengemeldet.

Page 105: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

119

Testgegenstand

o Abnahmetest(acceptance test)¤ einebesondereFormdesTests:¤ nicht:Fehlerfinden¤ sondern:zeigen,dassdasSystemdiegestelltenAnforderungenerfüllt,

d.h.inallengetestetenFällenfehlerfreiarbeitet.¤ InderrealenUmgebungdurchdenAuftraggeberoder¤ InFormvonAlpha- undBeta-TestsfüreinenanonymenMarkt

Page 106: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

121

Wannhatmangenuggetestet?

o WennmitdeninderTestvorschriftfestgelegtenTestdatensätzenkeineFehlermehrgefundenwerden.¤ SinnvollesKriterium,wennderUmfangdesPrüflingseine

systematischeAuswahlvonTestfällenmitausreichenderÜberdeckungermöglicht.

¤ ÜblichesKriteriumbeiderAbnahme.

o WenndiePrüfkostenproentdecktemFehlereineimvorausfestgelegteGrenzeüberschreiten.¤ SinnvollesKriteriumfürdasBeendendesSystemtests.¤ SetztdieErfassungderPrüfkostenundderAnzahlgefundenerFehler

voraus.

Achtung: bei „schlechten“ Testfälle:kein Fehler wird gefunden das System ist ausreichend fehlerfrei

Page 107: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

122

Wannhatmangenuggetestet?

o AbschätzungdesRestrisikos¤ DasRestfehlerrisikokann

n ausdenbekanntenDateninformellgeschätztwerden.n mitHilfestatistischerVerfahrenanalytischabgeschätztwerden.

Page 108: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

124

VorgehenbeimTesten

o Wiewirdgetestet?o Waswirdgetestet?o Wannwirdgetestet?o Wannistmanfertigmittesten?o Wiewirddokumentiert?

Page 109: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

125

Wiewirddokumentiert?1/2

Reihenfolge der Testfälle u.U. wichtig!

Testfälle werden zusammengefasstzu Testabschnitten für z.B. gleiche Art des Tests,gleiche Vorbedingungen, etc.

Testspezifikation§ IEEE829-1998Standardfor SoftwareTestDocumentation

Testfallspezifikation1. Id./Nr.2. Beschreibung3. Autor4. Vorbedingungen5. Eingaben6. ErwarteteResultate7. Ergebnis(pass/fail)

auch: gültige/ungültige EingabenArt des Tests (Funktion, Last, Zeit, …)

Exakt, z.B. „50“nicht „einen Geldbetrag“

Page 110: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

126

Wiewirddokumentiert?2/2

o Manuelle Testfälle¤ sogenaubeschreiben,dasssieeindeutigreproduzierbarsind,¤ „abkürzen“erlaubt(z.B.„wieoben,jedochEingabe30,Ergebnis60“),

„Intuition“nicht(z.B.„weiteresinnvolleWerteauchtesten“),¤ Dokumentationz.B.inTabellen-Programm(OOo Calc,Excel).

o Automatische Testfälle¤ JUnit fürKomponenten/Integrationstest.¤ DokumentationmitJavaDoc.

o Zweck derDokumentation¤ Review(sinddieTestfälle„gut“).¤ VorgabenfürTester(manuell).

Page 111: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

127

TestfallalsText– Teil1

Page 112: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

128

TestfallalsText– Teil2

Aus: H. Sneed e.a.: Der Systemtest. 3. Aufl., Hanser, 2012.

Page 113: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

129

TestfallalsTabelle

Aus: H. Sneed e.a.: Der Systemtest. 3. Aufl., Hanser, 2012.

Page 114: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

130

IEEE829– TestSpecification – Teil1

Page 115: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

131

IEEE829– TestSpecification – Teil2

Page 116: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

141

Zusammenfassung

o TestenkannnurdieAnwesenheitvonFehlernaufzeigen,niemalsderenAbwesenheit.

o Esist(normalerweise)nichtmöglich,einProgrammerschöpfendzutesten:dasgiltfürBlackbox- wiefürWhitebox-Tests.

o Manunterscheidet¤ Blackbox,Whitebox- undGraybox-Tests.¤ ImzeitlichenVerlauf:

Unit-/Modul-/Komponenten-Tests,Integrationstests,Systemtest,Abnahmetest,

¤ BeiwiederholtemTestennachÄnderungen:Regressionstests.

o DieKombinationverschiedenerVerfahrenlieferteineguteÜberdeckung.

Page 117: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

143

Kapitelübersicht

1. Einführung/Definition2. Begriffe3. DynamischeVerfahren– Testen4. StatischeVerfahren

Page 118: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

144

Software-Reviews

o TestenbenötigtausführbarenCode,d.h.keinTestvonAnforderungs-spezifikation,Entwurfsspezifikation,…möglich.

o EsbestehtBedarfanergänzendenMethodenzurEntdeckungundBeseitigungvonFehlern:=>Reviews

o ReviewskönnendasTestennichtersetzen,undumgekehrt!

Page 119: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

145

Software-Reviews

Design Code TestAnford. WartungFehler-Entdeckung

Fehler-UrsprungDesign Code TestAnford. Wartung

Chaos

Ohne Reviews

Design Code TestAnford. WartungFehler-Entdeckung

Fehler-UrsprungDesign Code TestAnford. Wartung

Mit Reviews (ideal)

Page 120: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

146

ÜbersichtüberReview-Techniken

o EmpirischeStudienbelegenInspektionenalsdiezuverlässigsteReview-Technik.¤ Inspektionenfinden50%mehrFehleralsWalkthroughs.¤ Inspektionenfindenbiszu6xmehrFehleralsAd-hocReviews.

Inspektion TeamReview

Walkthrough PairProgramming

PeerDesk-Checking

Ad-hoc

Sehrformal

Wenigerformal

Page 121: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

147

ÜbersichtüberReview-Techniken

o Ad-hoc Review¤ WennmaneinProblemnichtlösenkannbittetmaneinenMitarbeiter

spontanumHilfe¤ ErgebnishängtvollständigvonderErfahrungdeseinenMitarbeitersab

o PeerDesk-Checking¤ ÄhnlichAd-hocReview¤ DerMitarbeiter“führtdaszuüberprüfendeProduktaufdemPapier

aus”(meistensCode)

Page 122: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

148

ÜbersichtüberReview-Techniken

o Pair-Programming¤ ZweiEntwicklerteilensicheinenPC-Arbeitsplatzundarbeiten

gemeinsamaneinemStückCode.¤ EinederPraktikendeseXtreme Programming

o Walkthrough¤ DerAutoreinesDokumentspräsentiertesMitarbeitern,umein

allgemeinesVerständniszuerlangenunddieQualitätdesDokumentszuverbessern.

¤ KeinvorgegebenerProzessundkeineAnleitung,wieFehlerzufindensind.

¤ Risiko:DerAutorvergisstwährendderPräsentationleichtaufdiewesentlichenTeiledesDokumentszufokussieren.

Page 123: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

149

ÜbersichtüberReview-Techniken

o Team-Review¤ ÄhnlichderInspektion-Technikaberwenigerformal.¤ MehrereMitarbeiterüberprüfenindividuelleinProdukt.¤ DieErgebnissewerdenineinenTreffenmitdemAutorbesprochen.

Page 124: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

150

Inspektion– Eigenschaften

Prozess

Lesetechniken

Rollen Dokumente

Welche Aktivitäten werden innerhalb des Inspektionsprozesses ausgeführt?

Welche Rollen sind in den

Inspektions-prozess

involviert?

Welche Dokumente werden in

einer Inspektion verwendet?

Welche Techniken können eingesetzt werden, um Fehler in einem Softwaredokument zu finden?

Inspektion

Page 125: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

151

DerProzessunddieRollen

¨ Teilnehmereinladen,TerminvereinbarungvonallenInspektionsaktivitäten,Räumefestlegenà Organisator

¨ SuchenachundDokumentationvonProblemen(d.h.potentielleFehlern/Fragen/Verbesserungsvorschläge)à Inspektoren

¨ SammelnderFehler.Entscheiden,obeinBefundeintatsächlicherFehlerist.SuchenachweiterenFehlern.EntscheidenüberRe-Inspektion.àModerator//Autor/Inspektoren

¨ KorrekturderFehlerà Autor

Planung

Vorbereitung

Meeting

Korrektur

Kick-off

Follow-up

Page 126: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

152

Inspektion- Dokumente

¨ Organisationsliste¤ ListeallergeplantenInspektionsaktivitäten(innerhalbeines

Projektsoderprojektübergreifend).¨ Problemliste

¤ DokumentationderBefunde(potentielleFehler/Fragen/Verbesserungsvorschläge)sowiedesAufwandsfürdieFehlersuche.

¨ Fehlerliste¤ DokumentationdertatsächlichenFehler,

sowiedesAufwandesfürdasMeeting.

¨ Korrekturliste¤ DokumentationderFehlerkorrektur(oftinFehlerliste

integriert).

Zu inspizierendesDokument

Page 127: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

153

BedeutungderDokumente

¨ ErgebnisseeinerInspektion¤ VerbessertesSoftwaredokument¤ DokumentierteInformationzurCharakterisierung

n desinspiziertenDokumentesn desInspektionsprozessesn desSoftware-Entwicklungsprozesses

¨ VerwendungderErgebnisse¤ HilfefürdenAutorbeiderÜberarbeitungseines

Dokumentes¤ Charakterisierung/Beurteilung/Vorhersage/

VerbesserungdesInspektions- undSoftwareentwicklungsprozessesundnichtderdaranbeteiligtenPersonen!

Page 128: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

154

AktivitätenderVorbereitungsphase

o DokumentwirdvondenInspektorennachBefundendurchsucht(Individulaktivität).

o Fehlerwerdendokumentiert.o Ziel:möglichstvieleschwereFehlerfinden.

Page 129: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

155

Inspektion– Lesetechniken1/2

¨ AnwendunginderVorbereitungsphase(Individualaktivität)¨ HäufigesProblem

¤ EsgibtoftkeinekonkreteAnleitungfürInspektoren…n wasineinemSoftwaredokumentzuüberprüfenist.n wieeinSoftwaredokumentnachFehlernzudurchsuchenist.

¤ Motto:JederInspektorüberprüftalles.

à IneffizienteInspektion(#gefundeneFehler/Zeit)

Page 130: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

156

Lesetechniken2/2

o Ad-hoc¤ KeineweitereUnterstützungfürInspektor.

o Checklisten:¤ DerInspektorbekommteineChecklistemitFragen,dieerbeimLesen

beantwortensoll.

o PerspektivenbasiertesLesen/SzenariobasiertesLesen:¤ DerInspektorfolgteinemLeseszenario.Diesesgibtbestimmte

Aktivitätenvor,diewährendderFehlersuchedurchzuführensindundfokussiertdenInspektoraufbestimmteAspekte.

Page 131: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

157

Auszug aus einer Checkliste für Anforderungsdokumente

No. Frage

Fragen das gesamte Dokument betreffend

1 Existiert zu jedem Use Case im Use Case Diagramm genau ein formell beschriebener

Use Case und umgekehrt?

2 Ist das gewünschte System durch die Gesamtheit der Use Cases vollständig

beschrieben?

Checklisten

Page 132: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

162

PerspektivenbasiertesLesen(PBR)

o LeseszenariengebenkonkreteAnleitungbeiderFehlersuche.o InspektorennehmenverschiedeneBlickwinkel(Perspektiven)

ein,diedieAufmerksamkeitaufverschiedeneAspektefokussierenà wenigerÜberlappung.

o DerEinflussderErfahrungvonInspektorenaufdieEffektivitätderInspektionwirdgeringer.

o WährendderInspektionwirdaktivmitdemDokumentgearbeitetà Verständniserhöht,Ergebnissekontrollierbar.

Page 133: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

163

Leseszenarien

o JederDokumentnutzerhatQualitätsanforderungenandasDokument.DiesehängenvonderRolledesDokumentennutzersimEntwicklungsprozessab.

System-Tester

Kunde

Dokument

Entwickler

Page 134: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

164

Beispiel-SzenariofürPerspektivenbasiertesLesen

o Youshouldreadthedocumentfromtheperspectiveofamoduletester.Indoingso,takethecodedocumentandextractacontrolflowgraph:Aggregatesuitablesequencesofcode,e.g.,asequenceofstatements.Makesurethatallbranchescanbeidentifiedinyourcontrolflowgraph.Forbuildingthecontrolflowgraphusethesymbolsontheform“symbolsfortestscenarios”.Documentyourcontrolflowgraphontheform“ResultsModuleTestScenario”.

o Usethecontrolflowgraphtoderivetestcases:Foreachbranchofthecontrolflowgraphandeachcalculation,developatestorasetofteststhatallowyoutoensuretheinternalcorrectnessofthecodemodule.Documentyourtestcasesontheform“ResultsModuleTestScenario”.

o Whileperformingtheactivities,askyourselfthe followingquestions:¤ 1.Doyouhavealltheinformationthatisnecessarytoidentifyatestcase

(e.g.,areallconstantvalues and interfaces defined)?¤ 2.Arealldatavaluesusedinacorrectway?(Quelle :WalterTichy,KIT)

Page 135: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

166

AbdeckungundÜberlappung

Dokumentmit Fehlern

hohe Überlappunggeringe Abdeckung

geringe Überlappunghohe Abdeckung

z.B. alle Inspektoren

gleiche Checkliste

z.B. gut gewählte Szenarien

Page 136: SOFTWARE-QUALITÄTSSICHERUNG Kapitel 6 UND -PRÜFUNGservices.informatik.hs-mannheim.de/~schramm/see/files/Kapitel06.pdf · 3 Lernziele des Kapitels ¨ Bedeutung Software-Qualität

170

Zusammenfassung:TestenversusInspektionen

o TestbenötigtablauffähigenCode/InspektionenkönnenauchaufDokumentendurchgeführtwerden.

o Testenisterstspätmöglich/InspektionenkönnenbereitsinderAnforderungsphasedurchgeführtwerden.

o TestenentdecktFehlverhalten/InspektionenentdeckendieFehlerselbst.

o Testen:IsolationdesFehlerskostetzusätzlichenAufwand.o InspektionenförderndenWissenstransferzwischen

Mitarbeitern.